我想打印出一些视频帧的属性:我已经研究过AVFrame结构,但只发现了以下失望:
attribute_deprecated short * dct_coeff
attribute_deprecated uint32_t * mb_type
在我看来,我感兴趣的一切已经过时了。顺便说一句,我没找到
int16_t(*[2] motion_val )[2]
我捕获的实际帧中的属性。我的问题是:如何才能访问dct_coeff或motion_vector或mb_type等属性?
答案 0 :(得分:0)
请参阅av_frame_get_side_data
(frame,
AV_FRAME_DATA_MOTION_VECTORS
)
了解动态矢量。另外两个没有替代品。文档说明它们是mpeg特定的并且使用内部实现细节,这就是没有提供替换的原因。
(不要忘记设置avctx->
flags2
&
AV_CODEC_FLAG2_EXPORT_MVS
,否则不会导出。)
对于没有替换的两个,我知道如果你是这样的话,你可能需要这类信息。编写流分析器,但FFmpeg现在还没有提供流分析器级API。它们可以 - 如果有更通用的API - 显然可以作为单独的侧数据类型添加。如果你想要这样,你应该成为一名FFmpeg开发人员并开发更广泛的非特定于MPEG的API(例如,不使用mb_type的内部宏),甚至可能为其他编解码器实现它。在任何其他情况下,我真的不明白为什么你会想要这些信息。你能详细说明吗?