首页 > 范文大全 > 正文

基于TCP/IP的视频同步播放系统的研究与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于TCP/IP的视频同步播放系统的研究与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

【摘要】为了让计算机用户可以更加便捷快速地观看和分享电影和视频,本系统通过对流媒体的分析和视频文件的网络传输以及网络同步控制算法的研究,主要特色是将视频共享和同步播放结合在一起而不仅仅是简单的文件传输和播放,其主要的功能包括实现视频边传输边同步播放,让彼此之间可以快速并且同步共享视频带来的乐趣;在同步播放控制中,通过合理设计算法和多线程的使用,做到了快速,准确使得同步播放系统更加符合用户的需求;将视频文件通过TcP网络流传输到本地后再进行播放,并且有专门的逻辑监控播放进度和文件接收进度,使得播放起来更加顺畅。本系统在网络通讯中主要采用了基于连接的tcp协议和面向无连接的UDP协议,并且也运用了组播的相关技术。运用Windows Socket网络编程技术实现用户登录的相互识别和各个用户之间的通讯,通过合理的设计实现了这款视频同步播放系统。

【关键词】视频播放;同步;共享;流媒体

【中图分类号】TP309

【文献标识码】A

【文章编号】1672—5158(2012)10-0111-01

1 引言

近来随着计算机技术的成熟和网络通信技术的快速发展使得制约视频数据在网络上传输的主要问题迎刃而解,然而几乎所有的用户都是使用视频播放器相对独立地播放各种视频文件,本系统通过对视频播放知识的学习和网络通信的理解再加上对视频播放控制技术的研究设计并且以开发出一款可以让局域网之间用户共享并且同步播放视频文件的播放器,为网络用户提供更加人性化的播放条件。

2 视频同步播放系统的设计

2.1 同步视频播放器的特点

视频同步播放器利用TCP/ip协议获得视频播放数据,并且利用UDP协议使得使用视频同步播放器的双方进行播放信息的交互从而实现了视频的同步播放。在用户登录成功后,用户可以获得当前在线的用户列表,并且可以请求对方一起同步欣赏视频。同步播放开始后,播放器会自动根据各自的播放进度进行播放进度的同步。

在进行单机播放时候同步播放器跟普通的单机播放器没有什么异同,各种播放、暂停、快进等命令会得到播放器的快速响应,让用户有完美的体验。而在用户进行登录时必须指定加入的组播组,这个将直接影响到登录后计算机用户可以进行网络通信的计算用户列表。

2.2 视频同步播放系统的设计方案

通过需求分析,弄清楚了软件的各种需求,较好地掌握了用户的各种要求后,必须进行软件的总体设计,这个将解决这个软件应该怎么做的问题,并且为详细设计起到指导性的作用。在这个阶段着重实现需求的程序模块设计问题,并将需求转化为软件的系统结构,进行模块的划分,确定每个模块的功能、接口及模块之间的调用关系。视频同步播放系统的总体功能如图1所示:

由于视频同步播放器可以分为:网络配置,用户登录,单机播放,同步播放以及即时通讯等功能模块,根据视频同步播放系统用户的各种行为设计了用例图如图2所示:

3 视频同步播放系统的实现

3.1 视频同步播放系统的主要功能模块

(1)视频同步播放系统界面模块

UI层,负责对整个界面的按钮事件处理和棋盘的绘制。其主要是根据播放视频的大小自动进行大小和布局的调整,使得不管视频的原始尺寸如何都能做到尺寸真实而且播放器界面布局保持不变。

(2)单机视频播放模块

本系统主要是调用特有的axwindowsplayer播放控件进行视频文件的播放,在打开同时获取视频的时间总和,文件大小以及根据视频尺寸进行播放器界面大小的调整。

(3)用户登录和即时通讯模块

用户登录主要是根据UDP协议实现的,在登录时创建一个UdpClient,并且加入到特定的组播组,然后向这个组广播一个本机的登录信息,同时接收这个广播组的公共信息和自己的私人消息来实现用户的登录和即时通讯的功能:

(4)同步控制模块

同步播放控制模块也是运用了UDP协议来实现的,在确认进行同步播放后会新建一条线程进行专门的控制消息的接收。而用户在播放过程中就是根据这个模块进行同步:

(5)数据传输模块

数据传输模块主要是运用了TCP面向连接的可靠传输的特点通过流的方式来完成的,当确定进行数据传输之后,从机会新建一条TCP连接监听线程进行连接的监听,而主机也会根据IP地址和预先约定的端口号进行连接,当连接成功后即刻进行数据传输:

3.2 同步控制主要实现过程和算法

(1)主要控制模型

从计算机用户向其他用户发送同步播放请求到开始播放,系统必须进行一系认动作,图3是系统进行确认时的消息交互示意图:

(2)进度同步

本系统进度同步的主要是思想是每间隔一定的时间,系统就会获取本机的播放进度然后再以特定的命令格式发送到对方,而在对方接受到此命令之后就立刻进行进度分析和进度调整,而系统认为进度差在2秒之内是正常范围,而一旦超出这个临界值,接受到命令的主机将会立即调整自己的播放时间。

4 结论及研究展望

本文介绍了实现视频同步播放系统的总体方法,在运用TCP协议进行视频数据传输时也没有采用多条线程同时传送一个文件,而仅仅是采用单一线程一直到发送完毕,这个视频同步播放系统,满足用户进行视频共享的同步播放,并且还可以进行即时通讯。经过测试,在局域网间进行视频同步播放是两部机相差不会超过0.5秒,而且一旦由于其它的原因使得播放进度相差超过了2秒播放器会自动进行调整。以后将在以下两个方面进行研究:

(1)视频文件直接发送,非常浪费带宽。而且由于本身数据传输时浪费了极大的带宽也会导致网络的极大延时从而影响了同步播放的控制;

(2)在用UDP进行控制命令地发送时没有对命令进行编号,由于UDP是不可靠的无连接的协议,所以有可能由于网络的延时造成了播放器对控制命令的误读,最后大大影响了同步播放的质量;

参考文献

[1]赵增敏.Visual C#2008程序开发入门与提高.北京:电子工业出版社,2009

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

[3]麻志敏.面向对象分析与设计.北京:机械工业出版社,2009

[4]王晓东.计算机算法设计与分析.北京:电子工业出版社,2007