2015-05-31 3 views
0

В настоящее время я отправляю отдельные блоки NAL по сети. Эти единицы NAL генерируются x264. Теперь можно самостоятельно комбинировать эти блоки NAL в avcodec_decode_video2?Декодирование H.264 отдельных единиц измерения

Или мне нужно конкатенировать единичные единицы, пока они не будут представлять одну и ту же рамку? Если это так, то как это сделать?

Я также прочитал, что я мог бы получить пакеты SPS и PPS. Затем подождите, по крайней мере, один пакет и попытайтесь декодировать. Это верно?

Любые советы, которые могут быть предложены больш была бы оценена

ответ

0

Да, это возможно для нас, чтобы передать блоки NAL индивидуально декодера. H264 имеет возможность разбивать на несколько фрагментов с несколькими единицами NAL на кадр. Pl. обратитесь к руководству, которое содержит инструкции по расшифровке с помощью ffmpeg. http://dranger.com/ffmpeg/tutorial01.html.

Также проверьте вывод вызова av_read_frame, чтобы понять, как поступают данные кадра. Предложите вам пл. обратитесь к приведенной ниже ссылке переполнения стека, которая также объясняет проблему с декодированием NAL. H264: decode series of nal units with ffmpeg

+0

В учебнике используется параметр av_read_frame(), но я не читаю его из файла. Этот метод по-прежнему работает с подразделениями NAL, входящими в сеть? SPS и PPS - это все отдельные пакеты, которые я отправляю в сеть, x264 дает мне 1300 байтовых фрагментов. Таким образом, ни одна из моих длин NAL не превышает этот размер. – madprogrammer2015

+0

int av_read_packet \t (AVFormatContext * s, AVPacket * \t pkt) \t был использован, прежде чем читать пакетные данные, но теперь он устарел. И мы должны использовать av_read_frame(). Pl. обратитесь к приведенной ниже ссылке http://ffmpeg.sourcearchive.com/documentation/0.6/libavformat_2utils_8c_bad7a4517e0be66e41f32c3c0b2454a4.html – shri