第一个命令从视频文件中提取缩略图的速度比第二个命令快得多(因为我把 -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 进行搜索。