常用 FFmpeg 命令
1. 剪裁文件
1 | ### 截取前一部分的视频 |
时间格式:HH:MM:SS.XXX
。
这里面使用 -c copy
的选项,避免重新进行编码,可以很快地进行剪裁。
这里 -ss
、-to
、-t
的选项放在 -i
选项之前,时间不是很精确,可能有几秒的误差,但是可以避免黑屏的问题。在对时间精确度要求不高的情况下这是最好的方案。
如果放在 -i
选项之后,会对输入文件进行逐帧解码,时间会比较准确,但可能出现黑屏问题,速度也比较慢。
一种更加精确的剪裁方法是:
1 | ffmpeg -ss [start] -t [duration] -accurate_seek -i [input.mp4] -avoid_negative_ts 1 -c copy [output.mp4] |
注意 -accurate_seek
选项要在 -i
选项之前。
如果需要非常精确的剪裁的话,需要重新进行编码,并使用 -strict experimental
或者 -strict 2
的选项。
2. 合并文件
先把要合并的文件写在一个文本文件 list.txt
里:
1 | file './split1.mp4' |
然后再进行合并:
1 | ffmpeg -f concat -i [list.txt] -c copy [output.mp4] |
如果遇到 Unsafe file name
的错误(例如文件名中有空格),可以在 -f
和 -i
之间加上 -safe 0
的选项。
3. 改变格式
1 | ### 重新编码 |
4. 提取音频
1 | ffmpeg -i [intput].mp4 -c:a copy [output.aac] |
5. 合并视频和音频
1 | ffmpeg -i [input.mp4] -i [input.aac] -c copy [output.mp4] |