为什么将 -ss 放在 -i 之前可以更快地从视频文件中捕获缩略图?

为什么将 -ss 放在 -i 之前可以更快地从视频文件中捕获缩略图?

第一个命令从视频文件中提取缩略图的速度比第二个命令快得多(因为我把 -ss 放在 -i 之前):

ffmpeg -ss 10 -i input.mp4 -vframes 1 -s 320x240 output.jpg

ffmpeg -i input.mp4 -vframes 1 -s 320x240 -ss 10 output.jpg

这是为什么?这是故意为之还是编程错误?

答案1

它更快,因为当你放在-ss之前时-i,ffmpeg 会快进直到指定的时间(或者准确地说,快进到该时间戳之后的第一个关键帧)。

如果您将其放在-ss之后-i,输入的音频和视频将被解码为“原始”逐帧表示。一旦到达 指定的时间戳-ss,ffmpeg 将真正开始输出视频。

请注意,如果您不复制流并使用 ffmpeg 2.1 或更高版本,那么-ss之前的-i时间也将准确。以前它不准确(即,并不总是达到您指定的准确时间)。

也可以看看使用 FFmpeg 进行搜索

相关内容