Какой минимальный объем метаданных необходим для потоковой передачи только видео с использованием libx264 для кодирования на сервере и libffmpeg для декодирования на клиенте? - PullRequest
0 голосов
/ 15 марта 2012

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

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

1 Ответ

0 голосов
/ 19 марта 2012

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

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

...