在校园网上收看网络电视已经成为一种广泛流行并且非常受欢迎的网络应用。目前很多成熟的视频服务系统都可以提供电视直播功能,无论是微软的Windows Media平台,还是国内流行的PPLive等P2P类电视直播软件都为我们所熟知。但是这些系统所能提供的电视画面质量都难以和传统模拟电视相比:
(1) 全屏播放效果不佳;
(2) 相对传统电视播放滞后时间较长(十几秒到几十秒不等);
(3) 不能支持对高清电视(HDTV)的直播应用。
上海交通大学负责视频的管理人员经过长期实践摸索,提出一套利用开源软件VLC,在校园网内进行高标清电视转播的新方案。使用这种方案的用户得到的网络电视画面收看体验同收看数字电视相比没有太大区别,并且延时非常小(可以控制到3秒以内),基本和传统电视同步,设备投资也不高,可以良好地支持单播/组播,IPv4/IPv6,系统具有可扩展性,能够满足数百到上万用户访问需求。下面介绍这套方案,方案结构如图1。
图1 利用VLC软件解决高标清电视转播方案结构
卫星电视接收器接收卫星电视信号之后传递到DreamBox系列数字卫星接收机上(这里使用的机器型号是DM500S)。DM500S将卫星信号转换成MPEG-2的TS流,通过其内置的RJ45接口把这路IP流传输到服务器端,服务器端使用VLC接收再转发。VLC可以利用这路IP流作为输入源,通过IPv4/IPv6单播或组播的方式把电视流信号传送进校园网,如果使用多台卫星接收机就可以同时转播多路电视频道。
DM500S的具体操作不是本文的重点,网上教程很多,这里就不再赘述。但需要特别注意的是:现在市面上提供的DM500S的操作系统(Image)有原版的Gemini版本;也有PLi Team出的版本,这个版本一般是半年发布一次,其他时候是修正版本;还有一个是国内祥龙烧星乐园(http://www.xltvrobbs.net)论坛出的Atmosphere版本。除了PLi Team的版本使用了他们自己改写的zapsteam(端口是31344)模块来发送MPEG-2 TS流外,剩下的版本都是直接使用源CVS(http://cvs.tuxbox.org/)提供的steamts(端口是31339)模块。根据学校近期的的测试,当前可以稳定输出TS流的Image版本是 PLi Team出的PLi Jade-DM500-20080718,大家可以访问 http://www.pli-images.org/ 这个网站下载升级。
VLC(VideoLAN Client)既是一个支持大量媒体文件格式、跨平台的开源多媒体播放器,也可以同时作为高性能的支持单播/组播,IPv4/IPv6的视频流媒体服务器来使用,官方网站是 http://www.videolan.org/。目前官网上最新的版本是0.9.4,但是经过测试最新版本不如原来0.8.6版本稳定,如果想正式使用,还是建议考虑采用0.8.6版本作为服务器和客户端。
PLi版本卫星接收机输出的TS流,在VLC中可以直接这样接收:http://接收机ip:31344,而其他版本中VLC转发DM500S的TS流时,得加上类似的代码:
http://接收机ip:31339/0,0109,0209,02a4,02a5,1ffe。每个台的代码都不一样,或者用http://接收机ip/video.m3u来接收,video.m3u里面就包含了上面那个频道代码。接收到的TS流码率标清电视(SDTV)在5Mbps左右,高清电视(HDTV)在20Mbps~25Mbps之间。
这套方案的稳定性主要和卫星电视接收机的稳定性以及转发的VLC程序本身的稳定性相关。选择一个质量好的卫星电视接收机就成为关键,目前市面上DM500S来源不一,质量存在差异,购买时要慎重挑选。
VLC来源于开源项目,虽然高性能不容置疑,但是其长期运行的稳定性还是和商业软件有一些差异。我们建议直接从卫星接收机获取TS流的VLC使用组播方式发送信号,使用命令行示例为(以下为Windows环境,Linux也类似):vlc.exe --meta-title “cctv5" http://10.128.100.1:31344 :http-caching=1200 :sout=#duplicate{dst=std{access=udp,mux=ts,dst=237.10.0.3:8000}} --ttl 16。这里设定转播频道名称为CCTV5,10.128.100.1是配置在DM500S上的IP地址,缓存流时间为1200ms,使用UDP协议,通过TS封装,把电视流发送到组播地址237.10.0.3,目标端口为8000,TTL生存时间设定为16。
VLC把组播流发送到校园网之后,需要路由器和三层,二层交换机的互相配合才能把电视组播流传递到校园网的各个角落,具体配置和路由器交换机厂商有关,这里不多提。对于部分组播不能到达的区域,我们还可以使用单播来向用户提供服务。图2就是Windows下的服务器接收组播流作为源,再对外提供http单播服务的示意图。从udp://@237.10.0.3:8000获取源,设定缓存300ms,然后通过http的1000端口(本机IP为 202.120.1.1)接收用户连接请求。用户访问只要打开他电脑上的VLC播放器,然后再“打开网络串流-HTTP/HTTPS/FTP/MMS”里面输入 http://202.120.1.1:1000 就可以通过单播收看。
图2 Windows下单播服务过程界面
用户收看直播时需要注意播放后在图像上点击右键打开(解除交错)Deinterlace 选项,然后选择“混合”或“Bob”来进行去拉丝操作。Vista操作系统下如果有声音没图像,可以通过修改“设置-选项-视频-输出模块-高级选项-选择DirectX”,重新点“播放”即可正常显示。
VLC的单播性能非常高,我们在实际运行环境中记录过,单Intel(R) Xeon(R) CPU 5130主频2.0G,内存为4G的Windows Server 2003服务器,使用VLC提供单播服务可以给用户提供2.5Gbps以上的视频流量。只要简单增加服务器的台数,使用高性能的CPU,扩展服务器接入带宽,通过单播向用户提供几十G流量并非难事,不过此时的瓶颈可能是万M校园网不能承受这么大的单播流量。
图3 最终用户的收看效果
如图3是最终用户的收看效果,可以看到画面非常清晰干净,色彩鲜艳,层次感好,边缘过渡自然。从效果看使用VLC方案给最终用户网络电视收看带来高清效果体验,因此我们觉得可以在校园网环境里考虑推广使用。
(作者单位:姜开达为上海交通大学网络信息中心;卓柳迎为福建师范大学现代教育技术中心)
来源:《中国教育网络》2008年12月刊
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。