王元鹏
(江苏省如东第一职业教育中心校,江苏南通 226400)
构建基于双向CATV网络的校园视频点播系统
王元鹏
(江苏省如东第一职业教育中心校,江苏南通 226400)
视频点播VOD(Video On Demand)系统改变了过去收看节目的被动方式,实现了节目的按需收看和任意播放,为教学提供实时、交互、按需点播服务。文章提出一种可以通过对有线电视网进行双向改造,并配以机顶盒的方式来实现VOD视频点播服务的方案。
VOD;视频服务器;多线程
利用VOD系统的双向视频传输特性和网络特性,应能提供以下功能:
1.视频点播教学
系统能够将各科优秀教师的多媒体课件、电视教材、直播课程、现场实验示范等采编存入VOD系统,教师可在终端机上通过统一的点播界面,由遥控器或鼠标自由点播这些视频资源进行教学。此外,该VOD系统应支持多用户点播而互不影响,不同地点的用户可以同时点播相同教学内容来进行教学,并分别对播放线程进行控制。
2.自主学习
为培养学生自主发现问题、分析问题、寻求问题解决方案的创新能力,我们的点播系统应能提供一个个性化教学服务平台,以增强学生学习的自主性,达到较好的学习效果。
3.视频报告会
VOD系统应具有较好的视频传输特性。学校、教师可以通过该系统进行现场直播或实况转播。在观看过程中,VOD系统能提供提问、留言和发表评论等交互功能。该系统也可应用于视频会议中,以节约资源,提高效率。
4.影视欣赏
该系统应能将影视资料存入到VOD服务器中,并平滑流畅地播放,同时可对视频进行自由控制,也可以将错过的电视节目录制下来,供学生点播。一方面,各班级可省下购买DVD的费用;另一方面,学校统一管理影视资料,可使学生免受不良影视的影响。
5.校园资讯
学校可以将各类会议精神、通知和相关的新规章制度、奖惩公告等信息通过该系统进行传达。教师和学生均可随意选择想看的通知内容,不受时间和地点的限制。这种新颖的交互传达方式能给师生交流和学校管理带来极大的方便。现代化的教学手段和科学的管理方式将对学校社会形象的提升起到显著作用。
6.软件在线升级
系统的软件要随时升级。软件在线升级可看成是数据广播的应用之一。数据广播服务器按DVB数据广播标准将升级软件广播下来,系统应能识别该软件的版本号,在版本不同时接收该软件,并对保存在存储器中的软件进行更新,实现系统的良好扩展性。
随着信息技术发展的日新月异,学校信息化建设也日益加快,如何更好地利用现有网络来满足学校视频点播需求,同时为日后系统的拓展与建设做好全面的考虑,成为了学校信息化建设的重要课题。我校基于校园网构建的视频点播系统结构如图1所示。各教室、教师办公室、教研室、行政办公室、会议室、图书馆、部分学生寝室等都装有计算机终端或带有机顶盒的电视终端,教师、学生等都可以利用就近的终端,通过统一的界面,自主点播所需的多媒体信息和多媒体教学资源。这些信息和资源既可以是本校内的,也可以是其它学校或Internet、教育卫星上的信息和资源。
系统可分为以下三个部分:
1.用户终端
为了利用学校现有的硬件资源,我们既可使用PC机做点播终端,也可在现有的电视终端上配以机顶盒做点播终端。机顶盒通称Set Top Box,是一种智慧型的数字式信号转换器,用户通过此设备即能够实现视频点播、Internet访问、远程教学、视频会议、电子商务等多媒体信息服务。机顶盒通常与电视机配合使用,当用户进行点播时,将电视机切换至AV模式后,可使用机顶盒的遥控键盘对VOD系统所提供的视频节目进行点播,操作简单方便。
2.视频点播软件
视频点播软件界面如图2所示,为了能和Internet无缝结合,软件也保留了以太网的接口。这样,不仅现在可以利用CATV网的优势使教师和学生可点播校内视频资源,另外也可随时访问Internet上丰富的多媒体教学资源。
3.视频点播服务器
视频点播服务器是VOD系统的核心,主要负责视频信息的储存和播放,其工作能力极大地影响着视频点播系统的服务能力。由于目前市场上的专业视频服务器价格昂贵,可以采用基本结构如图3、图4所示的工控机加视频解压卡的方案,这样构建的VOD系统有很大的价格优势。
纵观目前市场上的视频解压卡,Sigma公司生产的EM847x芯片的板卡,内嵌了MPEG1、MPEG2、MPEG4算法,可以播放 VCD、DVD以及目前流行的MPEG4视频文件,性能稳定,且价格低廉。故在本系统中就选用了EM847x芯片。
由于EM847x系列视频卡本身没有多卡的接口,所以要进行多卡控制必须通过其他途径。解决方法是通过共享内存方式来控制多进程,而每个线程则控制一块视频卡,以此来实现多卡控制。实现流程如图5所示。多卡线程要先检测是否有上次残留的单卡进程,查看是否有上次异常退出时残留下的单卡控制进程。若有,则清除这些残留进程,然后开辟一个共享内存区,启动多线程。每次启动一个单卡线程时检查视频卡是否正常,若不正常将会停止这个线程,发出错误信息,停止当前视频卡的使用;如果正常就将结构体指针指向开辟的共享内存空间,然后再启动下一个单卡控制线程,直到N个单卡控制线程启动完毕,最后发出启动结束信息。
启动多个单卡控制线程,每个单卡控制程序都定义和Vod_Channel同样的结构体,启动时打开名称为Vod_Memory的共享内存区域,然后将单卡定义的Vod_Channel结构体的指针指向这个共享内存地址空间,之后将自己的句柄信息写入结构体里的句柄变量。这样,每启动一个线程就在共享内存中开辟了一个Vod_Channel结构体数组。结构体数组Vod_Channel[1]就代表单卡线程 1,Vod_Channel[1].handle里面就是线程1的句柄信息。由于线程1的句柄信息此时是放在共享内存中的,因此就可以通过SendMessage函数给线程发送消息,线程收到消息就可以进行相应的处理,这样就通过多线程实现了多卡的控制。
多卡控制是在一台服务器上实现的,由于受板卡资源以及CPU处理能力的限制,一般来说,一台服务器最多能同时输出16路音视频流,这对于稍大规模地应用就显得不够,因此如何实现视频流输出的无缝扩展,也是能否使用此项技术的关键。为此,就要将视频服务器中的播放和播控功能分开,将所有播控功能集中于一台播控服务器中,播控服务器通过前端调制器与客户端 (机顶盒)进行交互,通过 TCP/IP协议与播放服务器进行交互,这样就可以在局域网中布置多台视频播放服务器,实现视频播放服务器的分布式应用。
[1]王丽君.校园网视频点播系统的建立[J].鞍山钢铁学院学报,2001,(24).
[2]陆其明.DirectShow开发指南[M].北京:清华大学出版社,2003.
[3]解炜,易鹏.DVB—C数字有线电视综合解码接收机[J].有线电视技术,2000,(9).
[4]赵瑛,朱亚莉.基于校园网的视频点播系统[DB/OL].http://www.studa.net/network/080615/14154746.html.
[5]苏磊,左晓宁.基于有线电视网络平台视频点播技术的实现[J].中国有线电视,2003,(19).
(编辑:鲁利瑞)
G484
B
1673-8454(2011)06-0080-03