【问题标题】:ffmpeg: same video, same framerate, different number of output frames. Why?ffmpeg:相同的视频,相同的帧率,不同的输出帧数。为什么?
【发布时间】:2014-10-10 05:12:56
【问题描述】:

我需要从 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 输出相同数量的(同步)帧?

【问题讨论】:

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

标签: video ffmpeg


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    这同样适用于输入分辨率。

    【讨论】:

      猜你喜欢
      • 2017-10-28
      • 2014-11-08
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多