Извлечь векторы движения из видео в формате x265 (HEVC) с помощью ffmpeg/libavcodec?

Я знаю, что можно извлечь векторы движения из 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"

Векторы движения экспортируются некоторыми кодеками (по требованию через флаг export_mvs, установленный в опции libavcodec AVCodecContext flags2).

Данные - это структура AVMotionVector, определенная в libavutil/motion_vector.h.

но не было никакой информации о том, какие именно кодеки экспортируют эту информацию вектора движения. Как мне узнать это?

1 ответ

Решение

Если я не ошибаюсь, h264 - единственный кодек для печати векторов оценки движения.

Я хотел бы предложить попробовать видеофильтр Mestimate.

Кроме того, если вы хотите лучше понять, что происходит в ffmpeg, проверьте функцию ff_print_debug_info2 в libavcodec/mpegvideo.c

Другие вопросы по тегам