2 мин чтения#infrastructure#engineering#sports

SRT проиграл RTMP на длинном международном плече

SRT-поток от удалённого производства рассыпался и замирал. Международное плечо было длинным, RTT держался около 183 мс.

Сначала я выставил SRT latency в 1000 мс. Потом искал ошибку в настройках сервера. Оба диагноза оказались неверными: запас по задержке не лечит маршрут, на котором транзитные сети фильтруют или ухудшают UDP.

Протокол с лучшей репутацией бесполезен, если транспортная сеть не даёт ему работать. Выбирать нужно под реальный маршрут.

SRT создан для работы с потерями, но у него есть базовое условие — UDP должен проходить. На этом маршруте условие не выполнялось.

RTMP поверх TCP пошёл по тому же пути чисто. На контрольной точке он держался уже 22+ минуты без зависаний и повреждений, затем выдержал боевую работу.

Резерв, который не понадобился

Заодно я поднял на существующем VDS в Амстердаме Mist-релей: SRT на входе, RTMP на выходе. На сборку и проверку портов ушло около часа.

Релей так и не включили. Прямой TCP-маршрут держался, поэтому добавлять ещё один узел в работающую цепочку не было смысла. Страховка, которой не воспользовались, всё равно остаётся страховкой.

Три правила после проверки:

→ соответствие транспорту важнее моды на протокол → зрительская сторона всё это время была вне риска: HLS работает поверх TCP → во время события транспорт не переключают; решение принимают до первого свистка

Читать по теме