基于模式感知的视频播放和系统设计与实现

时间:2022-09-11 10:15:35

基于模式感知的视频播放和系统设计与实现

摘要:为了解决视频播放中因带宽不足而带来的播放质量下降问题,本文设计并实现了一种具有模式感知功能的视频播放和系统。服务器通过对网络性能的实时监控能够自动提供B/S和P2P两种视频流的传输模式,播放端通过自动感知,实时切换不同的播放模式。系统采用P2P技术进行分布式视频,降低对服务器的并发能力和网络带宽要求,从而提高视频播放质量和传输的整体效率。所实现的系统在江苏电力网络大学中得到实际验证,系统具有良好的适应性,有效提高了用户的播放体验,解决了传统视频播放中单一模式下的网络负载问题。

关键词:p2p;模式感知;视频播放

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2014)02-0161-05

一、引言

流媒体播放技术是当前互联网视频播放的主流技术,为了改变原有B/S模式下对媒体服务器并发能力和网络负载的巨大需求,[1]P2P技术采用分布式共享原理,将播放内容在用户播放端之间进行分发和传播,形成了一种新的传输模式,克服了原有视频数据均通过客户端和服务器之间直接传输模式的不足,现有市场上的PPLive,Torrent软件等均依据此原理进行设计和实现。另一个方面,由于P2P技术的应用,在客户端网络也会产生较大的网络流量,对终端网络的流量管理也带了一定的困难。因此,如何根据网络当前负载情况和服务器性能,设计一种兼顾两种传播模式的流媒体播放系统,将具有较高的实用价值。网络教育是流媒体播放技术的典型应用领域,如现有MOOC学习模式为源自斯坦福大学、哈佛和MIT大力推动的基于网络的一种学习模式,成为2012至2013年最受关注的创新型教学模式,其开放系统在全世界拥有几十万至百万级的用户,视频文档是其主要资源之一,主要通过流媒体方式进行学习。江苏电力网络大学为满足江苏省所有电力职工的在线学习而设计,同时对全国电力系统开放,是电力系统在线学习和考试的重要平台,具有数十万个终端用户。本文的设计目标为针对现有网大在线学习系统在并发访问支持方面的不足,在不改变原有系统总体架构和用户使用方式的前提下,利用P2P技术为现有系统提供一种新型的学习点播服务模式,并且保证能够与现有流媒体点播方式相兼容。针对以上需求,本文对MediaPlayer播放器的工作原理进行了详细分析,提出了一套具有播放模式感知的视频播放系统设计方法,将设计完成的播放系统在江苏电力网络大学环境中进行实施部署和实际测试,各项功能和指标满足设计需求,解决了两种播放模式的兼容和播放质量保证的问题。

二、系统架构设计

江苏电力网络大学网络拓扑设计采用“集中―分布式”模式,呈现为“中心―区域―播放终端”三层结构。中心位于南京,部署所有的课件资源。区域为江苏各个二级城市,每个区域向该区域内所有职工提供视频学习服务。由于区域节点数目有限、而终端播放用户并发数量较大,[2]因此中心节点和区域节点之间采用FTP协议进行通信,并将用户需求视频暂存。区域节点和终端用户之间采用流媒体视频点播和P2P传输两种模式。具体系统架构见图1所示。

区域中心流媒体服务器不仅能够提供视频流媒体点播,而且能够根据区域点播用户负载情况实时启动P2P机制,因此除了部署点播服务器之外还需要设计目录服务器以提供P2P服务,如图2所示。P2P目录服务器的功能如下:负责管理各个在线客户端以及所有课件视频分段的分布信息,并接收处理P2P客户端的各种请求。

用户播放端软件能够自动感知目录服务器是否在线,从而进行两种工作模式的自动转换。如图2所示,P2P客户端的功能如下:负责处理本客户端所需视频的P2P传输业务、其他客户端向本客户端发出的传输视频请求业务、本客户端与P2P目录服务器的信息交互业务。

三、关键技术及相应策略

根据系统的功能需求,系统设计中需要解决以下关键技术:

