Термин
Buffer-based ABR
ABR-алгоритм, выбирающий rendition по текущему уровню буфера плеера, а не по измеренному throughput-у. Большой буфер – выше rendition; маленький – ниже.
Buffer-based ABR ввели Yin, Jindal et al. (Netflix paper, 2014) как альтернативу оценке throughput-а. Интуиция: сам уровень буфера – несмещённый сигнал того, грузишь ли ты быстрее, чем играешь. Растёт буфер – есть запас для апа; падает – надо понижать. Throughput оценивать не нужно вовсе – буфер сам и есть интегрирующий сенсор.
Классический buffer-based-алгоритм задаёт кусочно-определённую функцию от уровня буфера к выбираемому rendition-у: ниже 10 секунд – самый низкий, между 10 и 30 – линейный рост, выше 30 – самый высокий. Варианты меняют пороги и форму кривой, но структура та же. Главный выигрыш – buffer-based ABR избегает шума оценки throughput-а на bursty-сетях: игнорирует transient-провалы полосы и реагирует только тогда, когда буфер действительно проседает.
В продакшене большинство ABR-ов гибридные. BOLA (Buffer Occupancy based Lyapunov Algorithm, 2016) – buffer-based-алгоритм с теоретическими границами оптимальности, используется в dash.js. Продакшен-ABR Netflix комбинирует buffer-based-логику с throughput-aware safety constraints. Shaka и hls.js оба по умолчанию используют гибриды. Чистый throughput-based или чистый buffer-based – больше учебные таргеты, чем продакшен-реальность.
Считаете параметры для своего продукта?
Поможем собрать энкодер-леддер и посчитать стоимость доставки – до старта разработки.