H264 ByteStream для файлов изображений - PullRequest
0 голосов
/ 09 февраля 2020

впервые здесь, так что будьте осторожны.

Я работал несколько недель над данным потоком байтов H.264:

Общие замечания:

  1. Байт-поток не из файла, он подается мне в прямом эфире из внешнего источника.
  2. Байт-поток кодируется с помощью Android Media Code c.
  3. При записи потока в файл с расширением .H264 VL C может правильно его воспроизвести.

Что я пытаюсь сделать достичь? Одно из следующего:

  1. Преобразование кадров потока H264 в сохраняемый файл изображения (png / jpeg et c ')

  2. Преобразование необработанных байтов H264 в поток MP4, который может воспроизводиться браузером в качестве источника.

Я уже пытался использовать JavaCV (FFmpegFrameGrabber) без какого-либо успеха, моя главная проблема в том, что я понятия не имею, как анализировать поток байтов или что означает каждый «пакет»

Итак, я прикрепил текстовый файл с некоторыми пакетами, которые я получаю из потока H264 Пакеты

1 Ответ

0 голосов
/ 10 февраля 2020

Преобразование кадров потока H264 в сохраняемый файл изображения (png / jpeg et c ')

Предполагается, что вы используете инструмент ffmpeg cli.

Одиночное изображение:

ffmpeg -framerate 25 -i input.h264 -frames:v 1 output.png

Одиночное изображение в отметке времени 01:23:45:

ffmpeg -framerate 24 -i input.h264 -ss 01:23:45 -frames:v 1 output.png

Все изображения. Будет назван output_0001.png, output_0002.png, output_0003.png и др. c. В этом случае нет необходимости устанавливать -framerate или -frames:v.

ffmpeg -i input.h264 output_%04d.png

Подробнее см. FFmpeg image muxer .

Преобразование H264 необработанные байты в поток MP4, которые могут воспроизводиться браузером в качестве источника.

ffmpeg -framerate 24000/1001 -i input.h264 -c copy -movflags +faststart output.mp4
...