ffmpeg拼接(合并)目录中的全部文件

2020-06-06  本文已影响0人  xun66

问题描述

需要合并文件夹中固定前缀+自然数排列的数个音频文件,同时按需进行转码。

系统环境:MacOS/Linux

实现方法

Shell中按自然数排序获取一行一个文件的文件列表,并在每行前面加file空格,匹配ffmpeg拼接清单格式,保存为文本文件

ls -1v|sort -V|sed 's/^/file\ /' > manifest.txt

利用ffmpeg进行拼接

ffmpeg -f concat -i manifest.txt output.wav

注意:源文件是什么格式,output后缀就是什么格式

一句话命令

合并以上步骤,组成完整的一句话命令(请根据实际情况修改命令!)

源音频为为wav,输出wav格式(不转码)

rm all.wav; ls -1v *.wav|sort -V|sed 's/^/file\ /' > manifest.txt && ffmpeg -f concat -i manifest.txt all.wav && rm manifest.txt

不论源音频为何,输出m4a(aac编码)格式

rm all.wav; ls -1v *.wav|sort -V|sed 's/^/file\ /' > manifest.txt&& ffmpeg -f concat -i manifest.txt -acodec aac all.m4a && rm manifest.txt

不转码也可以显式指定 -acodec copy 参数

参考资料

ffmpeg拼接文档 https://ffmpeg.org/ffmpeg-formats.html#concat-1

用户贡献拼接经验 https://www.jianshu.com/p/e51f5c549720

关键词

ffmpeg 拼接 合并 清单文件 转码 Linux

上一篇 下一篇

猜你喜欢

热点阅读