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

Video ffmpeg:相同的视频,相同的帧率,不同的输出帧数。为什么?,video,ffmpeg,Video,Ffmpeg,我需要以每秒30帧的速度从视频中提取两次帧:(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 然而,这导致第一命令输出35776帧

我需要以每秒30帧的速度从视频中提取两次帧:(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
然而,这导致第一命令输出35776帧,第二命令输出35812帧,尽管视频相同且请求的帧速率为30fps


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

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

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


这同样适用于输入分辨率

看起来-r是位置相关的。将-r移到命令的前面(即“ffmpeg-r30-y-i myvideo.mp4-an-pix_fmt rgb24-vcodec tiff-s 480x270 frames/myvideo_uu%06d.tif”)似乎可以解决此问题。如果对ffmpeg有更深入了解的人能够对此发表评论,以确定这是否是正确的思维方式/解决方案,我会很感兴趣。