基于DirectShow的网络视频点播系统的设计与实现

2015-03-21 12:49雷文礼任新成张栋高瑛
现代电子技术 2015年7期
关键词:视频点播客户机列表

雷文礼,任新成,张栋,高瑛

(延安大学物理与电子信息学院,陕西延安716000)

基于DirectShow的网络视频点播系统的设计与实现

雷文礼,任新成,张栋,高瑛

(延安大学物理与电子信息学院,陕西延安716000)

随着计算机技术和Internet日新月异的的发展,宽带VOD视频点播技术因其良好的人机交互性和流媒体传输技术倍受教育、娱乐等行业的青睐。设计了一种基于DirectShow技术的视频点播系统,该系统采用VC编程语言实现,基于C/S架构搭建通信网络,通过套接字实现多台客户机与服务器间的通信。测试结果表明,系统能够正常运行,视频播放流畅,可以满足网络视频点播的需求。

视频点播;Direct Show;C/S架构;套接字

0 引言

在人们平时的生活中,经常希望能够随时收看到错过的视频节目,随着视频点播系统的问世,使这种想法慢慢变为现实。视频点播系统是集通信网络技术、多媒体技术、计算机和数据库技术于一体的崭新的视频服务系统。此系统还运用了智能视频流技术,针对不同的网络带宽和传输速度采取不同的传输方式。视频点播是近年来新兴的传媒方式,它是在原有的文字、图片等静态信息浏览的基础上,增加了视频和音频的动态浏览等多媒体点播服务[1⁃2]。这样,用户就可以随时随地浏览视频,极大地丰富了人们的网络生活内容[3]。

1 DirectShow技术

DirectShow[4]是一个基于Windows平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。它支持多种多样的媒体文件格式,包括MPEG、AVI、MP3和WAV文件,同时也支持使用WDM驱动或早期的VFW驱动来进行多媒体流的采集。DirectShow还整合了其他的DirectX技术,不仅可以自动侦测并使用可利用的音视频硬件加速,还支持没有硬件加速的系统。Direct⁃Show使用了一种叫Filter Graph的模型来管理整个数据流的处理过程,参与数据处理的各个功能模块叫作过滤器(Filter),各个模块的Filter在Filter Graph中按一定的顺序连接成一条“流水线”式的工作模式来协同工作。

2 系统设计

本文设计的基于DirectShow的网络视频点播服务系统,实现的主要功能包括视频文件的播放、网络接收及客户端与服务器的连接等。具体来讲,它包括服务器框架的搭建与实现,视频信息的显示、播放,视频管理中的添加、修改、删除等。系统授权的用户可以在线点播视频文件,部分用户还可以向服务器上传视频,编辑视频信息,删除自己以前上传的视频[5⁃6]。

网络视频点播服务系统主要分为服务器框架的设计与实现、客户端的设计与实现、服务器与客户端的网络连接与网络数据的接收[7⁃8]。

2.1 服务器框架的设计与实现

服务器一般要求具有较高的处理速度和大的存储容量,用于存放媒体文件和管理整个网络。服务器程序负责管理本地的文件资源,获取文件的描述信息,维护节目列表,并在客户机发出访问请求时,及时准确地响应客户机的请求,提供节目列表给客户机查看或者点播。

图1为服务器的VC工作区结构。

图1 服务器的VC工作区结构

2.2 客户端的设计与实现

客户端程序与服务器建立连接、向服务器发送指令、接收来自服务器的媒体数据。为了使客户机接收到的媒体数据同步播放,这里使用DirectShow来实现。Direct⁃Show中采用开发Source Filter的方式接收网络数据,并将数据引入到Filter Graph中。

图2为客户端的VC工作区结构。

图2 客户端的VC工作区结构

2.3 基于Socket的C/S交互模型

通信开始前,对于客户机与服务器分别创建一个基于CSocket类的新类CClientSocket和CServerSocket,然后分别构造一个客户机套接字和服务器套接字进行通信。图3为TCP流程的基于Socket的C/S交互模型。

2.4 网络数据接收

在网络数据接收时,DirectX定义了一系列类处理数据的来源,当需要读取数据到缓存时,通过这些类将需要的数据传送出去,这种方式即拉模式。在拉模式下,为了将Source Filter内的数据读出,需要在Source Filter上创建一个接口,以便播放网络接收来的文件。

图3 基于Socket的C/S交互模型

图4为网络接收的VC工作区结构。

图4 网络接收的VC工作区结构

3 运行结果测试

3.1 服务器程序

服务器端的程序运行后如图5所示。

图5 服务器的程序界面

各部分表示如下:

①显示服务器端可以提供给客户机的节目列表。服务器负责整个网络中文件信息的管理,并将可点播的节目列表提供给客户机,其中包含的信息如文件名及路径、文件类型(MPEG1、MPEG2、MP3、AVI等)、文件的大小、该文件的数字代号(Program ID,PID)。

②节目列表文件增加按钮。点击按钮后,用户可以根据文件浏览对话框通过路径找到需要添加的文件,并加入到节目列表中。当用户确定选择添加某个文件后,系统会弹出如图6所示的对话框,用户可给该文件指定一个PID操作。

