【问题标题】:is there a way to control the extraction of key frame using ffmpeg有没有办法使用ffmpeg控制关键帧的提取
【发布时间】:2016-04-18 12:11:36
【问题描述】:

情况是我得到 8 帧,默认阈值用于场景切换检测。因为我得到的关键帧不够具有代表性。所以我想调低阈值以获得更多关键帧。但我使用 -g和我的命令中的 -sc_threshold 参数(参考:How to control key-frame generation of ffmpeg?),它不能很好地工作。我仍然得到相同的 8 帧没有任何变化。有什么想法吗?

【问题讨论】:

  • PICT_TYPE_I 应该只输出关键帧(I 帧)。如果您在视频上运行 ffprobe -show_frames,它会列出您没有获得缩略图的任何帧吗?
  • 我的最后一条评论应该是“它是否列出了您没有获得缩略图的任何 I 帧?”
  • 不,情况是我得到 8 帧,默认阈值用于场景切换检测。因为我得到的关键帧不够代表性。所以我想调低阈值以获得更多关键帧。但是我在命令中使用了 -g 和 -sc_threshold 参数(参考:stackoverflow.com/questions/14117757/…),它不能很好地工作。我仍然得到相同的 8 帧,没有任何改变。有什么想法吗?
  • 这里好像有误会。在编码的视频流中,存储的帧要么是关键帧,要么不是。您不能将其他帧指定为关键帧。 Q 原始版本中的命令将提取所有 I 帧。这些可能与您对哪些帧应该是关键帧的直觉不符,因为编码器可能已经做出了其他决定。

标签: linux ffmpeg


【解决方案1】:

您可以输出一个 iframe 列表并将其与一些脚本一起使用。

$ ffprobe -show_packets -print_format compact input.mkv 2>/dev/null | egrep -n flags=K | cut -d: -f 1 > iframes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 2012-12-16
    • 2021-02-23
    • 2012-08-06
    • 1970-01-01
    相关资源
    最近更新 更多