Какой битрейт нужен вашему стриму?
Потолок битрейта каждого уровня качества, в который кодирует dcast, что отправлять со своего кодировщика для говорящей головы, мероприятий и быстрого движения — и почему при слабом канале лучше снижать разрешение, а не битрейт.
Если вам нужна только цифра — она в таблице ниже, в разделе «Что нам отправлять». Всё остальное объясняет, почему после определённого порога эта цифра перестаёт помогать и что менять вместо неё, когда ваш исходящий канал её не тянет.
Что происходит с вашим потоком, когда он доходит до нас
Когда поток приходит в dcast, он перекодируется в лесенку уровней качества — 360p, 480p, 640p, 720p, 1080p, 1440p, 2160p, — чтобы и зритель с телефоном в лифте, и зритель на оптоволокне получили картинку, которую можно смотреть. Каждый уровень кодируется не выше собственного потолка битрейта, и эти потолки — настройка платформы, а не то, что вы присылаете.
Из этого следуют две вещи, и именно их чаще всего понимают наоборот.
Потолки — наши, а не ваши. Нельзя поднять уровень, отправляя больше, и нельзя опустить, отправляя меньше. Ваш входящий битрейт определяет, сколько реальной детализации есть у лесенки на входе, — это совсем другой вопрос, и на него отвечает следующий раздел.
Потолки не зависят от подписки. Тариф покупает высоту верхнего уровня, а не битрейт какого-либо уровня. Уровень 720p кодируется одинаково — будь он верхним у бесплатного аккаунта или где-то в середине лесенки у крупного.
Мы перенастраиваем эти потолки по мере того, как меняются серверы и кодировщики, поэтому в этой статье намеренно нет таблицы их значений: любая цифра, напечатанная здесь, устарела бы задолго до того, как её перестанут цитировать. Структура стабильна, цифры — нет. И, как доказывает остальная часть статьи, ваша картинка на самом деле зависит не от цифр на нашей стороне.
Что нам отправлять
Ваш кодировщик отправляет один поток. Из него мы строим лесенку. Значит, единственное, что вы на самом деле решаете, — каким будет этот единственный входящий поток. И думать об этом полезно так: отправляйте столько, чтобы у верхнего уровня была реальная детализация для работы, и не больше.
| Ваш источник | Разумный входящий битрейт | Почему |
|---|---|---|
| Говорящая голова, слайды, интервью в 1080p | 4000 – 6000 kbps | Мало движения в кадре; кодировщик тратит бюджет на лица и текст, и лишние данные почти ничего не дают |
| Смешанный контент, мероприятия, сцена, дискуссия в 1080p | 6000 – 9000 kbps | Склейки, движущийся свет и планы зала делают каждый кадр дороже |
| Быстрое движение — спорт, геймплей, съёмка с рук — в 1080p | 9000 – 12 000 kbps | Каждый кадр отличается от предыдущего, переиспользовать нечего, и каждый кадр стоит почти по полной цене |
| 720p, любой контент | 3000 – 6000 kbps | Уровню 720p с запасом хватает уже внутри этого диапазона; выше вы тратите исходящий канал на детали, которые этот уровень не удержит |
Эти диапазоны — отправная точка, а не закон. Единственное правило, которое работает всегда: что бы вы ни отправляли, ваш исходящий канал должен держать это непрерывно, а не только в удачную минуту.
Почему больший битрейт перестаёт помогать
Битрейт — это бюджет данных в секунду, а не ползунок качества. Кодировщик получает этот бюджет и должен уложить в него описание каждого кадра. Когда картинка почти не меняется — человек говорит на статичном фоне, — описать следующий кадр дёшево, и больший бюджет просто остаётся неистраченным. Когда картинка меняется везде сразу — панорама по толпе, гол, конфетти, — кодировщик не успевает описать всё и начинает огрублять: вместо содержимого блока пикселей он отправляет один усреднённый цвет на весь блок. Это и есть «квадраты». Это видимая граница бюджета.
Вот почему одна и та же цифра даёт двум людям разную картинку. Ваш знакомый с точно такими же настройками стримит статичный оверлей и веб-камеру; вы — сцену, где всё движется. Бюджет одинаковый, счёт совсем разный.
Этим же объясняется и форма рекомендаций выше. Повышение битрейта помогает ровно до момента, когда бюджет перестаёт быть ограничением, а дальше оно съедает запас исходящего канала и ничего не даёт. Нет такой настройки, при которой статичная говорящая голова выглядела бы лучше, чем она уже выглядит на 6000 kbps.
Запас — вот почему у уровня есть буфер, а не только скорость
Каждый уровень кодируется не только с потолком, но и с буфером — окном, в которое кодировщик может ненадолго выйти за потолок, а потом вернуть долг. В нашей живой лесенке это окно сейчас вдвое больше потолка уровня. Это не слабина — это как раз то, что сохраняет дорогие моменты целыми.
Настоящее видео не одинаково дорогое по всей длине. Резкая склейка на новую сцену стоит гораздо больше, чем секунда статичного кадра перед ней. Если бы кодировщик обязан был держаться потолка в каждое мгновение, он изуродовал бы именно эти моменты — склейки, вспышки, быстрые панорамы, — а ведь именно на них зритель и смотрит. Буфер объёмом в две секунды данных позволяет ему на мгновение потратить больше потолка и вернуться под него, так что среднее держится, а пики выживают.
Та же логика работает и для вашего исходящего канала — и именно здесь ломается большинство сломанных трансляций. Если замеренный исходящий канал у вас 10 Mbps, а кодировщик выставлен на 10 000 kbps, вы не оставили ничего ни для пиков, ни для всех остальных в здании, кто сидит на той же линии. Поток, выставленный ровно в потолок своего подключения, — это поток, который начнёт терять кадры на первой же резкой склейке. Оставляйте запас. Если спидтест показывает 10 Mbps на отдачу, 6000 kbps — это не перестраховка, а настройка, которая выдержит всю трансляцию.
Слабый канал — снижайте разрешение, а не битрейт
Это самый полезный разворот во всей теме, и он противоположен тому, что большинство пробует первым делом.
Допустим, ваш исходящий канал надёжно держит только 3000 kbps. Уложиться можно двумя способами: отправить 1080p на 3000 kbps или 720p на 3000 kbps. Данных в секунду одинаково. Но в кадре 1080p пикселей больше чем вдвое по сравнению с 720p, так что при том же бюджете каждому пикселю достаётся меньше половины внимания. Версия 1080p — это не более чёткая картинка при меньшей полосе, а более мыльная картинка большего размера. Версия 720p, получив все 3000 kbps на куда меньшее число пикселей, выглядит чисто.
Поэтому, когда проблема в канале, порядок действий такой: сначала снизьте разрешение и только потом подгоните битрейт так, чтобы он с запасом помещался в то, что линия тянет в плохую минуту, а не в хорошую.
Частоту кадров решаем мы, а не ваш тариф
В живом тракте частота кадров лесенки — настройка платформы, а не отдельного аккаунта, и на момент написания статьи каждая прямая трансляция кодируется в 30 fps, что бы вы ни присылали. Подписка в этом решении не участвует вообще: бесплатный аккаунт и аккаунт на старшем тарифе получают из одного источника одинаковую частоту кадров.
Это полезно знать до того, как что-то настраивать, потому что это задаёт вашему бюджету исходящего канала вполне определённое направление: в живом тракте нет никакого смысла выкручивать кодировщик на 60 fps. Лишние кадры дальше не проходят, а при фиксированном входящем битрейте они отнимают детализацию у тех кадров, которые проходят. Если у вас быстрое движение, тратьте бюджет на битрейт, а не на частоту кадров.
Загруженные видео идут по отдельному пути со своими правилами частоты кадров, и ничего из этого к ним не относится.
Что меняет ваш тариф, а что нет
Стоит сказать прямо, потому что именно здесь чаще всего ошибаются. В живом тракте тариф определяет высоту верхнего уровня — максимальное качество, которое может выбрать зритель, — и больше ничего в картинке. Бесплатные аккаунты ограничены 720p, а платные тарифы поднимают этот потолок до 1080p, 1440p и 2160p.
Чего тариф не меняет: битрейт любого уровня, буфер, частоту кадров, структуру ключевых кадров и настройки кодировщика. Уровень 720p кодируется одинаково — будь он верхним у бесплатного аккаунта или третьим у крупного. Версии кодировщика с урезанным качеством не существует.
Сетка ключевых кадров и почему с ней не стоит бороться
Одна настройка вашего кодировщика действительно взаимодействует с нашей — интервал ключевых кадров. dcast нарезает живой поток на сегменты по 4 секунды, и в каждом сегменте 2 ключевых кадра — один на границе и один посередине. Значит, внутренний интервал ключевых кадров — 2 секунды, и он рассчитывается от итоговой частоты кадров, а не привязан к фиксированному числу кадров.
Подстраиваться под это не нужно. Кодировщик перекодирует то, что вы присылаете, и строит собственную сетку. Но если вы выставите у себя необычный интервал ключевых кадров в надежде снизить задержку дальше по цепочке, этого не произойдёт, а очень длинный интервал на входе ухудшит первые мгновения после переподключения. Интервал ключевых кадров 2 секунды в вашем кодировщике — надёжный и скучный выбор.
Пятиминутная диагностика, когда картинка выглядит не так
«Квадраты», которые появляются только в движении и исчезают на статичных планах, — проблема битрейта: бюджет кончился там, где контент стал дорогим. Поднимите входящий битрейт на ступень или опустите разрешение на ступень.
«Квадраты», которые накатывают волнами независимо от того, что в кадре, часто вместе с артефактами звука и растущим счётчиком пропущенных кадров в кодировщике, — это не проблема битрейта: это ваш канал не доставляет то, что вы ему пообещали. Снижайте битрейт, пока счётчик пропущенных кадров не продержится на нуле целых десять минут.
Картинка, мягкая везде и всё время, включая статичные планы, — обычно проблема источника, а не кодирования: камера снимает в меньшем разрешении, чем вы думаете, карта захвата согласовала более низкий режим или сцена где-то в вашей цепочке растягивается. Никакой битрейт не исправит апскейл — увеличенная картинка добавляет данные, а не детали.
И если зрители жалуются на проблемы, которых вы у себя не видите, помните: вы смотрите собственный предпросмотр, а не собственный поток. Предпросмотр никогда не покидал вашего здания.
Часто задаваемые вопросы
Какой битрейт ставить для 1080p60?
Для быстрого движения держитесь у потолка: 9000–12 000 kbps. Для разговорного контента хватает 4000–6000 kbps даже в 1080p. Уровень 1080p кодируется с потолком 12 000 kbps, так что отправка большего не даёт кодировщику ничего сверх этого.
Даёт ли тариф подороже более высокий битрейт?
Нет. В живом тракте тариф задаёт высоту верхнего уровня — 720p на бесплатном, затем 1080p, 1440p и 2160p на платных. Потолки битрейта, буфер, частота кадров и настройки кодировщика одинаковы на всех тарифах.
Почему картинка разваливается только при быстром движении?
Потому что битрейт — это бюджет в секунду. Когда меняется большая часть кадра, кодировщик не может описать всё в рамках бюджета и огрубляет детали, отправляя вместо них усреднённые блоки. Статичный кадр меняется мало, поэтому того же бюджета более чем достаточно.
У меня медленный интернет. Снижать битрейт или разрешение?
Сначала разрешение. При фиксированном битрейте 1080p размазывает те же данные по вдвое с лишним большему числу пикселей, чем 720p, поэтому выглядит хуже, а не лучше. Перейдите на 720p и отдайте весь бюджет меньшему числу пикселей.
Получу ли я уровень 4K, если камера снимает в 1080p?
Нет. Уровни выше высоты вашего источника не создаются — увеличенная копия не несёт новых деталей, только больше данных. Верхний уровень — меньшее из двух: высота вашего источника или потолок вашего тарифа.
dcast Team
Professional video streaming experts helping creators succeed.
Похожие статьи
Начните свой видеобизнес сегодня
Присоединяйтесь к тысячам авторов, которые монетизируют контент с DCAST.
Начать бесплатно



