Как извлечь данные вектора движения без декодирования всего видео

Я хочу извлечь вектор движения из закодированного потока h264, не выполняя полного декодирования кадра.

Я использую библиотеку FFmpeg и знаю, что информацию можно извлечь с помощью av_frame_get_side_data. К сожалению, он выполняет полное декодирование кадра перед предоставлением AV_FRAME_DATA_MOTION_VECTORS.

Можно ли проанализировать h264, чтобы извлечь только векторы движения, игнорируя все остальные данные.

1 ответ

FFmpeg предоставляет пример файла extract_mvs.c, который необходимо скомпилировать для использования.

После компиляции используйте эту команду:

      ./extract_mvs input.mp4 > output.txt

При этом векторы движения извлекаются в текстовый файл.


Готовый инструмент — MV-Tractus .

Этот инструмент предоставит вам векторы движения в форме JSON для каждого кадра.


Более поздний инструмент — mv-extractor, описываемый как:

Этот инструмент извлекает кадры, векторы движения, типы кадров и временные метки из видео, закодированных в форматах H.264 и MPEG-4 Part 2.

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