Прямая трансляция мультибитрейтного видео

Предисловие

Я прочитал это руководство из двух частей (Часть-1 и Part-2) от Steamroot на MPEG-DASH, и ниже я понимаю (пожалуйста, поправьте меня, если я ошибаюсь):

  • Видео необходимо закодировать с несколькими скоростями передачи с помощью FFmpeg.
  • Закодированные видео необходимо перекодировать (преобразовать) с помощью MP4Box.
  • Видео с кратким обзором можно обслуживать с помощью веб-сервера.

Проблема

Я собираюсь вести прямую трансляцию мероприятия, и мне нужна помощь, чтобы понять следующее:

  1. Могу ли я объединить команды FFmpeg и MP4Box в один шаг? Может через программу-обертку, чтобы не надо было их отдельно запускать? Есть ли другое или лучшее решение?
  2. Как отправить преобразованное содержимое на веб-сервер? FTP? Подойдет ли любой ванильный веб-сервер?
  3. Наконец, друг намекнул, что я могу также использовать GStreamer для достижения моей цели. Но я не смог найти в Интернете ни одного хорошего ресурса для того же самого. Итак, где (и как) GStreamer вписывается в описанный выше процесс?

person Rishabh    schedule 01.09.2017    source источник
comment
Видео транскодируется с помощью FFmpeg. MP4Box используется для мультиплексирования и различных других служебных операций. Вы можете отправлять контент на любой обычный HTTP-сервер любым удобным вам способом. Я бы не стал обращаться к FTP, возможно, к SFTP. Большинство людей используют что-то вроде S3 с CloudFront, но вы можете использовать все, что захотите. В наши дни вы можете сделать намного больше с FFmpeg вживую, если используете WebM. Проверьте это: wiki.webmproject. org / adaptive-streaming /   -  person Brad    schedule 02.09.2017


Ответы (1)


  1. В каком формате вы будете снимать камеру во время вашего прямого эфира? Есть много решений, более адаптированных для потоковой передачи в реальном времени (учебник, который я написал, предназначен только для потоков VOD). Вы можете попробовать простые решения, такие как Wowza Streaming Server, Nible streamer (бесплатно) и т. Д., Которые принимают поток RTMP и преобразовывают его в другие форматы (HLS, DASH и т. Д.). Большинство платформ для прямых трансляций могут даже сделать это за вас (livestream.com, youtube, twitch или даже facebook)

  2. преобразованный контент будет запрошен браузером или другими проигрывателями как HTTP-ресурсы. В случае потока VoD вам просто нужно сделать сегменты тире доступными через веб-сервер. Для живого контента вам нужно что-то более умное, которое будет кодировать, упаковывать сегменты и делать их доступными на лету.

  3. Gstreamer может перекодировать и преобразовывать исходный контент, причем делать это на лету. Вы сможете получать на выходе разные форматы, такие как RTMP, HLS и, возможно, даже mpeg-dash. Тогда вам все равно нужно сделать свой контент доступным через веб-сервер.

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

person Nikolay    schedule 02.09.2017
comment
- What is the format you will be getting out of your camera... Я буду использовать GoPro, поэтому думаю, что это MP4. - For live content, you need something smarter, that will encode, package the segments and make them available on the fly. Не могли бы вы уточнить? - In conclusion, if you just want to transmit an occasional live event, it's probably a lot easier a platform... Я понимаю и буду использовать wowza для прямой трансляции мероприятия. Но я также хочу узнать, как все работает за кулисами, и не хочу зависеть от какого-либо сервера с открытым исходным кодом. - person Rishabh; 03.09.2017