FMS直播流发布时 Microphone Speex 编码设置注意事项
2015-10-20 06:49
344 查看
1.为何要用 Speex?
FP的默认音频编码是 NellyMoser,而FP10之后加入了 Speex.
实际应用中,用默认的 NellyMoser 编码音频,会有个很大的问题,就是无法控制流码率浮动.当设置 rate 为44时,音频带宽浮动会有100多 kbps.而音频 codec 设置成 Speex 后因为是可以直接控制quality的,几乎没有浮动,这样就更利于 FMS 发布带宽控制.
2.设置 Speex 注意事项
由于 Speex 的 quality 有 0-10 可选,但在实际应用中你会发现,就算选到10 最高音质了发布出来的音频还是很刺耳,听着不像 NellyMoser 编码的那样舒适,尤其是歌唱到高音时根本无法入耳.
其实还需要设置一个关键参数 noiseSuppressionLevel
文档:
原来是噪声抑制,可见默认上来直接就 cut 掉 30dB 的音频数据,把它设成 0 后就正常了...
当然,Speex也有缺点,总觉得设为质量10了还是经常会有沙沙的噪音,1中的结论基于测试,尤其是在Camera编码设置成H264后浮动更大...
另外,FP11里又加入了 pcma 和 pcmu 两种音频编码类型,未测试效果,看样子是固定码率的.
FP11的Beta也已经出了,FP发布的时候可以直接选H264的视频codec,发布H264的流再也不用FMLE了,一个时代要来了...
音频还是优先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编码,很节约带宽
相关文章推荐
- Hadoop学习笔记(一)
- apache 服务无法启动 wampserver安装问题
- Linux grep命令和正规表示法
- Linux内核的framebuffer相关的内核代码注释
- opencv3用椭圆拟合二维点集在图像中的应用-滚动条
- opencv3用椭圆拟合二维点集-fitEllipse函数
- opencv3寻找最小包围圆形在图像中的应用-滚动条
- 01_基于应用拆分的技术架构
- 01_基于应用拆分的技术架构
- opencv3寻找最小包围圆形-minEnclosingCircle函数
- opencv3寻找最小包围矩形在图像中的应用-滚动条
- opencv3寻找最小包围矩形-minAreaRect函数
- 【Linux命令】文件和目录操作命令
- opencv3实现分水岭算法-watershed函数
- opencv3矩的计算-在图像中的应用-滚动条
- opencv3矩的计算-在图像中的应用
- Linux之split命令详解
- 表单提交错误后返回内容消失问题的解决方法(PHP网站)
- CXF+Spring+Tomcat简明示例
- AOP的半自动代理 及 缺点