③节目列表文件删除按钮。当用户需要从文件列表中删除某一文件时,选中文件后,用户首先要单击本按钮即可将节目列表中的文件删除。

④节目项的编辑按钮。当用户需要改变文件列表中的某一文件时,首先选择要编辑的文件,然后单击本按钮即可在弹出的对话框中对文件的属性如PID等进行编辑了。

⑤服务器程序的状态信息栏。显示服务器的主机名、IP地址、命令控制端口等信息。

添加、编辑按钮触发后的程序界面,如图6所示。

图6 添加、编辑按钮触发后的程序图

各部分表示如下:

①文件的完整路径(用户指定)。

②文件大小(自动检测)。

③文件类型(自动检测)。

④该文件的惟一数字代号(用户指定)。

⑤确定将所选文件加入到节目列表中。

⑥取消将所选文件加入到节目列表中。

3.2 客户端程序

服务器端的程序运行后如图7所示,各部分说明如下:

①客户机从服务器查询到的可供点播的节目列表。当客户机与服务器成功建立网络连接之后,客户机通过访问服务器,可以获得服务器端的点播文件节目列表。

②连接按钮。当客户端需要连接服务器时,用户单击本按钮可以指定需要连接的服务器的IP地址,然后尝试与指定的服务器IP地址建立连接,弹出的对话框,如图9所示。

③刷新节目列表按钮。当服务器端的节目列表变动后,客户端可以通过点击本按钮,刷新服务器上的节目列表。

④节目播放按钮。当用户从节目列表中选定好需要播放的文件后,单击本按钮就可以对需要播放的文件进行播放。

⑤暂停播放按钮。可以对正在播放的文件进行暂停播放。

⑥停止播放按钮。可以对正在播放的文件进行停止播放操作。

⑦信息栏。在客户端信息档,可以用于显示客户机的主机名、IP地址等信息。

⑧状态栏。可以用于显示客户机与服务器端是否建立连接,是否有文件播放等状态信息。

图7 客户端的程序界面

客户机与服务器连接时IP地址对话框,如图8所示。

图8 IP地址对话框

3.3 视频播放

图9为视频播放界面,当点击客户端文件列表中的视频,会进行相应的视频文件播放,测试中使用的视频格式为AVI格式文件。

图9 视频播放画面

4 结论

网络视频点播是伴随着音频、视频处理技术及网络通信的快速发展而日益受到人们欢迎的技术,也是多媒体应用技术中的热门方向,它涉及到的知识面很广泛,技术含量比较高。本文从系统设计,分模块设计,到编码测试,最终实现了视频点播功能,为校园多媒体教室点播系统等提供了技术参考。

[1]杨键.VOD互动业务建设的若干问题研究[J].科技传播,2012,6(12):199⁃200.

[2][荷]柳伯斯P,[美]阿伯斯B,[美]萨利姆F.HTML5程序设计[M].2版.北京:人民邮电出版社,2012.

[3]张海藩.软件工程导论[M].北京:清华大学出版社,2004.

[4]陆琪明.DirectShow实务精选[M].北京:科学出版社,2004.

[5]谭浩强.C程序设计[M].北京:清华大学出版社,2005.

[6]郑莉,董渊.C++语言程序设计[M].北京:清华大学出版社,2001.

[7][美]WILLIAMS Mickey.Visual C#.NET技术内幕[M].北京:清华大学出版社,2004.

[8]BAIN Tony,GOSNELL Denise.VB.NET和SQL Server 2000高级编程⁃创建高效数据层[M].北京:清华大学出版社,2002.

Design and realization of network video on demand service system based on DirectShow

LEI Wen⁃li,REN Xin⁃cheng,ZHANG Dong,GAO Ying
(College of Physic and Electronic Information,Yan’an University,Yan’an 716000,China)

With the rapid development of computer technology and Internet,the broadband VOD(video on demand)tech⁃nology is popular with education and entertainment fields because of its good human⁃computer interaction and streaming media transmission technology.A VOD system based on DirectShow technology is designed in this paper,in which the VC program⁃ming language is adopted.Its communication network is built on the basis of C/S architecture.The communication between multi⁃client and server is realized through socket.The test results show that the system can run normally and video playing is fluent. Therefore,it can meet the requirements of network video on demand.

video on demand;DirectShow;C/S architecture;socket

TN915.4⁃34

A

1004⁃373X(2015)07⁃0031⁃03

雷文礼(1982—),男,讲师。主要研究方向为无线通信技术、通信系统与终端设计。

2014⁃11⁃19

延安市科学技术研究发展计划项目(2014KG⁃04);陕西省教育厅科研计划项目资助(14JK1829);陕西省科学技术研究发展计划项目(工业攻关)(2014K05⁃61);国家自然科学基金(61379026)

猜你喜欢
视频点播客户机列表
学习运用列表法
扩列吧
流媒体的视频点播系统在微课堂中的应用研究
基于嵌入式Linux平台的网络视频点播系统
列表画树状图各有所长
基于Web的流媒体视频点播系统在校园网络中的运用
在线视频点播系统设计与实现*
不含3-圈的1-平面图的列表边染色与列表全染色
瘦客户机:安全与便捷的选择
升腾瘦客户机借神码翱翔“云端”