最近有一个需求,想把一堆mp4文件合并成一个大的文件,macOS下找了几个工具都不是很理想。后来我想起Linux下强大的视频工具FFmpeg,谷歌了几下,问题轻松解决了。

首先安装ffmpeg。

brew install ffmpeg

然后进入那堆mp4文件的目录。执行:

for f in ./*.mp4; do echo “file ‘$f'” >> mylist.txt; done

这样就生成了一个所有mp4文件的列表mylist.txt,可以在这个文件里手动调整一下视频的顺序,或者删除一些不需要的视频。

最后就轮到ffmpeg登场了:

ffmpeg -f concat -i mylist.txt -c copy myvideo.mp4

其中myvideo.mp4就是合并后的文件。如果出现类似提示:

[concat @ 0x7f97d9009000] Unsafe file name ‘./00M00S.mp4’
mylist.txt: Operation not permitted

可以在 concat 后面加上 -safe 0 参数,这样命令变成:

ffmpeg -f concat -safe 0  -i mylist.txt -c copy myvideo.mp4

合并瞬间完成,很简单吧。have fun !

 

- EOF -