Калькулятор · без регистрации
Замерьте свой канал прямо здесь — получите задержку и готовую строку для OBS, vMix и ffmpeg. И главное, на чём спотыкаются все: в OBS 500 мс записывается как 500000.
Откройте страницу на том компьютере и в той сети, откуда пойдёт поток — замер показывает именно ваш канал. VPN на время замера лучше выключить.
Одно и то же значение в разных программах пишется по-разному. Перенесли число из vMix в OBS как есть — получили буфер в тысячу раз меньше нужного.
| Программа | Единица | 500 мс пишется как |
|---|---|---|
| OBS Studio | микросекунды | latency=500000 |
| ffmpeg, ffplay | микросекунды | latency=500000 |
| vMix | миллисекунды | поле Latency: 500 |
| srt-live-transmit | миллисекунды | latency=500 |
| VLC | миллисекунды | настройка «SRT latency»: 500 |
| Larix Broadcaster | миллисекунды | 500 |
| Аппаратные энкодеры | миллисекунды | 500 |
Если в OBS написать latency=500, получится полмиллисекунды.
SRT не ругается — он молча работает почти без буфера, и картинка начинает сыпаться
при первых же потерях. Снаружи это выглядит как «плохой интернет», хотя дело в одном нуле.
SRT не ждёт, пока кадр развалится. Каждый пакет он придерживает на время latency, и если какой-то пакет потерялся — успевает попросить его заново. Один такой переспрос стоит один круг по сети: приёмник заметил дыру, сообщил отправителю, тот прислал пакет ещё раз.
Отсюда правило: буфер должен вмещать несколько кругов. Если он короче — потерянный пакет не успевает вернуться, и SRT выбрасывает его ради того, чтобы не отстать от эфира. Чем больше потерь в канале, тем больше переспросов подряд нужно уметь пережить:
| Потери в канале | Буфер | Типичный канал |
|---|---|---|
| до 1% | 3 × RTT | кабель, оптика, проводной интернет площадки |
| до 3% | 4 × RTT | Wi-Fi, общая сеть площадки |
| до 7% | 6 × RTT | мобильный 4G/5G |
| до 10% | 8 × RTT | нестабильный мобильный, роуминг, спутник |
Ниже 120 мс не опускаемся даже при соседнем городе: это значение SRT по умолчанию, а кодер отдаёт кадры неравномерно — пачками на ключевых кадрах. И ещё одна хорошая новость: согласовывать стороны не нужно. При соединении SRT сравнивает задержку отправителя и приёмника и берёт большую — достаточно выставить своё значение у себя.
Подключитесь с выбранной задержкой к нашему эталонному сигналу — он бесплатный и работает круглосуточно. Готовая строка с вашей задержкой — в блоке «Проверить на эталоне» выше.
| Таймкод в кадре | Московское время. Разница с вашими часами — сквозная задержка всего тракта. |
| Счётчик кадров | Растёт без пропусков. Скачок номера — потерянные кадры: буфера не хватает. |
| Бегунок внизу | Проходит ширину кадра за секунду. Рывки — дрожание сети. |
| Сыпется квадратами, щёлкает звук | Буфера не хватает на потери. Сначала проверьте единицы (в OBS — шесть знаков, 500000),
потом поднимите задержку на шаг: возьмите тип канала на строку ниже. |
| Задержка больше, чем выставлено | К latency добавляются буферы кодера и декодера и длина GOP — обычно ещё 0,3–1 с.
Проверьте, нет ли лишнего нуля: 5000000 в OBS — это уже пять секунд. |
| Не подключается | Режим mode=caller, порт входа или выхода из карточки потока, passphrase
совпадает до символа (10–79 знаков). Без пароля на потоке параметр passphrase не пишите вовсе. |
| Эталон рвётся через 10 минут | Это правило эталонного сигнала, а не канала: сессии сбрасываются по общему окну. Переподключайтесь сразу. |