2012-04-19 3 views
1

Мне нужно извлечь информацию о векторах движения и коэффициентах постоянного тока из видео в формате MPEG4. Я искал соответствующие сайты и темы, и я нашел, что хорошим решением является работа с кодеком кодека ffmpeg. В частности, функция ff_print_debug_info в libavcodec/mpegvideo.c вычисляет релевантную информацию.Векторы движения и коэффициенты постоянного тока из потока MPEG4

Однако я новичок в поле C/C++, и если есть какой-либо пример кода, который описывает или объясняет, как извлекать коэффициенты MV и DC, что было бы очень полезно.

В последней версии, которую я использую (FFmpeg 0.10.2 от http://ffmpeg.org/download.html), есть еще один файл mpeg4videodec.c. Есть ли шанс получить необходимую информацию по этому коду?

+1

Я обнаружил, что ffmpeg может предоставлять информацию о векторах движения и коэффициентах постоянного тока, определяя соответствующие значения в качестве истоков при выполнении. Раздел 4.11 в [link] (http://ffmpeg.org/ffmpeg.html#Advanced-Video-Options) описывает, как печатать определенную информацию об отладке, которая в моем случае была бы -debug dct_coeff и -debug mv. Кто-нибудь знает, какую команду следует использовать? Все, что я хочу, - это декодировать видео mpeg4 на свои фреймы с помощью ffmpeg, а параллельно вынимать информацию о mv и dct в этих кадрах. – Lampis

ответ

1

Заканчивать этот кусок кода: http://www.princeton.edu/~jiasic/cos435/motion_vector.c

Это дает основную идею доступа векторов движения жгуты FFmpeg-декодированному кадру.

Что касается коэффициентов DC, я не вижу другого способа, кроме как вводить свой собственный код в декодер, чтобы сбрасывать коэффициенты при декодировании.