4

我有一些第三方软件创建的 MP4 视频。我不知道关键帧是否定期。我已经成功地使用 FFMPEG 提取了对应于第 3 分钟(180 秒 * 帧/秒)的视频帧。

我想要做的是将“最接近”的关键帧提取到第三分钟——因为通常情况下,我用当前成功的代码提取的帧不是关键帧,因此是模糊的。

我知道有一种方法可以提取FFMPEG 中的所有关键帧,但是有没有一种方法可以提取最接近视频中特定时间的关键帧?

4

1 回答 1

0

您可以使用选择过滤器来选择“I”帧(也称为关键帧)。

 ffmpeg -ss 3:00 -i "my_video.mkv" -map 0:v:0 -filter:v "select=eq(pict_type\,I)" -vframes 1  3_min.jpg

在上面的示例中,我们使用 FFmpeg 来:

  • 转到下一个输入的三分钟标记-ss 3:00
  • 定义输入-i "my_video.mkv"
  • 从第一个输入中选择:视频轨道:特别是第一个-map 0:v:0
  • 在视频上使用魔术选择过滤器-filter:v "select=eq(pict_type\,I)"
  • 只从电影中抓取一个帧-vframes 1
  • 定义保存图像的位置和格式(可以更改为.bmp.png等...)3_min.jpg
于 2021-02-03T18:37:43.167 回答