视频点播系统的设计与实现毕业设计论文.doc
毕业设计(论文)视频点播系统的设计与实现论文作者姓名:申请学位专业:申请学位类别:指导教师姓名(职称):论文提交日期:视频点播系统的设计与实现摘 要随着计算机技术和 Internet 的日新月异,宽带VOD视频点播技术因其良好的人机交互性和流媒体传输技术倍受教育、娱乐等行业青睐。本文阐述了基于WEB的交互式视频点播系统的协议原理、软件结构和设计实现。本视频点播系统根据流媒体传输原理,在校园局域网的基础上模拟基于Web的视频点播系统,实现用户信息管理、视频文件的添加、删除、修改及在线播放和搜索功能。本系统是一个小型系统,我们采用基本的SQL Server数据库。具体实现中将HTML、ASP.net及C#相结合,力求界面美观、操作流畅。本文主要论述服务器端视频服务平台的搭建、流媒体的相关原理及管理功能的具体实现。关键词:流媒体;ASP.net;视频点播Video on demand design and implementAbstractBroadband VOD (video on demand technology) get the favour of profession such as education and amusement because of its good human-computer interaction and streaming media transmission technic. In this paper, I elaborate systematic principle of the protocol, software structure and design implement based on Web interactive video on demand.According to the streaming media transmission principle, this video on demand system imitates video on demand system based on the Web, implement that users information management and the functions of adding, deleting and modifying, online playing and searching for video files on the basic upper local area network of the campus. Since this system is a small-sized system, we use the basic SQL database. In specific implement, I fuse HTML, ASP.net and C# perfectly, try my best to make the interface beautiful, operate smoothly.This paper discuss mainly about the video service platform building, the related principle of streaming media and the specific implement of management function. Key words: Streaming media; ASP.net; video on demand目 录论文总页数:21页1 引 言11.1 课题背景11.2 流媒体简介11.3 本课题研究的意义12 视频点播系统系统分析12.1 系统需求分析12.1.1 用户身份级别要求12.1.2 系统功能需求与划分22.2 系统设计目标32.3 系统的开发工具32.3.1 开发环境32.3.2 .NET介绍32.3.3 C#介绍42.4 编程运行环境43 视频点播系统系统设计43.1 数据库设计43.2 系统模块分析与设计63.3 Web界面设计73.4 系统流程图84 视频点播系统系统功能模块具体实现94.1 系统实现的关键技术94.1.1 数据库的连接94.1.2 嵌入试视频播放114.2 视频点播系统的部分功能的设计与实现124.2.1 用户登陆功能的实现124.2.2 用户注册功能的实现135 系统测试155.1 普通用户功能测试155.1.1 用户登陆功能测试155.1.2 用户注册功能测试165.1.3 视频点播功能测试165.2 管理员功能测试175.2.1 用户信息管理功能测试175.2.2 添加视频文件功能测试18结 论19参考文献19致 谢20声 明211 引 言1.1 课题背景随着宽带网络系统的建成和发展,视频点播(Video On Demand,简称V0D)系统被广泛应用于在线电影点播、多媒体课件点播、图书馆视频资料查询等用途。视频点播是综合了计算机技术、通讯技术、电视技术而迅速兴起的一门综合性技术。它涉及到信息量巨大的音频和视频在网上传播的问题,网络是硬件条件,而流媒体技术则解决了如何在网络上传输动态的音视频节目的难题。1.2 流媒体简介流媒体是指传输及播放的流媒体文件,经过特殊的压缩方式分成一个个压缩包,由视频服务器向用户计算机连接、实时地传送,用户机不必等到整个文件全部下载完毕,仅需将起始几秒的数据先下载到本地的缓冲区中就可以开始播放,采用一边播放、一边下载、一边丢弃的方式,客户端的缓冲区建在内存中,不占用硬盘空间,不会在用户端留下任何拷贝,保护了知识产权,同时提高带宽利用率。流媒体技术是一个综合的技术,它包括采集、编码、传输、储存、解码等多技术。1.3 本课题研究的意义视频点播的本质是信息的使用者根据自己的需求主动获得多媒体信息,它区别于信息发布的最大不同:一是主动性、二是选择性。从某种意义上说这是信息的接受者根据自身需要进行自我完善和自我发展的方式,这种方式在当今的信息社会中将越来越符合信息资源消费者的深层需要,可以说视频点播是信息获取的未来主流方式在多媒体视音频方面的表现。视频点播的概念将会在信息获取的领域快速扩展,具有无限广阔的发展前景。2 视频点播系统系统分析2.1 系统需求分析需求分析是指:需求分析人员将客户描述的需求用一种计算机语言描述出来,分析用户的要求是否能实现,是否还可以提供更多的功能。要开发一个软件产品,首要也是最重要的就是需求分析,它是决定一个系统成功与否的关键。本系统的目的是让用户通过本系统点播视频及相互交流看法。2.1.1 用户身份级别要求即根据身份的不同对系统的使用权限有所不同。从权限大小大致可以分为:系统管理员、注册用户、发布员、未注册用户。系统提供灵活的角色设定和权限的分配功能。1) 系统管理员:是权限最大的用户,拥有视频点播系统的所有权限,主要负责对系统平台的日常网络维护管理,可以对系统进行修改,排除故障。2) 发布员:拥有注册用户的权限并可以上传视频文件。3) 注册用户:权限包括查看系统中视频的信息、点播及下载视频、发表言论、投票等。4) 未注册用户:是权限最小的用户,只能查看系统中视频的信息。2.1.2 系统功能需求与划分1) 用户管理:对使用本系统注册用户信息的操作。包括删除用户、修改密码、权限的设置等操作。ü 操作对象:系统管理员。ü 浏览对象:系统管理员。2) 用户注册:未注册用户可以注册新的帐号,在注册页面填写相关的注册信息,添加注册信息到系统的数据库中,以后就能用该账户登录到系统中。ü 操作对象:未注册用户。ü 浏览对象:未注册用户。3) 用户登录:注册用户填写登录信息经过系统验证之后就能浏览该账户的权限所能访问的页面。ü 操作对象:注册用户。ü 浏览对象:注册用户。ü 具体操作:在登录表中填入相关信息,系统验证信息是否正确,如果正确就允许用户登录到系统中,用户可以访问该账户所允许访问的页面。没有注册的用户需先注册。ü 需要模块:用户注册模块,用户验证模块。4) 用户权限验证: 验证用户的权限是否能够访问用户要求访问的页面。ü 操作对象:所有合法用户。ü 浏览对象:所有合法用户。ü 具体操作:用户登录时验证用户输入的登录信息是否正确,如果正确就读取数据库中该账户的权限字段并储存到系统中,当用户要求访问某个页面时就验证该用户的权限是否能访问该页面。ü 需要模块:用户注册模块、用户登录模块。5) 视频点播和下载模块:点播和下载视频文件。ü 操作对象:所有合法用户。ü 浏览对象:所有合法用户。6) 用户留言:用户发表自己的意见。ü 操作对象:所有合法用户。ü 浏览对象:所有合法用户。7) 视频文件管理:系统管理员根据用户需求添加或删除视频文件,发布员根据用户需求上传视频文件。ü 操作对象:系统管理员,发布员。ü 浏览对象:系统管理员,发布员。ü 具体操作:对视频文件参数的基本设置。包括添加、删除、修改等。ü 需要模块:用户权限验证模块,用户登录模块。8) 注销:所有的系统合法用户登录完成操作后退出系统都要进行“注销”操作、或者进行用户转换也需要进行“注销”操作。ü 操作对象:所有合法用户。2.2 系统设计目标研制视频点播系统的总体目标是将网络技术、信息技术、现代管理技术相结合,建立视频点播和信息交流平台。视频点播系统采用流媒体技术,充分利用了网络资源,为广大用户提供在线点播服务,用户可以根据自己的需求自主选择。本系统采用一边播放、一边下载、一边丢弃的方式,大大节省用户的时间,不会在用户端留下任何拷贝,保护了知识产权,同时提高带宽利用率。本系统首先要实现动态性。所谓的动态性就是能动态更新内容,如更新用户信息、视频文件信息、用户留言等。这要求与数据库有良好的连接。系统操作方便、操作界面美观。2.3 系统的开发工具2.3.1 开发环境l Microsoft Visual Studio 2005 介绍Visual Studio是微软公司出品的一款大型应用软件,是一套完整的开发工具集,它主要用于生成ASP.NET Web应用程序、XML Web Services、桌面应用程序和移动应用程序。l Microsoft SQL Server 2000介绍Microsoft SQL Server 2000是目前使用最广泛的数据库之一。2.3.2 .NET介绍对于.NET,Microsoft公司自己也没有一个详细确切的定义。但是我们可以这样认为:.NET是Microsoft公司提供的一系列产品的总称。具体来说,.NET由下面几个部分组成:.NET Framework、.NET企业服务器和.NET开发工具。.NET Framework是一个高性能的程序运行环境,它提供了具体的服务和技术,支持统一的类库,方便开发人员建立相应的应用程序。.NET企业服务器是指SQL Server 2000之类的由.NET Framework应用程序使用的服务器端产品。2.3.3 C#介绍C# 编程语言 C# 是一种新的编程语言,它从 C 和 C+ 演变而来,是一种简单、现代、类型安全和面向对象的语言。C# 是为在 .NET 平台上生成企业级应用程序而设计的。用 C# 编写的代码被编译为访问 CLR 服务的托管代码。Visual Studio 环境和向导完全支持 C#。C# 编程所用的类库是 Framework。2.4 编程运行环境硬件环境:CPU: Intel core2 cup t5500内存:512 MB硬盘:60 G软件环境:操作系统:Microsoft Windows XP Service Pack 2应用软件:SQL Server 2000 +Microsoft Visual Studio 2005+Adobe Photoshop CS8.03 视频点播系统系统设计3.1 数据库设计数据库设计是系统设计中非常重要的一个环节,因为数据库设计就像在建设高楼大厦的根基一样,如果设计不好,在后来的系统维护,变更和功能扩充时,甚至于在系统开发过程中,将会引起比较大的问题,有时大量的工作将会重新进行。因此,设计出合理的数据库成为本系统设计一个十分关键的步骤。用户的需求具体体现在各种信息的提供,保存,更新和查询,这就要求数据库结构能充分满足各类信息的输入和输出。收集基本数据,数据结构以及数据处理的流程而制作一份详细的数据库需求分析表,为合理的数据库结构设计打下坚实的基础。根据视频点播系统的一般要求,通过对整个系统运行过程和数据流程分析,得出本系统的实体表:用户信息表:tableuser、影片信息表:movielist、影片文件路径表:movieurl、用户留言表:msg、投票统计表:toupiao。根据对数据项和数据结构的分析以及对实际的数据库实体的设计,设计出数据表以及数据表之间的逻辑关系,如图1:图1:数据表与数据表之间的逻辑关系经过前面的数据库分析与设计得到数据库的逻辑结构。本系统使用Microsoft SQL Server 2000作为数据库开发工具;创建名为movie的数据库根据各种功能的实现以及考虑到将来系统功能上的扩展,设计如下数据项和数据结构:表1:用户信息表:TableUser简称字段名类型长度允许空备注IDiUserIDint4not nullPK用户名vUserNamevarchar20not null密码vPassWordvarchar20not nullEMAILvEmailvarchar20not null密码保护问题vQuestionvarchar20not null密码保护答案vAnswervarchar20not null权限cQuanxianchar8not null表2:影片信息表:movielist简称字段名类型长度允许空备注IDiMovieIDint4not nullPK影片名vMovieNamevarchar20not null集数iCountint4not null上传用户vUservarchar20not null上传时间dtUpTimedatetime8not null截图路径vImgUrlvarchar50得票数iPlayint4not null影片信息vInfotext16影片分类cTypechar8not null影片格式cGeshichar8not null表3:影片文件路径表:movieurl简称字段名类型长度允许空备注IDiUrlIDint4not nullPK影片名称vMovieNamevarchar20not null第几集iCountsint4not null文件路径vFileUrlvarchar20not null格式cGeshichar4not null表4:用户留言表:msg简称字段名类型长度允许空备注IDiMsgIDint4not nullPK用户名vUserNamevarchar20not null留言内容vInfovarchar100not null留言时间dtDateTimedatetime8not null相关影片vMovieNamevarchar20not null表5:投票统计表:toupiao简称字段名类型长度允许空备注投票用户vUservarchar20not nullPK得票影票vMovieNamevarchar20not nullPK3.2 系统模块分析与设计1) 系统管理:包括帐号管理、系统信息管理和视频文件管理。Ø 帐号管理:包括普通用户和发布员的基本信息和权限的管理都在“用户管理”模块中,系统管理员有权添加、删除、查看和修改所有普通用户和发布员的信息。Ø 视频文件管理:系统管理员和发布员可以添加视频文件,系统管理员可以修改、删除视频文件。Ø 系统信息管理:设置系统的信息。2) 视频播放与下载:合法用户能够点播或下载视频。3) 用户功能:用户功能包括注册新帐号、用已有的帐户登录、修改密码、通过密码保护找回密码、用户留言、查询、注销。Ø 注册新账号:用户输入注册信息,输入的信息合法就能注册新帐号。Ø 用户登录:用户登录模块采用与SQL数据库连接通过比较用户输入的信息与数据库中的数据判断用户的身份。登录身份分为三种:系统管理员、普通用户、发布员。Ø 修改密码:普通用户和发布员可以修改自己的登陆密码。Ø 密码保护:用户如果忘记密码或密码被修改,可以通过密码保护找回密码。通过回答注册用户时填写的密码保护答案,如果回答正确就能取得密码。Ø 用户留言:用户可以发表对影片的看法,以及提出意见和建议。Ø 查询:系统的所有合法用户都能使用“查询”模块的功能。“查询”模块提供视频文件的查询。只能进行精确查询,不支持模糊查询。Ø 注销:所有的系统合法用户登录完成操作后退出系统都要进行“注销”操作、或者进行用户转换也需要进行“注销”操作。系统功能模块分析与设计层次图,如图2:图2:视频点播系统功能模块层次图3.3 Web界面设计Web界面设计使用母版页,此方法可以使整个系统更加符合信息空间的信息存储,运行速度更快,信息层次更加清晰,用户操作则更方便,更有条理。示意图,如图3:图3:页面设计的框架3.4 系统流程图用户进入系统主页面后,输入用户名和密码,点击提交后,系统将根据用户输入的用户名和密码判断该用户是否为合法用户;如果用户输入的用户名和密码出错,系统将提示出错,并返回到登录界面;如果用户输入的用户名和密码正确,系统将根据用户的身份选择相应的功能;所有合法用户在处理完业务后,都需要进行注销工作,以免被他人窃取信息。注销后,将返回到注销前的页面或网站首页。系统流程图如图4:登录页面用户登录不成功成功身份判断普通用户功能系统管理员功能发布员功能普通用户系统管理员发布员注销图4:系统流程图 4 视频点播系统系统功能模块具体实现4.1 系统实现的关键技术4.1.1 数据库的连接本系统与数据库的连接都封装到数据库连接类里面,使用时调用类的对象就可完成建立连接、执行一种操作、关闭连接。数据库连接类的代码如下:using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Data.SqlClient;public class connClass public string que; public connClass() public static bool rd(string que)/对数据库执行查询,返回查询是否成功 SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=movie;User ID=sa;Persist Security Info=True"); /建立数据库连接 conn.Open();/打开数据库连接 SqlCommand cmd = new SqlCommand(que, conn); SqlDataReader sqlrd = cmd.ExecuteReader();/执行sql语句 return sqlrd.Read();/返回执行结果 sqlrd.Close(); conn.Close();/关闭数据库连接 public static bool Execute(string que)/对数据库执行一次操作,返回操作是否成功 SqlConnection conn = new SqlConnection("Data Source=.; Initial Catalog=movie;User ID=sa;Persist Security Info=True"); conn.Open(); SqlCommand cmd = new SqlCommand(que, conn); int count =Convert.ToInt32(cmd.ExecuteNonQuery(); if (count > 0) return true; else return false; conn.Close(); public static DataTable ds(string que)/从数据库中获得数据储存到内存中 SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=movie;User ID=sa;Persist Security Info=True"); conn.Open(); SqlDataAdapter adap = new SqlDataAdapter(que,conn); DataSet ds = new DataSet(); adap.Fill(ds,"table"); return ds.Tables"table" conn.Close(); public static SqlDataReader read(string que)/执行一次数据库查询返回查询结果 SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=movie;User ID=sa;Persist Security Info=True"); conn.Open(); SqlCommand cmd = new SqlCommand(que, conn); SqlDataReader sqlrd = cmd.ExecuteReader(); sqlrd.Read(); return sqlrd; sqlrd.Close(); conn.Close(); 4.1.2 嵌入试视频播放本系统通过ActiveX控件方式在Web页面中嵌入播放对象,并通过DHTML为内嵌对象动态指定视频流URL,从而为视频播放提供了一个统一的友好界面。用户点播视频时,系统根据视频文件的格式选择合适的播放页面。嵌入式视频播放代码如下:RM视频格式代码,如下:<object id="player" align=middle name="player" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="800" height="600" ><param name=_ExtentX value=11986><param name=_ExtentY value=8123><param name=AUTOSTART value=-1><param name=SHUFFLE value=0> <param name=PREFETCH value=0> <param name=NOLABELS value=0><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label><param name=CONTROLS value=ImageWindow><param name=CONSOLE value=Clip1><param name=LOOP value=0>");<param name=NUMLOOP value=0><param name=CENTER value=1><param name=MAINTAINASPECT value=1><param name=BACKGROUNDCOLOR value=#000000> </object><object ID="RP2" height=58 width=800 align=middle CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> <param name="_ExtentX" value="12409"> <param name="_ExtentY" value="1535"> <param name="AUTOSTART" value="-1"><param name="SHUFFLE" value="0"> <param name="PREFETCH" value="0"> <param name="NOLABELS" value="0"> <param name="CONTROLS" value="ControlPanel,StatusBar"><param name="CONSOLE" value="Clip1"> <param name="LOOP" value="0"> <param name="NUMLOOP" value="0"> <param name="CENTER" value="0"> <param name="MAINTAINASPECT" value="0"> <param name="BACKGROUNDCOLOR" value="#000000"><embed type="audio/x-pn-realaudio-plugin" CONSOLE="Clip1" CONTROLS="ControlPanel,StatusBar" AUTOSTART="true"></object>4.2 视频点播系统的部分功能的设计与实现4.2.1 用户登陆功能的实现Ø 用户登陆流程:根据用户输入的用户名从数据库中读取数据,如果数据库中没有该用户名就报错,如果有该用户的信息就把密码从数据库中读取出来,然后和用户输入的密码进行比较,如果密码正确就登陆成功。如果密码不正确就提示出错。Ø 用户登陆流程图,如图5:图5:用户登陆流程图Ø 用户登陆功能关键代码如下:protected void Button1_Click(object sender, EventArgs e) /点击登陆按钮执行以下代码 string name = uid.Text.Trim(); /将用户输入的用户名赋给变量namestring password = pwd.Text.Trim(); /将用户输入的密码赋给变量passwordif (!connClass.rd("select vusername from tableuser where vusername='" + name + "'") /判断用户输入的用户名是否存在HttpContext.Current.Response.Write("<script>alert('用户名不正确!'); history.back(); </script>"); else SqlDataReader rd = connClass.read("select vpassword,cquanxian from tableuser where vusername='" + name + "'"); if (rd.GetString(0).Trim() != password)/判断用户输入的密码是否正确 HttpContext.Current.Response.Write("<script>alert('密码不正确!'); history.back(); </script>"); elseSession"username" = name;/把用户名赋给该用户的Session"username"对象Session"rigth" = rd.GetString(1).Trim();/把从数据库读取的用户权限赋给Session"rigth" Response.Redirect("index.aspx"); /跳转到首页 4.2.2 用户注册功能的实现Ø 用户注册流程介绍:用户填写用户注册页面的表格,然后点击注册按钮,系统验证用户输入的注册信息是否合法,如果合法就把用户输入的注册信息保存到系统的数据库中。如果注册信息不合法就提示出错。Ø 用户注册流程图,如图6:图6:用户注册流程图Ø 用户注册关键代码如下:protected void regsiterB_Click(object sender, ImageClickEventArgs e) /用户点击注册按钮执行以下代码 if (connClass.rd("select vusername from tableuser where vusername='" + username.Text.Trim() + "'") username.Text = "用户名已存在!" /判断用户名是否已经被使用 else if (connClass.rd("select vEmail from tableuser where vEmail='" + email.Text.Trim() + "'") email.Text = "Email已被使用!" /判断Email是否已经被使用 else int i;SqlDataReader read = connClass.read("select MAX(iUserID) from tableuser");/从数据库中读取最大的用户ID的值 i = Convert.ToInt32(read.GetValue(0) + 1; /新注册用户的ID等于最大的用户ID的值加1connClass.Execute("insert into tableuser values ('" + i + "','" + username.Text.Trim() + "','" + password1.Text.Trim() + "','" + email.Text.Trim() + "','" + question.Text.Trim() + "','" + answer.Text.Trim()+ "','1')");/添加新用户信息到数据库 Session"username" = username.Text.Trim(); Session"rigth" = "1" HttpContext.Current.Response.Write("<script>alert('注册成功,即将转到首页!');window.location.href='index.aspx' </script>");/注册成功弹出对话框 5 系统测试5.1 普通用户功能测试5.1.1 用户登陆功能测试Ø 操作步骤:输入登陆信息,点击登陆按钮。Ø 测试结果:通过,如图7、图8:图7:用户登陆测试结果图I图8:用户登陆测试结果图II5.1.2 用户注册功能测试Ø 操作步骤:进入注册页面,输入注册信息,点击注册按钮。Ø 测试结果:通过,如图9、图10:图9:用户注册测试结果图I图10:用户注册测试结果图II5.1.3 视频点播功能测试Ø 操作步骤:进入视频点播页面,选择看点播的视频,点击播放按钮。Ø 测试结果:通过,如图11、图12:图11:视频点播测试结果图I图12:视频点播测试结果图II5.2 管理员功能测试5.2.1 用户信息管理功能测试Ø 操作步骤:进入管理员页面,修改用户信息。Ø 测试结果:通过,如图13、图14图13:用户信息管理测试结果图I图14:用户信息管理测试结果图II5.2.2 添加视频文件功能测试Ø 操作步骤:进入添加视频文件页面,输入视频文件信息,添加视频文件信息到注册表,上传视频文件。Ø 测试结果:通过,如图15图15:添加视频文件测试结果图I结 论经过三个多月的设计和开发,视频点播系统基本开发完毕。其功能基本符合用户需求,能够完成视频点播、用户注册和登录等主要功能、相关材料的查询以及各类相关功能的实现。并提供部分系统后台管理功能,使用户方便进行数据的添加、修改和删除。但