• FMS直播流发布时 Microphone Speex 编码设置注意事项


    1.为何要用 Speex?
    FP的默认音频编码是 NellyMoser,而FP10之后加入了 Speex.
    实际应用中,用默认的 NellyMoser 编码音频,会有个很大的问题,就是无法控制流码率浮动.当设置 rate 为44时,音频带宽浮动会有100多 kbps.而音频 codec 设置成 Speex 后因为是可以直接控制quality的,几乎没有浮动,这样就更利于 FMS 发布带宽控制.

    2.设置 Speex 注意事项
    由于 Speex 的 quality 有 0-10 可选,但在实际应用中你会发现,就算选到10 最高音质了发布出来的音频还是很刺耳,听着不像 NellyMoser 编码的那样舒适,尤其是歌唱到高音时根本无法入耳.
    其实还需要设置一个关键参数 noiseSuppressionLevel
    文档:

    Set to 0 to disable noise suppression. Noise suppression is enabled by default with maximum attenuation of -30 dB.

    原来是噪声抑制,可见默认上来直接就 cut 掉 30dB 的音频数据,把它设成 0 后就正常了...

    import flash.media.SoundCodec;
    -------------------------------------------------------------------
    var mic:Microphone = Microphone.getMicrophone();
    mic.codec = SoundCodec.SPEEX;
    mic.encodeQuality = 8;
    mic.noiseSuppressionLevel = 0;
    mic.setLoopBack(false);

    当然,Speex也有缺点,总觉得设为质量10了还是经常会有沙沙的噪音,1中的结论基于测试,尤其是在Camera编码设置成H264后浮动更大...
    另外,FP11里又加入了 pcma 和 pcmu 两种音频编码类型,未测试效果,看样子是固定码率的.
    FP11的Beta也已经出了,FP发布的时候可以直接选H264的视频codec,发布H264的流再也不用FMLE了,一个时代要来了...

    音频还是优先speex编码,很节约带宽

  • 相关阅读:
    学习日志---4.5.6
    学习日志---3
    学习日志---2
    学习日志---1
    阅读《大型网站技术架构:核心原理与案例分析》第五、六、七章
    淘宝网的质量属性的六个常见属性场景
    虚继承 private virtual class
    C++ 类中什么时候需要一个operator<
    C++ 中关于 输出的重定向
    C++ 元编程 学习二
  • 原文地址:https://www.cnblogs.com/coolsundy/p/4893586.html
Copyright © 2020-2023  润新知