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 <百分比> 设定音量

 


  • 2021-01-05 15:41:42

    nodejs修改时区

    ​let date = new Date(); date.setHours(date.getHours() + 8);

  • 2021-01-06 23:09:38

    mp3解码器转PCM合并

    首先,为了混合两个音频文件,您需要操纵它们的原始表示;由于MP3文件被压缩,您无法直接访问信号的原始表示.您需要对压缩的MP3流进行解码,以便“理解”您的音频信号的波形,然后可以混合使用.

  • 2021-01-08 16:47:37

    nodejs如何使用fetch

    node 中没有实现 fetch,你可以使用 node-fetch,使得在 node 中也可以使用 fetch.

  • 2021-01-08 16:49:59

    CommonJs 与 ESModule区别

    node中模块导入require是一个内置的函数,因此只有在运行后我们才可以得知模块导出内容,无法做静态分析