网络环境:
宽带拨号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