校园网标清/高清电视直播HowTo
上海交通大学网络信息中心 姜开达 kaida@sjtu.edu
福建师范大学现代教育技术中心 卓柳迎 netstorms@fjnu.edu
在校园网内收看网络电视已经是一种广泛流行并且非常受欢迎的网络应用。目前很多成熟的视频服务系统都可以提供电视直播功能,无论是微软的Windows Media平台,还是国内流行的PPLive等P2P类电视直播软件,都为我们所熟知,但是这些系统所能提供的电视画面质量都难以和传统模拟电视相比,全屏播放效果不佳,并且相对传统电视播放滞后时间较长(十几秒到几十秒不等),而且也不能支持对高清电视(HDTV)的直播应用。我们经过长期实践摸索,提出一套利用开源软件VLC,在校园网内进行高标清电视转播的新方案。使用这种方案用户得到的网络电视画面收看体验同收看数字电视相比没有太大区别,并且延时非常小(可以控制到3秒以内),基本和传统电视同步,设备投资也不高,可以良好支持单播/组播,IPv4/IPv6,系统具有可扩展性,能够满足数百到上万用户访问需求,下面简单介绍一下这套方案。
图1
图1是这套方案的结构示意图。卫星电视接收器(锅)接收卫星电视信号之后传递到DreamBox系列数字卫星接收机(这里使用的型号是DM500S)。DM500S将卫星信号转换成MPEG-2的TS流,通过其内置的RJ45接口把这路IP流传输到服务器端,服务器端使用VLC接收再转发。VLC可以利用这路IP流作为输入源,通过IPv4/IPv6单播或组播的方式把电视流信号传送进校园网,如果使用多台卫星接收机就可以同时转播多路电视频道。
DM500S的具体操作不是本文的重点,网上教程也很多,这里就不多提了。需要特别注意的是,现在市面上提供的DM500S的操作系统(Image)有原版的Gemini版本,也有PLi Team出的版本(这个版本一般是半年发布一次,其他时候是修正版),还有一个是国内祥龙烧星乐园(www.xltvrobbs)论坛出的Atmosphere版本,此外还有一些使用率不高的其他版本。除了PLi Team的版本使用了他们自己改写的zapsteam(端口是31344)模块来发送MPEG-2 TS流外,剩下的版本都是直接使用源CVS(/)提供的steamts(端口是31339)模块。根据我们近期的的测试,当前可以稳定输出TS流的Image版本不是Gemini版本,而是 PLi Team出的PLi®-Jade-DM500-20080718(注意也不是最新版本),大家可以访问 / 这个网站下载升级。
VLC(VideoLAN Client)既是一个支持大量媒体文件格式,跨平台的开源多媒体播放器,也可以同时作为高性能的可以支持单播/组播,IPv4/IPv6的视频流媒体服务器来使用,是 /。目前上最新的版本是0.9.4,但是我们测试下来不如0.8.6版本稳定,如果想正式使用,还是建议考虑采用0.8.6版本作为服务器和客户端。
PLi版本卫星接收机输出的国内源代码网站TS流,在VLC中可以直接这样接收:接收机ip:31344,而其他版本中VLC转发DM500S的TS流,得加上类似的代码:
接收机ip:31339/0,0109,0209,02a4,02a5,1ffe,每个台的代码都不一样,或者用接收机ip/video.m3u来接收,video.m3u里面就包含了上面那个频道代码,接收到的TS流码率标清电视(SDTV)在5Mbps左右,高清电视(HDTV)在20Mbps~25Mbps之间。
这套方案的稳定性主要和卫星电视接收机的稳定性以及转发的VLC程序本身的稳定性相关。选择一个质量好的卫星电视接收机就成为关键,目前市面上DM500S来源不一,质量存在差异,购买时要慎重挑选。
VLC来源于开源项目,虽然高性能不容置疑,但是其长期运行的稳定性还是和商业软件有
一些差异。我们建议直接从卫星接收机获取TS流的VLC使用组播方式发送信号,使用命令行示例为(以下为Windows环境,Linux也大同小异): --meta-title “cctv5" 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”里面输入 202.120.1.1:1000 就可以通过单播收看。
用户收看直播时需要注意播放后在图像上点击右键打开(解除交错)Deinterlace 选项,然后选择“混合”或“Bob”来进行去拉丝操作。Vista操作系统下如果有声音没图像,可以通过修改“设置-选项-视频-输出模块-高级选项-选择DirectX”,重新点“播放”即可正常显示。
图2
VLC的单播性能非常高,我们在实际运行环境中记录过,单Intel(R) Xeon(R) CPU 5130主频2.0G,内存为4G的Windows Server 2003服务器,使用VLC提供单播服务可以给用户提供2.5Gbps以上的视频流量。只要简单增加服务器的台数,使用高性能的CPU,扩展服务器接入带宽,通过单播向用户提供几十G流量并非难事,不过此时的瓶颈可能倒是万M校园网不能承受这么大的单播流量。
虽然这套方案长时间工作稳定性可能不如其他视频直播系统,但考虑到校园网是非商业运营网络,并且我们可以通过相应的监测和技术处理来保证服务的持续性。相对其所能带给最终用户无法替代的网络电视收看体验(图3是最终用户的收看效果,这个是新疆体育台,我们看到画面非常清晰干净,彩鲜艳,层次感好,边缘过渡自然),我们觉得可以在校园网环境里考虑推广使用。
图3
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论