音视频实时直播的解决方案

用户要求是能够支持200人在线的音视频实时直播,语音要求特别延时特别小,视频慢点可以接受,要基于浏览器。

 

主要考查点是语音的延时和累积延时(一开始延迟比较小,慢慢累加起来,越来越大)。 

   

直播流程:  摄像设备(摄像头、摄像机、监控信号、电视信号->输出模拟信号)->采集设备(采集卡、电视盒,把模拟信号转换成数字信号)->编码软件(把数字信号编码成各种格式的数据)->媒体服务器(把数据流转发到播放客户端)->播放客户端(在用户的机器上运行,播放音频、视频信号)

 

方案选择有好几个:

1、自己开发一个语音直播ActiveX,视频用Windows Media Server。

2、Windows Media

3、葵花

4、Flash 

 

 评估下来:

1、自己开发语音当然没啥问题了,关键是要让用户装一个ActiveX,ActiveX还要买个证书进行签名,有点麻烦。

2、Window Media。 延时实在太厉害了,视频语音都是7-8秒到10秒。放弃了,据说有在Media Server二次开发的,有机会测试下。

3、葵花。经过测试和验证,延时不错,能定时把累计延时清掉。问题是要装ActiveX

4、Flash,很好很强大。以前觉得Adobe的Flash是用来玩玩的,技术含量还够,这次研究大为改观。下面讲详细点。

 

 摄像设备:

       采用了Sony的D100会议摄像机,用来做视频会议的摄像头。好处是可以自动对焦、云台控制。视频质量的确不错,DVD级别的了。 价格大概是6000上下。

   清晰度好像比普通的USB摄像头好很多。 

   Sony也出来高清的摄像机了,不过一个几万块,预算高了点。

 采集设备:

  测试了电视盒也能用, 不过最后还是买了Osprey210的采集卡,400块上下。他们也有USB的,装在笔记本上比较方便。

   USB摄像头就不用采集卡了。 

 编码软件:

   Flash方案中有两个可选,Live Encoder和Flash客户端自己带的。

   没看出很大区别。Flash客户端的可以编码设定参数。有空了基础测试

 

视频服务器:

   有多个选择,Adobe自己的FMS, wowzamedia ,都是1万块左右的License,据说还有Red5?没测试过。

   FMS 标准功能,测试下来,延时挺厉害的,还有延时累加问题。据说要服务器端写程序。

   Wowzamedia,开始也是延时挺厉害的,不断地找资料(例如http://www.wowzamedia.com/forums/showthread.php?t=5008),没有失去信心,最后找到了一个解决方案,详细看客户端。


播放客户端:

  Adobe和Wowzamedia的视频服务器都提供了标准的例子。

  经过测试发现, VideoChat和LiveVideoStreaming的延时效果差别很大。 结论是用VideoChat改造就能满足要求了。

 

 

至此,从对直播一无所知到完成了一套解决方案的研究,耗时两个月,对Adobe的产品和战略大为佩服... 


一个收获,看到了国外云计算的实际例子,Wowzamedia 已经在Amazon EC2上商业运营了,好像还蛮便宜的,http://www.wowzamedia.com/ec2.html。据说延时只有1秒?

 

另外一个收获, Adobe公开了标准RTMP http://www.adobe.com/aboutadobe/pressroom/pressreleases/200901/012009RTMP.html ,意味着我们也可以做一套FMS?

  

 

 

posted @ 2009-12-02 12:34  TTVNC  阅读(6685)  评论(10编辑  收藏  举报