简单命令:
ffmpeg -i input.mp4 -ss 1:05 -t 10 -c:v copy -c:a copy output.mp4 |
-ss 1:05 指定从输入视频第 1:05 秒开始截取,-t 10 指明最多截取 10 秒。
-ss 参数允许的格式为 HH:MM:SS.MILLISECONDS
但是上面的命令可能会比较慢,更好的命令如下:
ffmpeg -ss 1:05 -t 10 -i input.mp4 -c:v copy -c:a copy output.mp4 |
把 -ss 1:05 和 -t 10 放到 -i 前面,与原来的区别是,这样会先跳转到第 1:05 秒在开始解码输入视频,而原来的会从开始解码,只是丢弃掉前 1:05 秒的结果。
按时间截取:
ffmpeg -i input.mp4 -vcodec copy -acodec copy -ss 00:00:00 -to 00:00:05 output.mp4 |
或者:
ffmpeg -ss 00:00:00 -to 00:00:05 -i input.mp4 -vcodec copy -acodec copy output.mp4 |
看了下 FFmpeg 的文档,如果你需要精确截取视频,避免关键帧的丢失并精确截取时间,这个时候最好是重新编码视频。就变成这样了:
ffmpeg -ss 00:00:00 -to 00:00:05 -i input.mp4 -c:v libx264 -c:a aac -crf 21 output.mp4 |
Fin.
扫描二维码,分享此文章