FFMPEG输出MP3
日常生活中听音乐时大多数为MP3音乐,使用FFMpeg可以解码MP3,同样FFMpeg也支持MP3编码,FFMpeg使用第三方libmp3lame即可编码MP3格式。不但如此,MP3编码还是低延迟的编码,可以支持的采样率比较多,包含44100,48000.32000,22050,24000,16000,11025,12000,8000多种采样率,采样格式也比较多,包s32p(signed32bits,planar),fltp(float,planar),s16p(signed16bits,planar)多种格式,声道布局方式支持包含mono(单声道模式),stereo(环绕立体声模式),下面就来详细介绍MP3编码参数。
MP3编码参数介绍
查看FFmpeg对于MP3的参数支持,可以通过以下命令得到MP3的参数:
ffmpeg -h encoder=libmp3lame
MP3编码参数
从图中可以看到,FFMpeg对mp3编码操作相关的参数主要包含了主要的控制参数,更高级的参数来控制,尚未全部从lame中移植到FFMpeg中,还有待开发完善。下面就来介绍FFMpeg中重点支持的这些参数的使用即基本原理。
MP3的编码质量设置
在FFMPEG中进行MP3编码采用的是第三方库libmp3lame,所以进行MP3编码时,需要设置参数acodec为libmp3lame,命令行如下:
ffmpeg -i input -acodec libmp3lame output.com
根据上面的命令行可以得到音频编码为MP3封装文件。
MP3编码的码率得到控制之后,控制质量时需要通过-qscale:a进行控制,也可以使用表中的q参数进行控制,质量不同码率也不同,详细可以参考下面表:
MP3基本信息与q参数的对应参数
表中可以作为参考,如果遇到将低码率转换为高码率的情况,则并不一定会很符合上述参数,但在大多数情况下是符合的,下面举例说明:
ffmpeg -i input.mp3 -acodec libmp3lame -q:a 8 output.mp3
执行完上面这条命令之后,将生成的output.mp3的码率区间设置在70kbit/s至105kbit/s之间,下面将转码前的input.mp3与转码后的output.mp3做一个比价:
从以上代码可以看到,转码前的input.mp3的码率为128kbit/s,转码后的output.mp3的码率为91kbit/s。在转码过程中,从FFmpeg的输出过程信息中可以看到编码时的码率在不断地发生变动:
size= 3194kB time=00:04:45.98 bitrate= 91.5kbits/s speed=56.x
以上码率设置方式为VBR码率,常见的MP3编码设置为CBR,通过FFmpeg参数-b即可设置,在FFMpeg编码过程中,码率几乎不会波动:
ffmpeg -i input.mp3 -acodec libmp3lame -b:a 64k output.mp3
执行完上述命令之后,结果将会生成编码为MP3的音频。
对比转码前与转码后的两个MP3文件;
两个文件均为CBR编码方式编码的MP3,并且可以看到编码过程中码率几乎没有波动:
size= 2235kB time=00:04:45.98 bitrate= 64.0kbits/s speed=43.5x
平均码率参数ABR
ABR是VBR与CBR的混合产物,表示平均码率编码,使用ABR参数之后,编码速度将会比VBR高,但是质量会比VBR的编码稍逊一些,比CBR编码好一些,在FFmpeg中,可以使用参数-abr来控制MP3编码方式:
ffmpeg -i input.mp3 -acodec libmp3lame -b:a 64k -abr 1 oupiput.mp3
执行上面这条命令之后,编码之后的输出信息如下:
原本为64kbit/s码率的CBR编码方式的mp3音频,因为设置abr参数之后,成为ABR编码方式的MP3音频,可以观察编码过程中的输出内容:
size= 2270kb time=00:04:45.98 bitrate= 65.0kbit/s spedd= 42.8x
看似VBR,其实ABR。
FFMPEG输出MP3相关推荐
- ffmpeg mp4 mp3 wav flac webm aac ac3 ogg格式转换
转载自:ffmpeg mp4 mp3 wav flac webm aac ac3 ogg格式转换 - liuyihua1992 - 博客园 fmpeg是Linux中转换音频视频文件的常用工具. mp4 ...
- 使用FFmpeg转换mp3或wav文件为pcm格式文件
使用FFmpeg转换mp3或wav文件为pcm格式文件 由于项目开发中需要验证pcm格式音频的播放,可以使用FFmpeg进行转换 安装时这里推荐一个便捷方式,sudo apt install smpl ...
- 【Android FFMPEG 开发】Android 中使用 FFMPEG 对 MP3 文件进行混音操作
文章目录 一.前置操作 ( 移植 FFMPEG ) 二.FFMPEG 混音命令 三.Android FFMPEG 混音源代码完整示例 四.博客源码 一.前置操作 ( 移植 FFMPEG ) 参考 [A ...
- ffmpeg截取mp3指定时间的内容
常在听mp3或其他格式音乐的朋友,有时会有特别喜欢的片段,例如副歌的部份会想拿来做手机的铃声.这时候就需要一些处理音效的软体,例如之前提过的Audacity.其实还有更简便的方法,只要系统中有安装好的 ...
- FFMpeg输出AAC
在音频中,无论直播与点播,AAC都是目前最常用的一种音频编码格式,例如RTMP直播,HLS直播,RTSP直播,FLV直播,FLV点播,MP4点播等文件中都是常见的AAC音频. 与MP3相比,AAC是一 ...
- ffmpeg输出yuv的函数堆栈(h264)
ffmpeg解码264码流输出yuv时的堆栈信息(FFMPEG2.5): main() ffmpeg.c:3941 transcode() ffmpeg.c:3764 transcode_step( ...
- 使用ffmpeg对mp3格式的音频文件类型转换、截取及合并
FFmpeg简介: FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影.转换.流功能,包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat-- ...
- ffmpeg将mp3转m4a文件
为什么80%的码农都做不了架构师?>>> ffmpeg -i input.mp3 -c:a libfdk_aac -vbr 5 output.m4a 参考: FFmpeg co ...
- ffmpeg输出x264的CBR流或者文件
CBR(Constant Bit Rate)是以恒定比特率方式进行编码,有Motion发生时,由于码率恒定,只能通过增大QP来减少码字大小,图像质量变差,当场景静止时,图像质量又变好,因此图像质量不稳 ...
最新文章
- 【转载】Linux下安装、配置、启动Apache
- 根据HttpServletRequest request 获取当前用户ip地址和ip所属区域
- 神经网络十大学习率衰减提效策略
- MariaDB配置、集群
- wps完成率怎么设置_WPS表格中如何计算完成率?详细操作方法看这里!
- 存款利息python题_Python——GUI编程 利息计算器 作业9(python programming)
- .net中调用windows performance记录性能信息
- 我的CCNA笔记(二)
- 数据--第37课 - 线索化二叉树
- vue-cli3+element-ui+vuex+nodejs+mysql前端项目记录
- 一线实践 | 借助混沌工程工具 ChaosBlade 构建高可用的分布式系统
- 键盘按键损坏 注册表更改_如何彻底清洁键盘(不损坏任何东西)
- 基于多输入模型及句法结构的中文评论情感分析方法
- 《生命如一泓清水》俞敏洪
- Android studio 分渠道打包,引用不同的moudle
- 三维模型下构件关联类型系统展示
- Qt实现在QLabel上显示图片并进行线条/矩形框/多边形的绘制
- Python可视化库matplotlib.pyplot里contour与contourf的区别
- 你的工作单休,但是工资双休
- element表单校验