使用ffmpeg / libavcodec从x265(HEVC)编码的视频中提取运动矢量?

时间:2017-11-15 22:53:41

标签: ffmpeg h.264 libavcodec libx265

我知道可以通过首先设置标志

从h264编码的通道中提取运动矢量
av_dict_set(&opts, "flags2", "+export_mvs", 0);

然后你可以通过这个来查询运动矢量的侧面数据

sd = av_frame_get_side_data(frame, AV_FRAME_DATA_MOTION_VECTORS);

当我在线查看您是否可以使用HEVC编码视频执行类似操作时,我无法找到任何信息。我发现的全部是" AV_FRAME_DATA_MOTION_VECTORS"

的定义
  

某些编解码器导出的运动矢量(按需通过   在libavcodec AVCodecContext flags2选项中设置export_mvs标志。

     

数据是在中定义的AVMotionVector结构   libavutil / motion_vector.h。

但是没有关于哪些编解码器确切地导出此运动矢量信息的信息。我怎么去发现这个?

1 个答案:

答案 0 :(得分:1)

如果我没弄错,h264是打印动态估计矢量的唯一编解码器。

我建议您尝试使用视频过滤器mestimate

另外,如果你想在ffmpeg中有更好的想法,请检查 libavcodec / mpegvideo.c中的 ff_print_debug_info2 功能。