关于libmp3lame库的使用小记
来源:互联网 发布:java编程是不是简单点 编辑:程序博客网 时间:2024/05/16 06:27
最近由于工作项目需要,需要支持独立音频录制,格式为mp3或wav,首先想到的的方案当然是使用ffmpeg库啦,然后,本人查看了一下ffmpeg相关帮助文档,发现ffmpeg中只有MP3解码功能,但并不支持mp3编码,这个和h264编码类似,其实ffmpeg中携带了大部分解码功能,但是编码功能比较有限,可能跟大部分编码标准有关吧!因为很多的压缩标准中,往往只规定怎么解码,而编码具体内容怎么自由发挥,只要可以满足解码规则即可。
上面都是题外话,现在开始进入正题,话说本人将ffmpeg和mp3lime交叉编译后,通过ffmpeg接口对PCM数据进行了编码,发现还是挺顺利,因为之前一直有做mp4封装,接口调用类似,这里要感叹一下,开源长存!!!感谢那些无私ffmpeg做维护贡献的人,他们是最可爱的人,ffmpeg接口做的非常好,通用新很强,不过本人使用的还很有限,有机会得继续研究一下。接着上面说的,很快将mp3文件生成了,开心了一整,“不小心”输入top指令,发现音频录制进程的CPU占用率不是一般的高,达到45%,我了个去,虽然板子的音频参数是:48KHz,16bit,单通道,但也不至于吧!AAC编码同样的PCM数据,一点都不费CPU,看来的想个办法优化一下
优化思路
- 查看mp3lame API文档,调整mp3的配置参数=======无效
- 调整ffmpeg参数,通常ffmpeg帮助文档,同样是CPU使用率偏高======无效
- 较低PCM数据的采样率,神奇了,发现CPU使用率一下子降到10%一下=====有效
- 其他优化策略暂时未想到,有想法的朋友,可以分享一下!
看来目前的策略是先将PCM数据重采样了,果断调用ffmpeg重采样接口,将PCM数据重48KHz编程11.025KHz!
此次问题先告一段落,后面有时间再深究!下回聊一下海思SDK中uboot与那个excel表的关系!
阅读全文
0 0
- 关于libmp3lame库的使用小记
- 使用libmp3lame库编码mp3
- 使用libmp3lame库编码mp3
- Android变录音边转换为mp3格式的声音---libmp3lame库的使用
- 关于UIWindow,使用小记
- 关于Recyclerview使用小记
- 关于aerith的小记
- CentOS7源码安装MP3编码库libmp3lame
- netstat的使用小记
- QTabWidget 的使用小记
- mvn的使用小记
- QTabWidget 的使用小记
- DataGridView的使用小记
- kelude的使用小记
- UFLO的使用小记
- 关于Linux的学习小记
- 关于交通堵塞的讨论小记
- 关于创建用户的小记
- Java DecimalFormat 用法
- ServletContext对象的部分用法(一)
- 面向对象的个人总结
- 学springMVC中,明明能跑的服务器,突然一直报404了
- pycharm的快捷键
- 关于libmp3lame库的使用小记
- Android 页面Activity切换动画的实现方式
- 第三方键盘跳转宿主app
- 使用JAVA代码通过SSH访问远程windows,获取磁盘信息
- poj 2104 主席树 板子
- Android Sync Project报错问题定位
- 关于浮动问题
- 对流式DMA和一致性DMA的认识
- Ultra-QuickSort POJ