如何用ffmpeg快速批量合并50+格式统一的视频文件?
批量生成FFmpeg合并列表并合并视频
针对你已经导出文件名到filenames.txt的情况,以下几种方法可以快速将内容转换成FFmpeg需要的file 'filename.mp4'格式:
方法1:用sed修改已有文件
直接对filenames.txt进行批量替换:
sed -i 's/^/file '\''/; s/$/'\''/' filenames.txt
执行后,filenames.txt里的每一行都会变成file 'xxx.mp4'的格式,你可以直接将它重命名为mergelist.txt使用。
方法2:一步生成符合格式的合并列表(更高效)
跳过生成filenames.txt的步骤,直接输出符合要求的合并列表:
ls -v *.mp4 | sed 's/^/file '\''/; s/$/'\''/' > mergelist.txt
其中-v参数是让ls按数字顺序排序文件名,确保视频按时间先后合并(你的文件名带时间戳,这个参数能保证顺序正确)。
方法3:用awk命令格式化
如果更习惯awk,也可以用以下命令:
awk '{print "file '\''" $0 "'\''"}' filenames.txt > mergelist.txt
最后执行FFmpeg合并
生成mergelist.txt后,运行以下命令完成合并(直接复制视频流,无重新编码,速度快):
ffmpeg -f concat -safe 0 -i mergelist.txt -c copy output.mp4
内容的提问来源于stack exchange,提问作者Athekul
相关产品推荐
相关产品推荐

