ffmpeg:相同视频,相同帧率,不同数量的输出帧。为什么?

时间:2014-10-07 11:34:24

标签: video ffmpeg

我需要以30fps两次从视频中提取帧:(i)720p png帧,以及(ii)270p tiff帧。

我分别使用以下命令实现此目的:

ffmpeg -r 30 -i myvideo.mp4 -s 1280x720 frames/myvideo_%06d.png

ffmpeg -y -i myvideo.mp4 -an -r 30 -pix_fmt rgb24 -vcodec tiff -s 480x270 frames/myvideo_%06d.tif

然而,这导致第一个命令输出35,776帧,第二个命令输出35,812帧,尽管视频相同且请求的帧速率为30fps。

造成这种情况的原因是什么?如何确保ffmpeg输出相同数量的(同步)帧?

2 个答案:

答案 0 :(得分:1)

在-i命令指定输入视频速率之前指定-r。 在-i命令之后指定-r指定输出视频速率。

答案 1 :(得分:0)

在输入之前指定-r告诉/强制ffmpeg选择指定的帧速率。如果在输入序列之后指定-r,则ffmpeg必须猜测可能导致帧丢失的输入帧速率,这可以在第二种情况下看到。

同样适用于输入分辨率。