Небольшое FAQ про SRT
Вольный перевод статьи https://srtminiserver.com/srt_info/ написанной Михаилом Гараниным.
Параметры SRT
Вольный перевод статьи https://srtminiserver.com/srt_info/ написанной Михаилом Гараниным.
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 – это компромисс между скоростью доставки потока и качеством картинки.
Как же выбрать нужное значение LATENCY?
Оччень просто – заюзать специальный тест скорости – https://srtminiserver.com/speedtest/ который покажет рекомендуемое значение в вашем случае.
Параметр LATENCY настраивается на обоих сторонах потока – и на отправителе и на получателе. SRT будет юзать НАИБОЛЬШЕЕ значение.
Например – SRTStreamer, OBS или vMix использует LATENCY = 100мс. А на SRTMiniServer стоит 300мс. SRT будет использовать 300мс для потока.
В SRTMiniServer значение LATENCY в настройках будет применено ко всем входам!
А вот где спрятано значение LATENCY если вы юзаете OBS.
PASSPHRASE и STREAM ID
STREAM ID – очень похоже на STREAM KEY – ключ трансляции в RTMP потоках. Оно работает как пароль (НЕ PASSPHRASE). Эта фича была внедрена в версию SRT 1.3.3 и позволяет по одному порту гнать много потоков с разными STREAM ID. Если ваш энкодер не поддерживает STREAM ID, то 1 – он допотопный, 2 – почитайте эту статью – https://srtminiserver.com/hwenc/
PASSPHRASE – это секретная фраза для шифрования вашего потока. При шифровании к общему битрейту потока сверху добавится около 20% траффика.
SRTMiniServer не поддерживает PASSPHRASE, т.к. клиенты того не хотят. Для настоящего шифрования проще использовать выделенный VPN канал.