Настройка задержки стрима в OBS Studio¶
Задержка стрима — временной интервал между событием на источнике (голос, видео, действие в игре) и его показом у зрителя на площадке (Twitch, YouTube, VK ВКонтакте). В OBS Studio этот параметр определяется комбинацией настроек кодирования, буферизации, сетевых протоколов и ограничений самой платформы. Уменьшение задержки требует согласованной правки нескольких параметров.
¶Из чего складывается задержка
Общая задержка (end-to-end latency) складывается из нескольких компонентов:
| Компонент | Типичный вклад | Управляемость в OBS |
|---|---|---|
| Захват и кодирование кадра (capture + encode) | 30–100 мс | Частично, через выбор кодека и пресета |
| Буферизация аудио/видео в OBS | 20–100 мс | Полностью, настройки «Буфер для передачи» |
| Передача по сети (RTMP/SRT/RIST) | 100–500 мс | Частично, зависит от канала и протокола |
| Пакетирование и CDN площадки | 2–30 с | Не управляется из OBS |
| Плеер зрителя (HLS/DASH) | 2–15 с | Зависит от плеера и настроек площадки |
Практически вся «жёсткая» задержка между OBS и сервером площадки — секунды — накапливается на стороне CDN и плеера. Внутренняя задержка OBS обычно составляет доли секунды.
¶Настройки OBS Studio
¶Режим вывода
В «Настройки → Вывод» при переключении в продвинутый режим доступны два варианта: «Простой» и «Продвинутый». Для управления задержкой используется продвинутый режим.
- Кодек: x264 (аппаратный энкодер QSV/NVENC/AMF дают меньшую задержку кодирования, но требуют совместимого GPU).
- Пресет x264: «ultrafast» или «superfast» снижают задержку энкодера, но увеличивают битрейт при том же качестве.
- Тюнинг (tune): значение «zerolatency» оптимизирует x264 именно под минимальную задержку, отключая lookahead и двойную буферизацию кадров.
- B-кадры: установка в 0 убирает задержку, связанную с предсказанием кадров.
¶Параметры стриминга
В той же вкладке «Стрим»:
- Буфер для передачи (Stream Buffer): значение по умолчанию 6 секунд. Уменьшение до 1–2 секунд сокращает задержку, но повышает чувствительность к просадкам канала.
- Протокол: RTMP — классика с задержкой 2–5 с; SRT и RIST поддерживают настраиваемую задержку (latency) на уровне транспортного слоя и лучше переносят нестабильную сеть.
- Повторное подключение: при частых разрывах OBS буфер растёт — стабильный канал важнее агрессивного уменьшения буфера.
¶Аудиобуфер
В «Настройки → Аудио» параметр «Буфер аудио (мс)» по умолчанию равен 100 мс. Значение 20–40 мс уменьшает задержку звука, но на слабых системах может вызывать щелчки.
¶Настройки на стороне площадки
¶Twitch
Twitch поддерживает режим «Low Latency» — у зрителя в плеере включается уменьшенная буферизация (обычно 2–3 с вместо 15–20 с). Для этого:
- в панели канала активируется Low Latency Mode;
- в OBS рекомендуется RTMP с буфером 1–2 с;
- чат в этом режиме работает быстрее, но при просадках возможны подвисания видео.
¶YouTube Live
YouTube разделяет трансляции на «Обычную» и «Низкую задержку» (Low Latency) и «Сверхнизкую» (Ultra Low Latency). Выбор делается в Studio при создании трансляции. Ultra Low Latency даёт 2–5 с, но ограничивает длину трансляции и отключает DVR.
¶VK ВКонтакте и RuTube
Российские площадки работают преимущественно по RTMP; задержка определяется их CDN и плеером и обычно составляет 5–15 с. Внутренние настройки OBS (буфер, пресет) влияют на этот показатель в пределах 1–2 с.
¶Сетевые требования
Уменьшение буфера выдвигает требования к каналу:
- аплинк должен быть стабильным, без packet loss выше 0,5 %;
- битрейт должен составлять не более 70 % реальной пропускной способности аплинка;
- при нестабильном канале лучше использовать SRT с включённым FEC и задержкой, равной 3–4 кратному RTT.
¶Проверка результата
Для измерения фактической задержки используется метод «таймер в кадре»: на телефоне запускается секундомер, его изображение выводится в OBS как источник, а на втором устройстве открывается стрим. Разница показаний и есть суммарная задержка. Изменения в OBS вступают в силу после переподключения стрима.
¶Типичные ошибки
- Агрессивное уменьшение буфера при нестабильном канале приводит к разрывам и кратковременному росту задержки до дефолтных значений.
- Использование аппаратного энкодера без tune-профилей не даёт выигрыша по задержке кодирования.
- Отключение B-кадров и «zerolatency» снижают эффективность сжатия — при том же качестве требуется больший битрейт.
Источники:
- Документация OBS Studio (obsproject.com/kb)
- Руководство Twitch Creator Camp по Low Latency
- Документация YouTube Help «Latency modes for live streams»
- Документация SRT Alliance (srtalliance.org)
