SRT FAQ

admin

Сергей Корнеев
Команда форума
Параметры SRT

Вольный перевод статьи написанной Михаилом Гараниным.

SRT лучше RTMP?

Да, потому что:
- позволяет использовать разные кодеки - h264, HEVC (h265), mpeg2 и т.д. А RTMP работает только с h264;
- поддерживает многодорожечный звук (8-16 каналов звука в одном потоке). RTMP только 2 канала звука;
- использует современные способы для быстрой доставки данных через UDP даже при нестабильном соединении. RTMP использует TCP.

Что такое Drops, Losts и Latency?
Внутри себя SRT перед отправкой делит данные на маленькие пакеты, и каждый пакет весит 1316 байт.
Во время передачи пакеты могут теряться, т.к. UDP позволяет их терять. В этом случае SRT помечает пакет как потерянный (LOST). И пробует переотправить его снова и снова.
Время, которое SRT будет пытаться переотправить потерянные пакеты и есть Latency.

По умолчанию Lanency = 120 мс. Максимум задрать Latency можно до 5000мс - 5 секунд.

Что же случится если SRT не удастся отправить потерянный LOST пакет за отведенное время LATENCY?
Тогда этот пакет пометится как дропнутый - DROPPED и SRT забудет о его существовании. Такая вот трагедия пакетного масштаба.

LOST - потерянный пакет
DROP - умерший пакет
LATENCY - время, за которое потерянный пакет будут искать. Чем больше время, тем больше шансов.

ОК, я буду всегда юзать 5000мс. Ну да, только это время физически равно 5 секундам, поэтому сигнал будет поступать с задержкой в 5 секунд. Если не критично, то ок.
То есть LATENCY применяется ко всем пакетам - не только к потерянным LOST, следовательно этот параметр равен общей задержке потока.

Так что LATENCY - это компромисс между скоростью доставки потока и качеством картинки.
20vs300-png.96


Как же выбрать нужное значение LATENCY?
Оччень просто - заюзать специальный тест скорости - который покажет рекомендуемое значение в вашем случае.

Параметр LATENCY настраивается на обоих сторонах потока - и на отправителе и на получателе. SRT будет юзать НАИБОЛЬШЕЕ значение.
Например - SRTStreamer, OBS или vMix использует LATENCY = 100мс. А на SRTMiniServer стоит 300мс. SRT будет использовать 300мс для потока.

В SRTMiniServer значение LATENCY в настройках будет применено ко всем входам!
latency_setup-png.97



А вот где спрятано значение LATENCY если вы юзаете OBS.
obs_latency-png.98



PASSPHRASE и STREAM ID

STREAM ID - очень похоже на STREAM KEY - ключ трансляции в RTMP потоках. Оно работает как пароль (НЕ PASSPHRASE). Эта фича была внедрена в версию SRT 1.3.3 и позволяет по одному порту гнать много потоков с разными STREAM ID. Если ваш энкодер не поддерживает STREAM ID, то 1 - он допотопный, 2 - почитайте эту статью -

PASSPHRASE - это секретная фраза для шифрования вашего потока. При шифровании к общему битрейту потока сверху добавится около 20% траффика.
SRTMiniServer не поддерживает PASSPHRASE, т.к. клиенты того не хотят. Для настоящего шифрования проще использовать выделенный VPN канал.

СТАТЬЯ БУДЕТ ДОПОЛНЯТЬСЯ. ВОЗМОЖНО. угу.
 
Сверху Снизу