从 H.264 比特流中提取运动矢量

信息处理 视频压缩 运动检测
2022-01-27 02:28:20

我正在寻找一个开源工具/代码或一些指导来提取 H.264 编码位序列的运动矢量 (MV)。我已经知道可以使用带有以下命令的 ffmpeg 可视化运动矢量:

ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb

但是,我想生成一个日志文件,其中 P 和 B 帧的 MV 逐帧列出。我从libavutil/motion_vector.h检查了 MV 的结构,但我找不到一个示例来说明 ffplay 如何提取并覆盖原始序列。我想如果我能找到它,我可能会重新安排代码以将 MV 提取到文本文件中。

我将不胜感激任何示例代码或提示。

2个回答

我认为下面的代码可以帮助你:
https
://github.com/vadimkantorov/mpegflow 主要思想是你需要先解码帧并通过调用av_frame_get_side_data函数查询运动帧。

试试https://github.com/jishnujayakumar/MV-Tractus该工具将为您提供每一帧的 JSON 格式的运动矢量。