1、引言
随着视频和宽带接入技术的迅速发展和成熟,通过IP宽带网络收看各种直播和点播节目已经成为现实。时移电视业务结合了视频直播、视频点播及视频录制等技术特点,使用户在看电视直播时可以进行暂停、回跳延时观看以及从延时观看切换回直播状态等操作,还可以让用户回看已播的电视节目。时移电视使用户彻底从“你播我看”的传统被动收看电视这一模式中解放出来,目前已被CCSA IPTV标准列为基本业务之一。目前在宽带网络上实现时移电视业务主要有两种思路,即基于C/S模式的IPTV建设方案和基于P2P技术的P2P叠加网络方案。
在IPTV中,时移电视是通过直播和点播相结合实现的,其难点类似于视频点播。在传统的视频点播模式下。每个用户与视频服务器之间需要建立一个连接,因此即使是有限个用户也会很快耗尽服务器的资源。这样,如何减小服务器的压力就成为系统设计的关键。对此业界已经提出了许多流调度算法,如金字塔算法(Pyramid)[1,2]、摩天大楼(Skyscraper)算法[3]、批处理(Batching)技术[4]、补丁(Patching)技术[5~7]及层次组播流合并(hierarchICal multicast stream merging,HMSM)[8]技术等,已提出的大多数算法的基本出发点是采用组播方式,将同一文件的多个点播合并为一个组播信道服务。但这些策略在实际商业运营中却难以得到实际使用,其原因为,目前整个网络并不支持全网IP组播,且这种节省资源的策略是以延时用户响应为代价的,在商业运营中得不偿失。参考文献[3]中提出了采用P2P办法实现时移电视的传输策略,但也是基于直播流采用IP组播传输的前提,并且要求客户端能够同时接收组播流和补丁流。该传输策略能够适用于小型的局域网系统,但不适合现有的广域网络。其原因是现有广域网络并不支持全网IP组播,且目前使用最广泛的ADSL线路带宽不足以支撑同时传输两个流。
另一方面,在P2P视频系统中,视频直播业务应用比较广泛,如Cool Streaming、PPlive等,而规模应用的P2P视频点播系统却很少见,具备时移电视功能的P2P系统则基本上没有见到。但从用户角度看,真正吸引用户使用P2P视频系统的是比赛类节目,如体育比赛、超女比赛等,而且,用户对这类节目的时移需求很强烈。比如观看中突然有事,需要暂停,希望回来后能不间断地继续观看,或者某个精彩镜头没看清,希望跳回观看,或者由于有事错过了已播节目,希望能够重新点播观看等,因此,如果能够在已有的P2P直播基础上加入时移功能,必将受到用户的极大欢迎。
以前,IPTV与P2P基本是相互独立发展的,有关IPTV与P2P结合的研究文献不多见。最近,出现了部分有关IPTV与P2P结合的研究文献[8~11],强调两者的优势互补,并就如何在技术层面融合进行了探讨。
本文将提出一种采用P2P技术实现的时移电视系统,这个系统不仅利用了P2P技术分散录制和存储直播节目,而且不需要依赖IP组播技术进行直播,因此能够解决IPTV系统中时移电视业务建设成本高、扩展性差的问题。此外,每个客户端在播放节目的同时,只须录制和存储部分节目片段,并能为其他客户端提供正在播放的视频服务和已存储的节目服务,因此本文所提出的系统不仅减少了每个客户端的开销,而且可达到参与者越多,可供资源越多,服务质量也就越好的规模扩展效果。
2、系统方案
2.1系统架构
图1是基于P2P的时移电视系统架构,由图1可见,系统包括一个分片处理器、一个媒体定位器以及若干对等节点(Peer)。分片处理器对输入的直播流进行分块和分段处理,形成媒体分块和分段。一个媒体分段包括固定数量顺序编号的媒体分块,段的起始和结束由块头中标志位标识。媒体分段是系统定位和存储媒体的基本单位,媒体分块是系统传输媒体的基本单位。对等节点可从多个其他节点取得分块数据进行解码和播放。为了叙述方便,把播放点附近不断滚动的若干媒体分块定义为一个逻辑上的特殊分段——直播分段。
图1基于P2P的时移电视系统架构
媒体定位器管理媒体分段(包括直播分段)在各对等节点中的分布情况及确定其是否处于可服务的状态,并为对等节点提供媒体分段的定位服务。另外,媒体定位器还从分片处理器接收每个分段的起始时间和结束时间信息,该信息用于从时间信息到分段信息的翻译服务。比如,某个节点需要收看某个频道某个时刻的节目,该节点向媒体定位器请求源节点,媒体定位器可从分段时间信息中得到对应的分段号,并返回具备该分段服务能力的源节点。
对等节点接收到媒体数据后可缓存于内存和磁盘中。节点把上下线事件、缓存分段数据增减事件以及节点对外服务能力跳变事件都通过消息上报给媒体定位器,据此媒体定位器可精确维护每个节点上的每个媒体分 段的可服务状态。数据传输在对等节点之间直接进行。
2.2数据封装
经分片处理器处理后的媒体分块和分段格式如图2所示。块由块头和载荷区两部分组成,载荷区中存放按时间顺序排列的音视频帧,块头除了对这些帧进行描述外,还包括频道号、段编号、块编号以及段标志。段标志用于标识该分块在分段中的位置,可取段开始、段中间和段结束3种值,利用此标志,对等节点可以方便地从分块流中进行段定界。
图2媒体分段和分块封装格式
经过分片处理后,对等节点可以从网络中多个节点取得不同分块,拼接并恢复媒体流,因此,节点可以采用灵活健壮的多源传输策略进行直播和时移业务传输。
2.3数据分布策略
本系统中不采用集中的存储服务器,所有的媒体分段数据都分散存储于各对等节点中。对等节点在播放过程中无需完整录制节目,而只需把取得的媒体分段数据以一定的概率随机缓存于节点的三级缓冲区中。
对等节点的存储模型如图3所示(其中,阴影部分表示该块已经含有数据,空白块表示该块还未有数据),分为播放缓冲区、内存缓冲区和磁盘缓冲区3 部分,3个缓冲区的大小固定。播放缓冲区中的数据是不断滚动变化的,一边不断从其他节点取得,一边又不断播放和老化。当播放缓冲区取得了一个完整分段时,按一定的概率写入内存缓冲区。当内存缓冲区存满时,则从存储内容中选取一个时间最早的分段,将其覆盖,同时把该被覆盖的分段以一定的概率置入磁盘缓冲区。同理,如果磁盘缓冲区写满时,则选择时间最早的段进行覆盖。
图3节点三级缓存机制示意
通过以上机制,可使当前的直播分段缓存在播放缓冲区中,且在全网的拷贝密度最大;已播的最近分段缓存在内存缓冲区中,全网密度次之;较旧的分段则被缓存于磁盘中,这类分段数量大,但密度最低。上述处理办法可与用户一般的业务观看习惯相一致,即大部分用户是观看直播,少部分用户会进行即时时移,只有很少量的用户会去观看已播的电视节目。另外,这种分布机制还具有以下效果:
●某个分段看的人多,在网络各节点中被缓存的几率就大,该分段的拷贝个数也就多,从而该分段所提供的服务能力就越大,因此具备良好的扩展性;
●单个节点只需录制存储一小部分节目片段,就可以在全网协同存储完整节目的足够多的拷贝,用户数量越大,每个用户所分担的录制和存储开销就越小,因此能够有效地减轻节点的录制和存储负担。
3、处理流程
下面给出时移电视的4个主要用户使用场景的业务处理流程的简要描述。
图4业务流程示意
(1)直播播放流程
如图4(a)所示,节点A首先向媒体定位器查询频道P直播分段的源,定位器返回节点B、C和D,节点A与B、C和D建立连接,传输数据并解码播放。
(2)直播转时移
如图4(b)所示,节点A正在播放频道P,现在用户要求跳回到时刻T播放,直播转时移的过程如下:
●节点A向定位器请求频道P时刻T的媒体分段源节点,定位器返回节点C和D;
●节点A停止直播分段数据的传输,转而与C和D建立连接并请求数据,从时刻T进行播放;
●一个分段播放结束后,进入下一个分段的播放,需要重新向定位器查询下一分段的源节点。
(3)时移转直播
节点A正在进行时移播放,用户要求切回直播,同样需要向定位器查询直播分段所在的源,然后切断时移分段传输,开始直播分段数据传输。
(4)电视回看
用户通过网页菜单直接选择播放已播的频道P时刻T的节目,其原理与(2)中的时移播放类似。
4、实验结果
为了验证方案的可行性,在局域网中搭建了一个节点数为20的系统,系统参数如下:
●码流:800 kbit/s、MPEG4、25 Mbyte/分段、64 Kbyte/分块、1路频道;
●节点:30 Mbyte播放缓冲区、100 Mbyte内存缓冲区、1000 Mbyte磁盘缓冲区,从播放缓冲区转存到内存缓存的概率取为10%,从内存缓存转存到磁盘的概率取为20%。
对上述系统进行了测试,实验结果如下:
●20个用户同时直播,能够正常播放,画面流畅;
●时移到直播切换延时为0.5 s,直播切换到时移的延时为0.5 s;
●直播启动延时为0.5 s;
●即时时移可支持0.5 h,在20个用户同时时移时,也能够达到平滑切换;
●20个用户同时在线运行1 h后,每个用户即可以以菜单方式回看已播电视。
5、结束语
本文提出了一种基于P2P技术的时移电视解决方案,该方案充分利用了客户端资源,因此无需专用视频服务器即可实现时移电视业务,从而解决了IPTV时移电视系统中建设成本高、扩展性差的问题。实验验证表明,本文提出的方案具备优越的用户体验质量和良好的规模扩展性。