Проблема с зависаниями видео затронула только телефоны
Если публикуется, например, экран или вкладка браузера, развернутая на весь экран, получается FullHD поток. Если при этом мобильные устройства используют мобильную связь, скорее всего пропускной способности канала не хватает под этот поток. Поможет либо снижение разрешения публикации, либо транскодинг на сервере к меньшему разрешению.
Вопрос: вы проводили нагрузочные тесты для воспроизведения плеером HLS? у него больше ресурсопотребление? есть ли внем технология транскодинга?
По умолчанию, для HLS включается транскодинг к разрешению 640x480, для снижения нагрузки на канал с одной стороны и для совместимости с квадратными iPad с другой. Отключите транскодинг
Code:
hls_player_width=0
hls_player_height=0
и нагрузка на сервер уменьшится. В этом случае будет транскодироваться только звук, если Вы публикуете WebRTC поток из браузера H264+Opus, поскольку в HLS идет H264+AAC.
Мне выгоднее будет всех подключить к HLS? или например разделить: смартфоны на HLS а пк на Embed.
HLS дает задержку при трансляции, WebRTC задержку минимизирует. Поэтому имеет смысл там, где возможно, использовать WebRTC, если задержка критична. Кроме того, для плавного проигрывания по HLS необходим стабильный FPS публикации, а также регулярное поступление ключевых фреймов. Если публикация не обеспечивает ни того, ни другого, необходим транскодинг, который выровняет FPS и добавить регулярную отсылку ключевых фреймов.
Таким образом, Вы всегда вынуждены выбирать: либо повышение нагрузки на сервер (за счет транскодинга для адаптации к каналу пользователя и используемому протоколу трансляции), либо снижение качества картинки для того, чтобы пропихнуть поток в каналы всех пользователей.
Поэтому при большом количестве зрителей с разными каналами рекомендуется либо держать мощный сервер, либо разворачивать CDN и выносить задачу транскодинга на выделенные серверы. Подробнее об этом читайте
здесь.