Насколько мне известно из некоторых исследований,
популярная платформа потокового вещания на основе CDN (например, twitch.tv, youtube live) предоставляет рекомендуемые настройки кодировщика (разрешение, битрейт, fps) для вещателей, использующих передовые программные кодировщики (например, obs, xsplit).
Прежде чем начать прямую трансляцию, вещатель должен проверить свою пропускную способность и выбрать одну из рекомендаций. И как только настройка кодировщика выбрана, ее нельзя изменить во время прямой трансляции.
Однако на стороне доставки существует популярная потоковая передача с адаптивным битрейтом (DASH, HLS), чтобы справиться с неоднородным состоянием пропускной способности зрителей.
[CDN based live streaming architecture]
<--------------Ingest Side-------------------> <------Delivery Side--->
RTMP HLS
[Broadcaster] ----------------> [Media Server]--->[CDN]--------> viewer 1
constant bitrate | 720p
ABR |-----> viewer 2
| 360p
|-----> viewer 3
240p
У меня вопрос:
почему платформа потокового вещания, такая как twitch, youtube live, не обеспечивает какой-либо адаптации битрейта во время загрузки на медиасервер?
Или они имеют контроль битрейта только в своих мобильных приложениях? strong>
На мой взгляд, адаптивное изменение битрейта в соответствии с пропускной способностью издателя кажется необходимым и разумным в случае плохой сети или колебаний пропускной способности.
Есть ли какая-либо адаптация битрейта для прямой трансляции, о которой я не знаю?
Я знаю, что в системах видео в реальном времени (например, webRTC, Hangouts) есть своя логика управления для борьбы с перегрузками и пакетами потери.
Поэтому я предполагаю, что мобильные потоковые приложения для youtube live, twitch.tv также имеют свою собственную логику управления битрейтом.
Однако я не смог найти никаких документов или информации об этом, а также не смог найти любой, для случая, когда вещатели используют расширенный кодировщик, чтобы сделать прямую трансляцию более качественной.