课程设计计划书
设计题目: Java网络视频点播系统
系别: 计算机系
专业:计算机科学与技术
题目: Java网络视频点播系统
设计目标:
1)类似暴风播放器可以在本地实现mpeg,avi等常用格式的播放,可以通过菜单设定定时截取视频成静态图像(如按照用户要求如0.05秒,0.1秒,1秒,2秒,5秒,10秒等)按照jpg格式保存在指定的目录,并在播放视频的同时展开这些图像文件,动态扩展。(基本要求)
2)可以在局域网内按照B/S架构或者apache服务器中开展视频点播(高级要求)
提示:
可以用JMF类库实现以上的功能,这里提供部分源码(《java网络程序设计》中的),可以在百度中下载源码并做修改!
网络功能可以参考java中的Socket类库!
设计环境:JDK1.6 ,apache,JMF1.1,Eclipse或者 My-Eclipse
目 录
1、引言
2、需求分析
3.、程序设计过程
3.1 实验原理
3.2 程序设计图
3.3程序布局结构图
3.4 核心代码
4、实验结果
5、总结分析
6、参考文献
一.引 言
1.1 课题背景
随着宽带网络系统的建成和发展,视频点播(Video On Demand,简称V0D)系统被广泛应用于在线电影点播、多媒体课件点播、图书馆视频资料查询等用途。视频点播是综合了计算机技术、通讯技术、电视技术而迅速兴起的一门综合性技术。它涉及到信息量巨大的音频和视频在网上传播的问题,网络是硬件条件,而流媒体技术则解决了如何在网络上传输动态的音视频节目的难题。
1.2 流媒体简介
流媒体是指传输及播放的流媒体文件,经过特殊的压缩方式分成一个个压缩包,由视频服务器向用户计算机连接、实时地传送,用户机不必等到整个文件全部下载完毕,仅需将起始几秒的数据先下载到本地的缓冲区中就可以开始播放,采用一边播放、一边下载、一边丢弃的方式,客户端的缓冲区建在内存中,不占用硬盘空间,不会在用户端留下任何拷贝,保护了知识产权,同时提高带宽利用率。流媒体技术是一个综合的技术,它包括采集、编码、传输、储存、解码等多技术。
1.3 本课题研究的意义
视频点播的本质是信息的使用者根据自己的需求主动获得多媒体信息,它区别于信息发布的最大不同:一是主动性、二是选择性。从某种意义上说这是信息的接受者根据自身需要进行自我完善和自我发展的方式,这种方式在当今的信息社会中将越来越符合信息资源消费者的深层需要,可以说视频点播是信息获取的未来主流方式在多媒体视音频方面的表现。视频点播的概念将会在信息获取的领域快速扩展,具有无限广阔的发展前景。
二、需求分析
研制视频点播系统的总体目标是将网络技术、信息技术、现代管理技术相结合,建立视频点播和信息交流平台。视频点播系统采用流媒体技术,充分利用了网络资源,为广大用户提供在线点播服务,
本系统首先要实现动态性。所谓的动态性就是能动态更新内容,如更新用户信息、视频文件信息、用户留言等。这要求与数据库有良好的连接。
2.1任务目的:
1.实现视频文件的正确播放;
2. 能够实现对视频播放的控制,如暂停,播放,快进,快退,上一个,下一个等功能;
3.能够进行文件视频的选择,全屏,音量的控制,拖动,播放模式的控制等;
4.任意改变播放视频界面大小等功能。
2.2要求掌握:
1.掌握Java的语言规范,面向对象的核心概念和特性。
2.掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等。
3.掌握Java应用软件的开发环境和开发过程
4.掌握基于Jsp网站的开发环境和开发过程
5.掌握面向对象的思想和程序设计方法。
2.3程序的设计、调试、运行的软件环境需求:
操作系统:Windows 7
数据库及数据库管理软件:SQL Server 2000
JDK环境:Java SE Development Kit(JDK)Version 6
开发工具:Eclipse3.2
运行平台:Windows、Linux各个版本、MAC等任何平台
运行环境:Java SE Runtime Environment(JRE)Version
2.4用户身份级别要求
即根据身份的不同对系统的使用权限有所不同。从权限大小大致可以分为:系统管理员、注册用户、发布员、未注册用户。系统提供灵活的角设定和权限的分配功能。
系统管理员:是权限最大的用户,拥有视频点播系统的所有权限,主要负责对系统平台的日常网络维护管理,可以对系统进行修改,排除故障。
发布员:拥有注册用户的权限并可以上传视频文件。
注册用户:权限包括查看系统中视频的信息、点播及下载视频、发表言论、投票等。
未注册用户:是权限最小的用户,只能查看系统中视频的信息。
2.5系统功能需求与划分
用户管理:对使用本系统注册用户信息的操作。包括删除用户、修改密码、权限的设置等操作。
用户注册:未注册用户可以注册新的帐号,在注册页面填写相关的注册信息,添加注册信息到系统的数据库中,以后就能用该账户登录到系统中。
用户登录:注册用户填写登录信息经过系统验证之后就能浏览该账户的权限所能访问的页面。
具体操作:在登录表中填入相关信息,系统验证信息是否正确,如果正确就允许用户登录到系统中,用户可以访问该账户所允许访问的页面。没有注册的用户需先注册。
用户权限验证: 验证用户的权限是否能够访问用户要求访问的页面。具体操作:用户登录时验证用户输入的登录信息是否正确,如果正确就读取数据库中该账户的权限字段并储存到系统中,当用户要求访问某个页面时就验证该用户的权限是否能访问该页面。
视频点播和下载模块:点播和下载视频文件
视频文件管理:系统管理员根据用户需求添加或删除视频文件,发布员根据用户需求上传视频文件。具体操作:对视频文件参数的基本设置。包括添加、删除、修改等。
注销:所有的系统合法用户登录完成操作后退出系统都要进行“注销”操作、或者进行用户转换也需要进行“注销”操作。
操作对象:所有合法用户。
三.程序设计过程
3.1实验原理
JMF提供了一个平台无关的框架来呈现时基媒体(time-based media)。JavaMediaPlayerAPI的设计目标是支持多种标准的媒体格式,包括MPEG-1,MPEG-2,QuickTime,AVI,WAV,AU和MIDI.使用JMF,可以同步呈现不同来源的时基媒体。
现有的一些媒体播放器都严重依赖原生码来执行解压缩、渲染 等 计算密集型任务。而JMF API则隐藏了具体实现,只提供抽象的编程接口。
举例来说,一个用JMF制作的播放器,具体运行的过程中可能会调用到操作系统的本地方法,但开发者写代码时可以无视本地方法的存在。
JMF Player API :接入不同的协议和分发(传输)机制;接入不同的媒体数据类型
JMF Player API :接入不同的协议和分发(传输)机制;接入不同的媒体数据类型
定义事件模型,用于Player和应用程序间的异步通信
3.2数据源(Data Source)
一个DataSource 封装了媒体的地址、协议和分发的软件。一个JavaMediaPlayer包含一个DataSource。一旦创建,这个DataSource不能被用于其他媒体的传输。 一个Player的数据源可以用MediaLocator或URL来标示。
MdiaLocator(媒体定位器)是一个JMF类,用来描述Player播放的媒体。MediaLocator与URL类似,并且可以从URL来创建。他们的区别在于,在Java中,URL只有其协议是已知协议时才能被创建,而MediaLocator则没有这个限制。
Java 媒体播放器可以播放来自多种数据源的媒体数据,包括本地、网络文件和实时广播等。
JMF支持两种不同的数据源。Pull Data-Source (数据源被动的被获取)-由客户端发起数据传输并控制数据流,已知的协议包括HTTP(超文本传输协议)和本地文件。Push Data-Source (数据源主动推送)-由服务器发起数据传输并控制推送数据流。此类数据源包括
广播媒体,多点传送的媒体和VOD(视频点播)。
客户端程序所能够控制的度量,取决于媒体源的类型。举个例子说,MPEG文件可以被重定位(reposition基于java的课程设计题目),那么播放MPEG的客户端程序就可以允许用户重播或者跳进至一个新时间点;而由服务器段控制的广播媒体则不能被重定位;另外VOD协议则支持有限的用户操作,比如一个VOD客户端程序可以允许用户跳进至新位置,但不能快进和快倒。
3.2.1 Players
一个Java Media Player是一个对象。她基于时间来处理数据流,从DataSource读取数据并在确切的时间点渲染媒体。一个Java Media Player必须实现Player interface.
Clock定义了基本的计时和同步操作, 她被Player 用来控制媒体的呈现。Controller继承Clock对外提供提供如下方法:
1. 管理系统资源
2. 预载数据
3. 提供监听机制(Observable),对外发送媒体事件通知
∙ Duration提供了检测媒体时长的途径。
∙ Player支持标准的用户控制,并放宽了来自于Clock的一些操作限制。
多个Player共享一个公共的计时和同步模型。一个Player的媒体时间表示了媒体流的当前位置。每一个Player有一个TimeBase。TimeBase定义了Player的时间流逝。当一个Player 被执行start,他的媒体时间会被映射到time-base时间。如多个媒体要同步,那么他们必须使用同一个TimeBase.
一个Player的用户界面可以包含一个可视组件和一个控制面板组件(control- panel component)。我们用的时候可以选择实现一个自定义的用户界面,或者使用Player的默认的控制面板组件。一般来说,一个Player在能够呈现媒体之前,必须先执行一序列的操作。而这些操作有可能会耗费一定的时间,所以JMF定义了一些操作状态,并且提供了状态转换的操作机制。
3.2.2 Media Events
JMF事件报告机制允许我们的程序响应媒体驱动的错误,比如数据丢失或资源不可用。事件系统同时也提供了重要的通知协议;当我们的程序调用一个Player的异步方法时,只有当收到响应的事件消息时,才能确认操作是否完成。
有两种JMF对象会抛出事件,他们是: GainControl对象 和 Controller 对象。 对于事件, GainControl和 Controller 遵循Java Beans 形式。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论