【发布时间】:2018-07-03 06:35:17
【问题描述】:
我可以使用 ffmpeg 提取关键帧。我一直在使用这样的东西:
ffmpeg -i input.mp4 -vf "select='eq(pict_type\,I)" -vsync vfr -qscale:v 2 I-thumbnails-%02d.png -vf "select='eq(pict_type\,B)" -vsync vfr -qscale:v 2 B-thumbnails-%02d.png -vf "select='eq(pict_type\,P)" -vsync vfr -qscale:v 2 P-thumbnails-%02d.png
现在的问题是,我希望这些提取的帧按编码顺序排列,如果可能的话,提取它们的方式应该有一个时间戳或任何知道它们以特定顺序开始的方式,例如,从开始到结束:
IBBBIPPB......BI
但我可以对编码序列中的帧进行排序。
我想用它在 python 中加载以提取运动矢量,但它们都应该遵循编码序列。有什么帮助吗?
编辑: 将播放更改为编码序列(或顺序)。
【问题讨论】:
-
我想到的一种方法是在上面的代码之外运行,还运行:“ffprobe input.mp4 -show_frames | grep -E 'pict_type|coded_picture_number' > output.txt” 但我会必须在 python 中单独编程以使用文本信息与返回的 I、P、B 帧进行匹配。有没有其他方法可以仅使用 ffmpeg 更轻松地做到这一点?
标签: python ffmpeg keyframe ffprobe