Прямая трансляция мультибитрейта
Предисловие
Я прочитал этот учебник из двух частей ( Часть-1 и Часть-2) от Steamroot по MPEG-DASH, и ниже мое понимание (пожалуйста, исправьте меня, если я ошибаюсь):
- Видео должно быть закодировано в несколько битрейтов, используя FFmpeg.
- Закодированные видео необходимо перекодировать (дешифровать) с помощью MP4Box.
- Dashified видео можно обслуживать с помощью веб-сервера.
проблема
Я намерен транслировать событие в прямом эфире, и мне нужна помощь, чтобы понять следующее:
- Могу ли я объединить команды FFmpeg и MP4Box в один шаг? Может быть через программу-обертку, чтобы мне не приходилось запускать их отдельно? Есть ли другое или лучшее решение?
- Как отправить набросок контента на веб-сервер? FTP? Подойдет ли какой-нибудь ванильный веб-сервер?
- Наконец, друг намекнул, что я также могу использовать GStreamer для достижения своей цели. Но я не смог найти ни одного хорошего ресурса в интернете для того же. Итак, где (и как) GStreamer вписывается в вышеуказанный процесс?
1 ответ
В каком формате вы будете снимать с камеры для живого мероприятия? Существует множество решений, намного более адаптированных для потоковой передачи в реальном времени (учебник, который я написал, предназначен только для потоков VOD). Вы можете проверить простые решения, такие как Wowza Streaming Server, Nible streamer (бесплатно) и т. Д., Которые принимают RTMP-поток и преобразуют его в другие форматы (HLS, DASH и т. Д.). Большинство платформ прямой трансляции могут даже сделать это для вас (livestream.com, youtube, twitch или даже facebook сейчас)
Dashified контент будет запрашиваться в качестве ресурсов HTTP браузером или другими игроками. В случае потока VoD, действительно, вам просто нужно сделать сегменты тире доступными через веб-сервер. Для живого контента вам нужно нечто более умное, которое будет кодировать, упаковывать сегменты и делать их доступными на лету.
Gstreamer может перекодировать и преобразовывать исходный контент, и может делать это на лету. В качестве выходных данных вы сможете получать различные форматы, например RTMP, HLS и, возможно, даже mpeg-dash. Тогда вам все еще нужно сделать свой контент доступным через веб-сервер.
В заключение, если вы просто хотите передавать случайное живое событие, возможно, вам будет намного проще платформы, которая будет принимать ваш RTMP-поток и выполнять все сложные шаги за вас.