ffmpeg操作mp3合并、截取、混合、格式转换

2020-12-24 10:40:01

参考地址 ffmpeg 多个音频合并 截取 拆分

1 多个mp3文件合并成一个mp3文件

一种方法是连接到一起

ffmpeg64.exe -i "concat:123.mp3|124.mp3" -acodec copy output.mp3


(我用的这个方法并美誉合并成功,不知道为啥,我是这么解决的)

/usr/local/ffmpeg/bin/ffmpeg -i 1.mp3 -i 2.mp3 -filter_complex '[0:0] [1:0] concat=n=2:v=0:a=1 [a]' -map [a] new.mp3

其中 concat=n=2 中的 2是指输入的mp3数量。

解释:-i代表输入参数

          contact:123.mp3|124.mp3代表着需要连接到一起的音频文件

           -acodec copy output.mp3 重新编码并复制到新文件中

另一种方法是混合到一起

ffmpeg64.exe -i 124.mp3 -i 123.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 -f mp3 remix.mp3

解释:-i代表输入参数

           -filter_complex ffmpeg滤镜功能,非常强大,详细请查看文档

           amix是混合多个音频到单个音频输出

           inputs=2代表是2个音频文件,如果更多则代表对应数字

           duration 确定最终输出文件的长度

               longest(最长)|shortest(最短)|first(第一个文件)

            dropout_transition

The transition time, in seconds, for volume renormalization when an input stream ends. The default value is 2 seconds.

            -f mp3  输出文件格式

 

2 音频文件截取指定时间部分

 

毫秒级别的截取 00:00:00.11

如果音频非常小,可能会失败,可以先拼接一个长的,再截取的小一点


ffmpeg64.exe -i 124.mp3 -vn -acodec copy -ss 00:00:00 -t 00:01:32 output.mp3

解释:-i代表输入参数

          -acodec copy output.mp3 重新编码并复制到新文件中

           -ss 开始截取的时间点

           -t 截取音频时间长度

           

3 音频文件格式转换

 

ffmpeg64.exe -i null.ape -ar 44100 -ac 2 -ab 16k -vol 50 -f mp3 null.mp3

解释:-i代表输入参数

           -acodec aac(音频编码用AAC) 

          -ar 设置音频采样频率

          -ac  设置音频通道数

          -ab 设定声音比特率

           -vol <百分比> 设定音量

 


  • 2017-04-02 00:44:46

    NGINX + PHP-FPM 502 相关事

    NGINX + PHP-FPM 报 502 错误,我想大部分 SA 都遇到过吧。 根据报错的频率,可以分为两种情况,间歇性的502和连续性的502。 这里只讨论第一种情况——间歇性的502。

  • 2017-04-02 00:52:26

    php-fpm占用系统资源分析

    由上图分析,可以看出共有602个进程,其中有601个进程休眠了。这好像有点不对劲,内核进程也就80个左右,加上memcached, nginx, mysqld,也不会超出90个。除了这些,剩下的只有php-fpm管理的php-cgi,难道是…?

  • 2017-04-02 00:56:36

    php-fpm占用系统资源分析

    由上图分析,可以看出共有602个进程,其中有601个进程休眠了。这好像有点不对劲,内核进程也就80个左右,加上memcached, nginx, mysqld,也不会超出90个。除了这些,剩下的只有php-fpm管理的php-cgi,难道是…?

  • 2017-04-03 14:23:17

    Android Studio --“Cannot resolve symbol” 解决办法

    Android Studio 无法识别同一个 package 里的其他类,将其显示为红色,但是 compile 没有问题。鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 Android Studio,重新 sync gradle,Clean build 都没有用。

  • 2017-04-06 14:59:13

    PHP配置文件详解

    PHP是一个简单易学,功能强大的语言,尤其在Web开发,开发效率高,方便快捷。研究一下php.ini了解PHP相关配置会有好处的,对PHP有更加深入的了解。

  • 2017-04-06 15:00:46

    怎么实时查看mysql当前连接数

    今天有一台mysql服务器突然连接数暴增,并且等待进程全部被锁...因为问题解决不当,导致被骂...OTL 总结:以后要快速定位错误,布置解决方案

  • 2017-04-06 15:07:57

    PHP-FPM不完全指南

    fpm启动后会先读php.ini,然后再读相应的conf配置文件,conf配置可以覆盖php.ini的配置。 启动fpm之后,会创建一个master进程,监听9000端口(可配置),master进程又会根据fpm.conf/www.conf去创建若干子进程,子进程用于处理实际的业务。

  • 2017-04-06 15:11:03

    浅析php-fpm 和 mysql 之间的关系详解

    php-fpm 和 mysql 之间的关系估计不做底层开发应用的是不会去考虑分析它们了,如果是的话我们来看一篇关于php-fpm 和 mysql 之间的关系的教程。