1.如何保证系统两种工作模式的兼容性。现有在线学习系统为流媒体点播服务模式,若在原有基础上,基于P2P技术设计一种新的分布式资源模式,需要保证整个系统在两种服务模式方面的相互切换、相互补充。[3]在并发用户正常情况下,区域服务器保持原有流媒体点播工作模式,在并发用户数量较大时,区域服务器则转换到P2P模式下工作,而在P2P异常情况下,系统也能够自动切换到原有流媒体点播服务模式下工作。采用的策略:在区域中心服务器上设置一监视功能模块,维持两个变量,流媒体点播用户数量StreamUser和P2P用户直接从区域服务器下载分片的用户数量P2PServerUser,若StreamUser大于给定值,则系统转换到P2P模式下工作;若P2PServerUser大于给定值,说明P2P用户数变少或者发生了系统异常,则系统工作模式转换到流媒体点播模式下工作。

2.Media Player播放器如何支持P2P工作模式。在现有系统工作模式下,Media Player作为客户端与媒体服务器通过实时流媒体传输协议RTP、RTCP和UDP协议进行内容传输,系统采用“边播放边传输”方式工作;在P2P模式下,Media Player需要从本地获取播放内容,而内容的获取通过P2P机制从其他用户端进行下载,采用“边播放边下载”方式进行工作。采用策略:用户播放端软件首先判定区域服务器上的P2P目录服务是否为工作状态,若是则用户播放端软件自动启动P2P模式,从目录服务器获取种子节点信息,启动多线程进行本地网络的视频分段下载。

3.P2P系统内容负载均衡问题。P2P系统中的负载均衡问题指如何保证在多个用户终端并发播放时,防止出现种子节点选择热点问题。[4]P2P机制本身的优势在于同一个内容播放的用户越多,后来的用户下载的速度就越快,但如果没有好的机制避免其热点问题,其优势就难以发挥出来。采用策略:用户终端在播放某一视频时,首先从区域目录服务器上获取该视频的分片信息及每个分片的种子信息,目录服务器在选取每个分片的种子节点时采取“同一网段内的种子节点、P2P服务当前线程数少的种子节点和心跳网络性能最好的种子节点”三个优先级进行选取,一方面防止某个种子节点成为P2P热点,同时保证能够选取性能较好的节点。

4.P2P系统异常处理。在P2P机制中,视频播放器数据来自于本地多线程从区域内其他播放终端下载的P2P分片,[5]在下载过程中,由于网络状况的不稳定,或者由于视频资源提供端的突况,可能会导致P2P分片无法成功下载,为了保证系统的健壮性,异常处理机制必不可少。异常处理策略:主要异常分为种子节点分片不存在、网络异常中断、种子节点异常关闭、种子节点线程过多拒绝服务异常,[6]处理策略为在种子节点列表中联系其他节点,若仍然不能成功获取分片数据,则从区域目录服务器直接获取分片资源。

四、系统设计与实现

系统软件主要由区域服务器和播放终端两个主要部分构成。

1.播放客户端软件设计与实现。播放客户端在播放之前首先需要向区域P2P目录服务器获得播放文件的种子信息,然后启动多线程进行播放终端之间的P2P分片资源共享。播放客户端与区域P2P目录服务器之间的交互如图3所示。[1]

播放终端之间通过P2P方式进行视频分片的分布式共享与传输,从而保证播放器本地数据的快速获取,取代流媒体点播获取播放数据的模式,两个播放终端之间的分片传输如图4所示。

播放终端之间进行P2P视频分片传输时可能产生不同的异常,这里对分片提供者产生的异常和网络通信异常分别进行了不同的处理。具体如图5所示。

2.区域P2P目录服务器端软件设计与实现。P2P目录服务器的软件主要为种子文件生成及选源策略、P2P播放客户端的心跳监控与处理、P2P播放客户端分片种子信息更新等模块。

种子生成与选源策略模块主要负责处理P2P播放客户端发送来的视频资源请求。客户端制定文件名与文件地址,服务器根据客户端需求的视频文件,在数据库的ClientFragmentTable表中选出种子客户端,生成一个xml类型文件的种子列表,发送给请求方客户端。

