У каждого плеера есть скрытый буфер: биты втекают в него из сети с той скоростью, которую позволяет ваше соединение, а готовые кадры вынимаются оттуда с ровной частотой и показываются на экране. Пока биты приходят хотя бы не медленнее, чем кадры уходят, воспроизведение идёт гладко.
Но сжатые кадры не одинаковы по размеру - сложная сцена куда тяжелее простой. Если тяжёлый отрезок приходит быстрее, чем сеть успевает его доставить, буфер вычерпывается до дна: плееру нужен следующий кадр, а битов ещё нет. Картинка замирает, и вы видите ту самую крутилку «загрузка...». Это не случайный глюк, а буфер, который опустел.
Ровно поэтому кодек держит потолок битрейта. Вся задача «управления битрейтом» - не дать этому воображаемому буферу ни опустеть (подвисание), ни переполниться (тогда поток считается вне стандарта, и строгий декодер вправе его отклонить). Кодер постоянно балансирует буфер для каждого кадра и каждого зрителя - тратит щедро, когда есть запас, и поджимается перед тяжёлой сценой, - лишь бы крутилка не появилась. Когда стрим идёт гладко, это потому, что скрытый буфер кадр за кадром оставался ровно настолько полным, насколько нужно.
О компании: Фора Софт - с 2005 года разрабатываем видеосвязь, видеостриминг и AI-решения для видео. 20 лет в одной нише, 50 инженеров, 250+ проектов - от live-стриминга с задержкой 0,4–0,5 с на 10 000 HD-зрителей до телемедицины в 84 странах. Нужен видеопродукт - от MVP до highload? Пишите нам
Ещё больше интересных фактов о видео - в нашем подкасте: https://music.yandex.ru/album/43412987/track/154479781
#видео #стриминг #технологии #ликбез #forasoft