文件拼接
ffmpeg -i "concat:test1.avi|test2.avi" -c copy out12.avi
这个命令将 test1.avi 和 test2.avi 合并成一个文件 out12.avi,由于 test1 和 test2 文件编码相同,所以指定的编码是 copy 方式,不进行重新编码,可以大大提高拼接的速度。
如果文件太多,可以建立一个list文件来解决,例如创建一个临时的 input.lst,内容如下:
file '/home/jenia/input1.mp4'
file '/home/jenia/input2.mp4'
file '/home/jenia/input3.mp4'
然后开始合并
ffmpeg -f concat -i input.lst -codec copy output.mp4
截取一段视频
ffmpeg -i "Morning\_News.asf" -ss 00:46:28 -codec copy -t 00:03:25 output.asf
这行命令解释为:从文件 Morning_News.asf 第 46:28 分秒开始,截取 03: 25 的时间,其中视频和音频解码不变,输出文件名为 output.asf 。
结合find进行批量转换
find . -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -c copy "${0/mp4/avi}"' {} \;