извлечь каждый кадр из потока rtsp (mp4)

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

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


person darleys    schedule 27.10.2011    source источник


Ответы (2)


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

person MAX_POWER_UP    schedule 07.02.2012

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

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

Посмотрите RFC..

Либо 3016, либо 3640 должны вам помочь.

http://tools.ietf.org/html/rfc3640

http://tools.ietf.org/html/rfc3016

person Jay    schedule 11.12.2012