Я использую декодер avcodec H264 в своем проекте. Я получаю NAL-модули из сети, склеиваю NAL с одного кадра (добавляется дополнительный заголовок на сетевой уровень) и передается декодеру. Мне было интересно, закодирован ли номер последовательности кадров в блок NAL - это было бы логично, поскольку нам нужна ссылка на фреймы IDR.x264/avcodec: серийный номер кадра из блока NAL
Если эта информация присутствует - как ее можно извлечь?
Сейчас я смотрю спецификацию ITU-T H.264, которую я могу признать довольно сложной. До сих пор я не нашел ответа на свой вопрос.
Я не уверен, что именно вы пытаетесь найти. Если вы пытаетесь выяснить, соответствуют ли разные NAL одному и тому же кадру, вам необходимо прочитать «7.4.1.2.4 Обнаружение первого блока VAL NCL первичного кодированного изображения». Обратите внимание, что тот же frame_num из slice_header недостаточно, чтобы сказать, что NAL соответствуют одному и тому же фрейму. – nobody555
Спасибо. Это был именно вопрос: как я понимаю, что NAL - это один и тот же фрейм? И в каком порядке они должны быть в блоке, переданном декодеру? –
@ nobody555, насколько я вижу - frame_num из заголовка среза отлично соответствует порядковому номеру кадра, и даже если он переполняет каждый MaxFrameNum, это не проблема. Я не буду делать буфер кадров больше этого значения. Также я использую профиль Baseline, поэтому порядок среза не имеет значения, поэтому frame_num должно быть достаточно. Я где-то ошибаюсь? –