Как работает прямая трансляция Youtube / Facebook из веб-браузера - PullRequest
2 голосов
/ 03 апреля 2019

Я ищу способ реализовать видеокодер с помощью веб-браузера.Youtube и Facebook уже позволяют вам жить прямо из веб-браузера.Мне интересно, как они это делают?

Есть несколько решений, которые я исследовал:

  • Использование веб-сокета: использование веб-браузера для кодирования видео (с использованием медиа-рекордера)api) и передать закодированное видео на сервер для трансляции.
  • Использование WebRTC: веб-браузер в качестве однорангового узла WebRTC и другой сервер в качестве другого конца для приема потока и повторной трансляции (транскодирования) с использованием других средств(rtmp, hls).

Есть ли какая-либо другая технология для реализации этого, которую используют эти ребята (YouTube, Facebook)?Или они тоже используют одну из этих вещей?

Спасибо

Ответы [ 2 ]

2 голосов
/ 03 апреля 2019

Правильно, у вас есть два способа сделать это.(Обратите внимание, что для метода MediaRecorder вы можете использовать любой другой метод для передачи данных на сервер. Веб-сокеты - это один из способов ... как и обычное HTTP-PUT сегментов. Или вы даже можете использовать канал данныхСоединение WebRTC с сервером.)

Практически все используют метод WebRTC, поскольку есть несколько приятных встроенных преимуществ:

  • Низкая задержка (за счет некоторого качества)
  • Динамический битрейт
  • Хорошо оптимизирован на клиенте
  • Может автоматически масштабировать вывод, если не хватает системных ресурсов для продолжения кодирования с большим размером кадра

Недостатки метода WebRTC:

  • Смешно сложный стек для поддержки на стороне сервера.
  • Низкое качество (из-за упора на низкую задержку, НО вы можете настроитьэто можно сделать самостоятельно с SDP)

Если вы идете по маршруту WebRTC, рассмотрите gstreamer.Если вы хотите пойти по пути Web Socket, я написал прокси для получения данных и отправил их в FFmpeg для копирования в RTMP.Вы можете найти его здесь: https://github.com/fbsamples/Canvas-Streaming-Example

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

В WebRTCHacks есть сообщение "Как YouTube использует webrtc" пост здесь , в котором рассматриваются некоторые технические детали их реализации.

Кроме того, один из их инженеров дал доклад в WebRTC Boston.описание системы, которая доступна на Youtube

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...