c++ - 部分解码h264流

标签 c++ ffmpeg h.264

我正在尝试获取有关 h264 比特流中的帧的信息。特别是宏 block 的运动 vector 。我想,我必须使用 ffmpeg 代码,但它真的很大而且很难理解。 那么,有人可以给我一些从 h264 流中的单帧原始数据进行部分解码的技巧或示例吗?

谢谢。

最佳答案

不幸的是,要从比特流中获取该级别的信息,您必须解码每个宏 block ,没有快速的选项,就像从切片 header 获取信息一样。

一种选择是使用 h.264 引用软件并打开详细调试输出和/或在需要的地方添加您自己的 printf,但这也是一个需要导航的大型代码库:

http://iphome.hhi.de/suehring/tml/

(您也可以使用 ffmpeg 并按照您所说的在需要的地方添加输出,但这也需要对该代码库有一些了解)

有一些用于分析视频比特流的图形工具,它们会在每个宏 block 的基础上向您显示此类信息,许多工具都很昂贵,但有时有免费试用版。

关于c++ - 部分解码h264流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27125750/

相关文章:

ffmpeg - GStreamer 声称缺少 avdec_aac

video - ffmpeg:多个视频过滤器顺序问题

c - 我怎么知道任何 h264 文件的持续时间?

c - libavcodec : how to encode with h264 codec , 与 mp4 容器使用可控帧率和比特率(通过 c 代码)

c++ - 检查 XMM 寄存器是否全为零

c++ - Qt:关闭模态对话框关闭程序

c++ - <iostream> 是如何工作的? (C++)

c++ - 将类方法设置为 OpenSSL 回调

c++ - 如何在 C++ 中使用 ffmpeg 流式传输 opencv Mat

c++ - 在 Windows 上通过 Live555 服务实时 OpenCV H.264 流