Здравствуйте, qwerty12345, Вы писали:
Q>Здравствуйте, grecd, Вы писали:
G>>Вроде бы нашел готовое решение, но оно не работает
G>>http://jiasi.blogspot.com/2011/05/motion-vector-extraction.html
G>>Пробовал заменять устаревшие функции новыми , но все равно не работает.
G>>Есть модифицированные исходники mplayer который вытягивает вектора из видео файла в текст, но не могу найти в каком месте он это делает.
G>>Кто нибудь решал подобные задачи с motion vectors?
Q>Таких задач не решал, но как-то игрался с флагами "AVCodecContext::debug", если выставить FF_DEBUG_MV то декодер рисует эти самые motion vectors прямо в кадре, можно поиском по исходникам найти места обращения к этому флагу, ну и получите место где "он это делает"
Стал пошагово смотреть почему-то у меня не находит никакой поток в файле
// Find the first video stream
videoStream = -1;
for (int i = 0; i < pFormatCtx->nb_streams; i++) {
AVCodecContext *cc = pFormatCtx->streams[i]->codec;
if (cc->codec_type==AVMEDIA_TYPE_VIDEO) {
// don't care FF_DEBUG_VIS_MV_B_BACK
cc->debug_mv = FF_DEBUG_VIS_MV_P_FOR | FF_DEBUG_VIS_MV_B_FOR;
videoStream = i;
break;
}
}
pFormatCtx->nb_streams равен 0; а должен быть 2.
Брал ffmpeg из git репозитория самый свежий и компилил и устанавливал в систему. Он лег в local.
исходник компилируется со всякими deprecated, но все же компилируется и исполняется.