Создайте файл mp4 из необработанного h264, используя канал вместо файлов - PullRequest
1 голос
/ 16 апреля 2019

У меня есть необработанный файл h264, который я могу отобразить с помощью VLC на компьютере Mac:

открыть -a файл VLC.h264

Я могу преобразовать это в mp4 с помощью командной строки

ffmpeg -f h264 -i file.h264 -c:v copy file.mp4

Но то, что я действительно хочу сделать, это что-то вроде:

cat file.h264 | ffmpeg> file.mp4

Причина в том, что вход поступает через сокет, и я хочу преобразовать его и отправить на видео-тег в HTML-файл на лету.

Альтернативным решением будет способ отображения необработанного h264 на веб-странице без предварительного преобразования его в mp4.

Вход поступает кадр за кадром, первые четыре байта равны 0,0,0,1. Насколько я понимаю, это h264 Приложение B формат.

Я ничего не знаю о видеоформатах, я был бы благодарен, если бы меня указали в каком-либо направлении.

Должен ли я посмотреть на написание кода с использованием libavcodec, как этот вопрос, или есть готовое решение?

H.264, мультиплексированный в MP4 с использованием libavformat, не воспроизводящего

Спасибо!

1 Ответ

1 голос
/ 16 апреля 2019

Командная строка ниже создаст фрагментированный MP4 (Windows cmd)

type test.h264 | ffmpeg -i - -vcodec copy -f mp4 -movflags frag_keyframe+empty_moov pipe:1 > test_frag.mp4

Вы сможете найти много кода JavaScript для воспроизведения фрагментированных MP4.

Например: https://github.com/chriswiggins/videojs-fmp4

...