zoukankan      html  css  js  c++  java
  • 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编码,很节约带宽

  • 相关阅读:
    [译] 第二十天:Stanford CoreNLP
    [译] 第十九天: Ember
    [译] 第十八天:BoilerPipe
    [译] 第十七天:JBoss Forge
    [译] 第十六天: Goose Extractor
    [译] 第十五天:Meteor
    [译] 第十四天:Standford NER
    [译] 第十三天:Dropwizard
    [译] 第十二天: OpenCV
    hadoop-MR
  • 原文地址:https://www.cnblogs.com/coolsundy/p/4893586.html
Copyright © 2011-2022 走看看