извлечение каждого кадра из потока rtsp (mp4)

#rtsp #mpeg-4

#rtsp #mpeg-4

Вопрос:

Я пытаюсь извлечь каждый кадр из потока rtsp mp4 и преобразовать его в формат jpeg / gif с помощью ffmpeg. Я получаю заголовок sdp 000001b0.....000001b5 и добавляю его в массив байтов, затем записываю кадр, начиная с 000001b6 и добавляя его в массив байтов.

Когда я сбрасываю его в файл (.mpg) и использую ffmpeg, он выдает ошибки и не конвертирует. мой заголовок выглядит так 000001B008000001B58913000001000000012000C488BA98514043C1463F , и после этого я добавляю кадр (начиная с 000001b6 ).

Ответ №1:

Я сделал нечто подобное с FFMPEG, и кажется, что данные кадра, которые вы получаете из FFMPEG, уже содержат заголовок кадра, который является всем, что вам нужно для перекодирования данных. Пожалуйста, убедитесь, что вы декодируете данные mp4 в формат raw (например, RGB24), затем кодируете их в формат пикселей, который ожидает кодировщик JPEG / GIF (возможно, формат YUV), используя libswscale, перед передачей данных кодировщику.

Ответ №2:

В зависимости от кодека вам может не понадобиться ничего добавлять, или вам может потребоваться добавить много..

Это называется де-пакетизацией, а MPEG4-ES не имеет модели пакетизации… H264 имеет много в зависимости от профиля.

Проверьте RFC..

Вам должны помочь 3016 или 3640.

https://www.rfc-editor.org/rfc/rfc3640

https://www.rfc-editor.org/rfc/rfc3016