FFmpeg 按时间裁剪视频命令详解
使用 ffmpeg.exe 按时间裁剪视频,主要有两种方法:通过“起始时间+持续时间”,或通过“起始时间+结束时间”。
核心命令格式
方法一:按起始时间和持续时间 (-t)
ffmpeg -i input.mp4 -ss [起始时间] -t [持续时间] -c copy output.mp4
-ss [起始时间]:从哪里开始剪。-t [持续时间]:要剪多长。例如:从第1分钟开始,截取30秒。
ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -c copy output.mp4
方法二:按起始时间和结束时间 (-to)
ffmpeg -i input.mp4 -ss [起始时间] -to [结束时间] -c copy output.mp4
-to [结束时间]:到哪里停止。例如:截取从1分钟到2分30秒的片段。
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:30 -c copy output.mp4
注意: -t 和 -to 不要同时使用,如果同时使用,-to 可能会被忽略。
时间格式
时间可以用两种方式表示:
秒数:直接写数字,如
-ss 60表示从第60秒开始。时:分:秒:格式为
HH:MM:SS,如-ss 00:01:00。
关键参数 -c copy 的取舍
命令中的 -c copy 参数很关键,它决定了裁剪的速度和精度。
| 特点 | -c copy (快速模式) | 不带 -c copy (重新编码模式) |
|---|---|---|
| 速度 | 极快,几乎瞬间完成 | 较慢,需要重新编码 |
| 质量 | 无损,与原视频一致 | 有轻微质量损失 |
| 精度 | 不精确,开始时间可能会“吸附”到前一个关键帧 | 精确,可以精确到你指定的那一帧 |
快速定位技巧: 如果想兼顾速度和精度,可以结合两种用法:先用 -ss 快速跳到目标时间附近(放在 -i 前),再用 -ss 精确定位到准确时间点(放在 -i 后)。
ffmpeg -ss 00:00:58 -i input.mp4 -ss 2 -t 30 -c:v libx264 -c:a aac output.mp4
其他常见裁剪场景
仅保留前N秒:省略
-ss,直接使用-t。ffmpeg -i input.mp4 -t 60 -c copy output.mp4
删除开头N秒:只使用
-ss。ffmpeg -i input.mp4 -ss 10 -c copy output.mp4
删除末尾N秒:需要先知道视频总时长。
# 如果视频总长5分钟,想删除最后30秒 ffmpeg -i input.mp4 -t 00:04:30 -c copy output.mp4
裁剪视频末尾30秒:使用
-sseof参数。ffmpeg -sseof -30 -i input.mp4 -c copy output.mp4
💎 总结与建议
追求速度、对起点精度要求不高:优先使用
-c copy,命令简单且无损。要求精确裁剪到某一帧:去掉
-c copy,让 FFmpeg 重新编码。注意参数位置:通常将
-ss放在-i之前可以实现快速跳转,但为了精确,可以将其放在-i之后。
以上内容覆盖了 FFmpeg 按时间裁剪视频的常见用法,您可以根据实际需求选择最适合的方式。
转载请注明出处。