图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时移电视系统中建设成本高、扩展性差的问题。实验验证表明,本文提出的方案具备优越的用户体验质量和良好的规模扩展性。