ADSL拨号网络环境下实时视频广播的完美实现

    网络环境:

    宽带拨号ADSL ROUTER,带NAT功能。
    假定ADSL猫拨号成功,获取外部公网IP=219.144.242.2,局域口IP=10.0.0.2(网关)。内网运行编码器的机器IP=10.0.0.119。

    软件环境:

    Windows Server 2003(Media 服务器),Windows Media 编码器9.0

    实现方法一:

    用编码器直接广播mms协议流(可以同时录制本地wmv文件)。通过反向NAT映射(Reserved Mapping),把mms://10.0.0.119:3991(3991是编码器默认的端口,可以修改)发布到Internet上,接收方用Media player打开该URL节目源收看。
    最大的缺点是,不能承受大并发数的客户端访问,因为ADSL的带宽有限(512K、1M、2M),网速很慢,视频流会很不流畅,也容易造成ADSL路由器阻塞死机等情况。

    实现方法二:

    通过编码器把视频流推传递到Internet上的一台Media服务器上,互联网上的客户从Media服务器上获取视频流。由于节目源与Media服务器是单项连接,流量被有效的分流到Media服务器上,所以可以获得足够的带宽,从而取得流畅的视频播放效果。

    实现:

    必须要有一台运行在互联网上的机器作为Media服务器(以Windows server2003为例),而且要知道Media服务器的IP地址或域名,配置编码器时要用到。Media服务器应该首先安装和配置Windows Media Services(WMS),建立一单播“发布点”,例如为pp1。建立发布点的时候需要输入即将产生节目源的编码器的IP地址。应该是编码器反向映射到Internet上的公网IP及其端口号,就是下面提到的219.144.242.2:8080。由于编码器还没有启动,所以这时候的发布点pp1是启动不起来的。
    配置编码器向Media Server推送视频流,这时视频是以http协议的8080端口向外广播(也可以同时录制本地wmv文件)。所以应该配置反向NAT映射,把内网的10.0.0.119:8080映射到公网的219.144.242.2:8080。
    这个时候其实也可以用Media Player直接接收编码器的实时视频,公网访问的URL应该是Http:// 219.144.242.2:8080,内网是http://10.0.0.119:8080。但这不是我们推荐的访问方式。
    然后启动编码器开始编码,推递视频流数据。这个时候Media服务器的pp1发布点应该能启动起来了,我们可以手动去启动它,或者当第一个客户端播放器连接时会自动启动该发布点。而大量的客户接收端最终访问视频节目的地址应该是mms://[WMS的IP地址]/pp1,就是通过Media服务器通过mms协议发布的视频流。Media服务器接收http协议的节目源,然后用mms流媒体协议广播出去了。

    接收视频节目的媒体播放器很多,例如Media Player、影音风暴等。笔者用影音风暴2测试时发现,需要点击“文件”菜单下的“打开方式(高级)”菜单命令,输入URL地址后,然后“播放方式”需要选择“DirectShow”才行。
    以上环境实现的实时视频广播方案,充分利用了现有的流行网络环境,容易取得的编码软件,是一种廉价和方便的解决方案。对于普通的实时视频发布差不多是够用了。当然如果是大型的、专业的实时视频发布,比如大型会议、体育赛事的网络直播,就要考虑更好的网络环境,使用一些效率更高的硬件和专业编码软件。

    本文来自“十万个为什么”电脑学习网 http://www.why100000.com
    http://www.why100000.com/_Linux/doc/RHLinux_Webmin_Nat.swf

    作者:张庆(网眼)2008-1-27 

你可能感兴趣的:(系统及网络管理)