zoukankan      html  css  js  c++  java
  • 音视频实时直播的解决方案

    用户要求是能够支持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?

      

  • 相关阅读:
    Laravel5.0学习--03 Artisan命令
    yar框架使用笔记
    MySQL外键之级联
    笛卡尔积
    PHP钩子机制
    CentOS安装PHP7+Nginx+MySQL
    Linux压缩命令
    Git命令汇总
    使用List把一个长字符串分解成若干个短字符串
    Adb connection Error:远程主机强迫关闭了一个现有的连接
  • 原文地址:https://www.cnblogs.com/ttvnc/p/1615196.html
Copyright © 2011-2022 走看看