我需要以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输出相同数量的(同步)帧?
答案 0 :(得分:1)
在-i命令指定输入视频速率之前指定-r。 在-i命令之后指定-r指定输出视频速率。
答案 1 :(得分:0)
在输入之前指定-r告诉/强制ffmpeg选择指定的帧速率。如果在输入序列之后指定-r,则ffmpeg必须猜测可能导致帧丢失的输入帧速率,这可以在第二种情况下看到。
同样适用于输入分辨率。