高清数字电视走进校园网系列之一
9月28日,中央电视台、北京卫视、东方卫视、湖南卫视等九家电视台正式开播高清电视节目,加上之前的CCTV高清频道,SiTV高清新视觉频道等,国内已经出现十多个高清频道。上海,北京等大城市已经开通10个以上高清频道。家庭用户可以通过有线电视系统使用高清机顶盒,或者支持接收数字地面波的设备来收看这些频道。但是对于高校来说,电视远远不如电脑一样普及,有线电视系统(未经改造升级无力承载数字电视业务)也没有像校园网一样可以覆盖学校每个角落。在很多校园网里,万M主干已成为主流,这为高带宽视频流传输打下了良好基础。那么是否有可能先把数字电视信号实时转换处理为IP数据流,然后再引入校园网,通过IPv4/IPv6/组播/单播结合方式传输这些流,使广大网络用户通过电脑欣赏到不亚于电视机收看效果的,具有视觉冲击力的高清电视节目呢?实践证明这条路线是完全可行的,而且投资也不大,不过在具体实施过程中会有很多细节需要注意。
我们先谈一下数字电视信号的获取。国内数字电视按信号传输方式可以简单分为地面无线传输(DMB-TH)、卫星传输(DVB-S)、有线传输(DVB-C)三类。信号有加密和不加密之分,不加密的没有什么大问题,加密的可能就会在转换到IP流过程中遇到一些困难,不过有些可以解决。地面波数字电视信号仅仅在一些大中城市才有,而且涉及到的高清频道较少,上海的地面波就只能收到522MHz的央视高清频道和666MHz的东方卫视高清频道。但是使用这种信号无需申请,比较方便,而且投资少,只要配块三百左右的电视卡就可以接收一个台。走卫星传输就不再受地域限制,使用高清数字卫星接收机可以收到上百个国内外频道,其中也有很多高清频道。但是使用卫星信号受很多限制,不是所有地方都有条件使用。地面有线传输数字信号受本地有线接入提供商控制,北京的歌华有线就可以提供最多13个高清频道和几十个标清频道,不过国内不同地区数字机顶盒的CA加密方式还未统一,有所区别。地面有线可以提供较多的数字电视频道,但是没有数字化整体转换过的地区能够提供的数字电视频道有限。
地面波信号转换为IP流可以使用特殊的支持DMB-TH的电视卡或支持地面波接收的高清数字电视接收机(例如F304)。高清卫星接收机DM800系列和F304系列都带有LAN口,配上相应的DVB-C调谐器和对应所在地区的CI模块以及当地有线提供的卡,可以从卫星和有线电视系统获取数字电视信号,并很方便的直接实时转换为MPEG2的TS流,通过http协议或udp组播传输进校园网。
接收地面波数字电视信号并转换为TS流可以使用开源软件VLC,接收高清卫星接收机输出的TS流也是同样使用开源软件VLC。VLC支持IPv4/IPv6/组播/单播,跨多种操作系统平台,既可以作为流媒体服务器对外提供IPv4/IPv6单播服务,也可以对外发送IPv4/IPv6组播流。标清电视SDTV(720*576)MPEG2的TS流占用带宽在5M左右,高清电视HDTV(1920*1080)MPEG2的TS流占有带宽在20M左右。注意VLC仅仅起转发作用,不建议对MPEG2流进行重新编码。重新编码必然是有损的,会带来电视信号的质量降低。
关于VLC程序的稳定性提升,支持DMB-TH的电视卡和数字卫星接收机的详细配置,校园网电视流组播的配置和全网规划部署,支持数千用户的单播转发大规模应用,对转播服务器的系统选择、性能要求和多网卡负载均衡设计,给用户提供友好方便的电视播放界面和快速换台,定期抓取所有电视台画面生成索引浏览列表,在校园网上构建类似IPTV的时移回看系统……后继文章都会陆续涉及到,敬请期待。
Work 1,236 views
请教姜老师:
采用带有LAN口高清卫星接收机DM800系列或F304系列,需要同时进行多个频道的直播转发,是只需要1台卫星接收机吗?如果是,VLC上可以设置选择同1个接收机的不同频道吗?传统的通过AV输出的需要对应多个采集卡或转换接口来实现多个频道的转播.
谢谢!
这种机器1台只能输出1个频道。
but福建师范大学的卓老师提出了一个更为廉价可靠的方案:
使用 TBS6980 或 TBS 8920 或 TBS 6920 这种廉价的DVB卡,
一块卡可以输出一个频段上多个频道的TS流。
效果和之前的方案一致,只是成本更低。
谢谢姜老师,这种卡只能收DMB-TH吗?目前DMB-TH的频道比较少,如果还要转发当地的有线信号的多个频道的话,是否还是用机顶盒再通过1分多路输出到采集卡?
@yorkdong
另外想咨询下,我在WINDOWS 2003(多CPU,机器配置应该比较高了)平台下测试VLC1.0.3,打开4个左右VLC转播CPU基本就100%了,画面严重停顿,再换高配置的机器也类似,不知是否需要换到linux环境下,谢谢!
如果只能收DMB-TH,那么局限性就太大了。这种方案卫星上开锁的MPEG2台全部可以转成TS流出来,我非常看好这种方案。一机多卡,一卡多台,几台PC机就可以建立一个新型的数字广播电视站了。
我不推荐使用传统的模拟采集卡。
思路是尽量使用原始的数字信号。
可能和你的vlc启动脚本不当有关。
无论windows还是linux,我这里开几十个台都还可以。
@kaida
一机多卡,一卡多台的方案也是我想要的,由于现在各地都对卫星锅盖查得较紧,最好就利用当地有线网络的接入,我再查查DVB卡的资料,谢谢姜老师的答复.
@kaida
一机多卡,一卡多台的方案也是我想要的,由于现在各地都对卫星锅盖查得较紧,最好就利用当地有线网络的接入,我再查查DVB卡的资料.另外我的VLC转发时就用的默认配置(为了实现组播仅修改了RTP的默认TTL值),有无启动脚本参考以减小CPU占用?谢谢姜老师的指教.
把你的脚本贴出来看一下。
@kaida
不好意思,我一直就在WINDOWS下直接用的图形界面的默认配置然后选输入和输出,其启动脚本如何使用还不清楚,就是完成输出的流的内容吗?例如:sout=#transcode{vcodec=h264,vb=800,scale=1,acodec=mp4a,ab=128,channels=2,samplerate=44100}:rtp{dst=225.1.1.1,port=1234,mux=ts}
#transcode{vcodec=h264,vb=800,scale=1,acodec=mp4a,ab=128,channels=2,samplerate=44100}:
你用h264重压了,多强的CPU也顶不住这么折腾啊。
不要压,原始的就是最好的,把重新编码这部分内容去掉。