Какое минимальное количество метаданных необходимо для потоковой передачи только видео с использованием Libx264 для кодирования на сервере и libffmpeg для декодирования на клиенте?

StackOverflow https://stackoverflow.com//questions/9710471

Вопрос

Я хочу транслировать видео (без аудио) с сервера к клиенту.Я буду кодировать видео, используя libx264 и декодирую его с ffmpeg.Я планирую использовать фиксированные настройки (по крайней мере, они будут заранее известны как клиентом, так и сервером).Мне было интересно, сможете избежать обертывания сжатого видео в формате контейнера (например, MP4 или MKV).

прямо сейчас я могу кодировать мои рамки, используя x264_encoder_encode.Я получаю сжатую рамку назад, и я могу сделать это для каждого кадра.Какую дополнительную информацию (если что-то вообще) мне нужно отправить клиенту, чтобы FFMPEG может декодировать сжатые рамки, а что более важно, как я могу получить его с помощью libx264.Я предполагаю, что мне может потребоваться создать информацию NAL (x264_nal_encode?).Имея представление о том, что является минимумом, необходимым для того, чтобы получить видео по всему миру, и как поставить кусочки вместе, будет действительно полезным.

Это было полезно?

Решение

Я обнаружил, что минимальная сумма информации - это NAL-единицы из каждого кадра, это даст мне сырой поток H264.Если бы я написал это в файл, я мог бы наблюдать, используя VLC, если добавить .h264 Я также могу открыть такой файл, используя FFMPEG, но если я хочу его транслировать, то это имеет больше смысла использовать RTSP, а хорошую библиотеку открытого исходного кода для этого является Live555: http://www.live5555.com/liveMedia/

В своих задачах они упоминают, как отправить вывод из вашего энкодера для Live555, и для клиента есть источник как для клиента, так и для сервера.Я еще не закончил кодировать это, но кажется разумным решением

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top