У меня есть файл .mp4, который содержит видео h.264 и аудио AAC.Я хочу извлечь информацию о макроблоке и векторе движения для каждого кадра при декодировании.Пожалуйста, найдите мой псевдокод ниже.
avformat_open_input(file_name) //opening file
avcodec_open2(pCodecContext, pCodec, NULL) // opening decoder
while (response >= 0) // reading each frame
{
response = avcodec_receive_frame(pCodecContext, pFrame);
if (response == AVERROR(EAGAIN) || response == AVERROR_EOF || response < 0) {
break;
}
// extract macroblock of pFrame here
av_frame_unref(pFrame);
}
Я видел в другом посте упомянутое, что мы можем получить информацию о MB через структуру MpegEncContext, но я запутался, и как создать экземпляр объекта этой структуры, как MBданные структуры обновляются для каждого кадра .?1004
В конечном счете, я хочу сравнить макроблок из одного кадра с другим кадром, используя SAD (сумма абсолютной разности), и инициировать оповещения, если есть какие-либо искажения на уровне макроблока.
Буду очень признателен, если кто-нибудь поможет с этим.