Разбор RTP-потока для получения I-кадра кодека MPEG4 с камеры Panasonic

Я использую ffmpeg для записи потока RTSP MPEG4 с камеры.

  1. RTSP был установлен путем вызова функции avformat_open_input
  2. Кадр принимается с камеры с помощью av_read_packet(contest, &пакет) и сохраняется в структуре AVPacket.
  3. Теперь я хочу разобрать этот кадр, чтобы определить, какой я кадр, прежде чем он будет сохранен в файл. Использование функции avcodec_decode_video, которая может помочь мне в этом случае, но из-за декодирования с задержкой, это не лучший выбор для меня. Во всяком случае, я хочу использовать другой способ

Просто я думаю, что package.data содержит формат RTP, который включает заголовок RTP + данные RTP.

Я просмотрел некоторые другие объявления, такие как: decoded-by-a-decoder-filter-i">как обрабатывать пакет данных рисования и разбор MPEG-4 из rtp-пакета. На самом деле они выглядят очень близко к тому, что мне нужно, и, возможно, я что-то не так сделал. Поэтому я до сих пор не могу понять, где 12 байт для RTP-заголовка в packet.data и что дальше? Мне действительно нужна информация о плоскости объекта I, P или B.

Попытка разобрать формат RTP, но кажется, что packet.data либо содержит некоторую дополнительную информацию, чем чистый формат RTP, либо не содержит заголовка RTP. Я не уверен.

Выстрел:

How can I parse the frame to get frame info (I, P or B) in AVPacket

person vominhtien961476    schedule 30.09.2013    source источник


Ответы (1)


Я не использую FFmpeg, но, согласно документу, вы можете получить доступ к исходному данные с AVPacket.data

На данный момент, возможно, вы можете просто сделать это:

int nalType = packet->data[0] & 0x1F;
if (naType == 5) // iFrame
person HaneTV    schedule 08.10.2013
comment
Спасибо за Ваш ответ. Собственно, моя проблема в том, что я забыл проверить тип данных (аудио или видеокадр). Я искал кадр I в аудиопотоке и сравнивал с видео в формате MPEG4, поэтому я не разобрал кадр должным образом. Я надеюсь, что ни у кого не будет такой же проблемы, как у меня - person vominhtien961476; 11.10.2013