Правильно, у вас есть два способа сделать это.(Обратите внимание, что для метода MediaRecorder вы можете использовать любой другой метод для передачи данных на сервер. Веб-сокеты - это один из способов ... как и обычное HTTP-PUT сегментов. Или вы даже можете использовать канал данныхСоединение WebRTC с сервером.)
Практически все используют метод WebRTC, поскольку есть несколько приятных встроенных преимуществ:
- Низкая задержка (за счет некоторого качества)
- Динамический битрейт
- Хорошо оптимизирован на клиенте
- Может автоматически масштабировать вывод, если не хватает системных ресурсов для продолжения кодирования с большим размером кадра
Недостатки метода WebRTC:
- Смешно сложный стек для поддержки на стороне сервера.
- Низкое качество (из-за упора на низкую задержку, НО вы можете настроитьэто можно сделать самостоятельно с SDP)
Если вы идете по маршруту WebRTC, рассмотрите gstreamer.Если вы хотите пойти по пути Web Socket, я написал прокси для получения данных и отправил их в FFmpeg для копирования в RTMP.Вы можете найти его здесь: https://github.com/fbsamples/Canvas-Streaming-Example