
ffmpeg 视频截取
寻找使用-ss参数
假设要提取视频的一部分——比如从第 10 秒到第 20 秒。需要做的第一件事是告诉 FFmpeg 搜索到第 10 秒。这是使用 FFmpeg 命令行中的 -ss 参数实现的,语法为
ffmpeg -ss <time> -i <inputvideo> ...
时间被指定为 HH:MM:SS.MILLISECONDS 。例如:可以告诉 FFmpeg 寻找 01:02:03 ——即电影 1 小时的第 2 分钟的第 3 秒
指定结束时间
使用 -ss ,指定了开始时间。如果将这两者放在一起,可以使用 FFmpeg 有效地剪切/拼接视频。
- -t 范围 可以使用参数指定所需剪辑的持续时间 -t 。例如, -ss 40 -t 10 指示 FFmpeg 从第 40 秒开始提取 10 秒的视频。
- -to 范围 您可以使用参数指定结束时间 -to 。例如, -ss 40 -to 70 指示 FFmpeg 从第 40 秒到第 70 秒提取 30 秒的视频。
如果你同时使用 -t 和 -to ,那么只有 -t 将被使用。
以重新编码进行剪切
在剪切/修剪时重新编码您的视频,那么将获得一个精确到帧的剪切,因为 FFmpeg 将重新编码视频并从 I 帧开始。这是使用输出搜索的命令行。在此示例中,将指示 FFmpeg 读取名为 xxxx.mp4 并提取 5 秒的视频,从第 3 秒开始到第 8 秒结束 - 同时使用 libx264 .
ffmpeg -i xxxx.mp4 -ss 00:03 -t 00:08 -c:v libx264 -crf 30 tri_encode.mp4
还可以使用此命令行以特定比特率或质量重新编码,使用 crf 更改分辨率等 , 此选项将花费大量时间和资源,因为您正在执行重新编码 .
以复制方式截取
无需重新编码,即可快速剪切;----很快
ffmpeg -ss 00:00:00 -i xxxx.mp4 -t 00:10:00 -vcodec copy -acodec copy 20230307.mp4 -y
ffmpeg -ss 00:00:00 -i xxxx.mp4 -to 00:10:00 -vcodec copy -acodec copy 20230307.mp4 -y
- 参数说明
- -ss :从0秒开始,从 xxxx.mp4 视频中截取视频
- -to :截取视频的结束时间
- -y :重复文件确认覆盖
将搜索参数 -ss 放在 -i 参数前,非常快。因为 FFMPEG 从I帧跳到I帧以到达搜索点