按照选源策略,种子节点选择算法(SourceSelect算法)的具体描述如下:

在选源算法中,一般需要选出的种子数量为6个,所以实现中的n等于6。选出一个种子,需要遍历整个含有分段的种子集合一次,选出6个种子,生成种子列表的情况下,算法的复杂度就为O(6N)。在达到均衡机制的要求下,该算法是合理有效的。

P2P目录服务器需要对播放终端的上线及学习过程进行记录存档,同时通过心跳功能获取当前节点的通信性能,为种子节点选择做好准备。

心跳功能的记录结构如表2所示,IP地址用于判定所在的网段,UploadNum记录当前播放终端启动的线程数,本系统规定线程数为4个,线程数作为种子节点选源的一个因素之一。

P2P目录服务器提供每个视频文件的种子文档信息,以便用户播放端能够进行终端网络的P2P终端分片共享,由于视频分片的分布是动态的,因此每个播放终端将自己所拥有的视频分片向目录服务器进行汇报,为种子文档的产生做好准备。分片更新工作流程如图6所示。

分片更新算法UpdateLocalFragments如下:

该算法根据本文设计的更新本地分片的策略进行实现,将本地的分片更新到服务器从而实现数据的共享。

五、系统测试

系统测试主要通过测试用例对系统的各项功能进行测试,[8]主要包括流媒体播放与P2P播放两种模式的切换测试、P2P目录服务器的P2P下载功能测试、用户播放端分片信息更新的测试、用户播放端之间的多线程P2P下载与上传功能测试、P2P目录服务器种子节点选源均衡策略测试、P2P传输异常测试。这里仅给出三个主要功能测试用例及测试结果。

测试环境如图7所示:

(1)服务器1台,该服务器上部署一个流媒体课件服务器、一个课件点播web服务器(网络大学学习平台)、一个P2P目录服务器。

(2)用户播放终端计算机5台,具有浏览器软件和P2P客户端软件。

主要功能的测试样例及测试结果:

1.流媒体播放与P2P播放两种模式的切换测试

2.P2P客户端之间单线程和多线程传输功能测试

3.P2P目录服务器种子节点选源均衡策略测试

以上结果是在实际环境下测试的实际结果,实际测试表明所完成的设计符合实际设计需求,功能正确。

六、分析与讨论

本文根据实际需求,在原有流媒体视频点播架构的基础上,增加P2P视频播放功能,所实现的系统设计和功能满足了两种播放模式的兼容和自动感知切换,充分利用了两种播放模式各自的优点,系统设计考虑了各种异常处理方案,使得系统本身具有较好的健壮性,系统的机制和策略具有实际价值,能够应用于不同领域中的数据分发和共享。

参考文献:

[1]沈时军,李三立.基于P2P的视频点播系统综述[J].计算机学报,2010,(04):613-624.

[2]王书芹,姜秀柱,田芳,等.基于P2P的流媒体点播系统中客户端缓存的研究[J].计算机应用与软件,2009,26(9):219-221.

[3]方炜,吴明晖,应晶,等.基于P2P的流媒体应用及其关键算法研究[J].计算机应用与软件,2005,22(5):35-37.

[4]黄良飞.基于DirectShow技术的网络视频播放器设计[D].浙江大学硕士学位论文,2007.

[5]吕伟梅,郑庆华,黄华,等.移动流媒体播放器的设计与实现[J].计算机科学,2008,35(9):126-128.

[6]赵进,叶梧,冯穗力.基于RTP/RTCP的流媒体服务器技术研究[J].中国有线电视,2004,(01).

[7]Mengkun Yang,Zongming Fei.A segmentation-based fine-grained peer sharing technique for delivering large media files in content distribution networks[J].IEEE transactions on multimedia,2006,8,(4):821-829.

[8]Aditya Ganjam,Sanjay G Rao,Kunwadee Sripanidkulchai.On-demand waypoints for live P2P video broadcasting[J].Peer-to-Peer Networking and Applications,2010,3(4):277―293.

上一篇:儿童小说与幼儿智力开发 下一篇:高职电气自动化技术专业人才培养模式改革的探...