SRT передає відео через звичайний інтернет і відновлює втрачені пакети, тому його беруть для виїздів, віддалених студій і доставки в ЦОД. Нижче — як зібрати шлюз на одному Windows-сервері: прийняти SRT, за потреби перевести в UDP для локальної мережі й роздати на кілька адрес без перекодування.
Хто кого викликає: listener і caller
У SRT одна сторона чекає з’єднання (listener), друга його ініціює (caller). Третій режим, rendezvous, — коли обидві сторони за NAT і стукають одна до одної одночасно.
Звичне розташування для шлюзу:
- вхід — listener. Шлюз слухає UDP-порт, студія чи виїзний комплект підключається як caller. Студії не потрібна біла IP-адреса, лише шлюзу;
- вихід — caller. Шлюз сам підключається до наступної ланки: ЦОД, CDN чи плейауту.
На сервері з listener відкрийте вхідний UDP-порт у брандмауері Windows і на маршрутизаторі. SRT працює поверх UDP, тому правило для TCP не допоможе.
Затримка
Параметр latency — запас часу, за який приймач встигає перезапросити втрачений пакет. В EasyCaster за замовчуванням 120 мс: цього досить для каналу в межах міста. Для мобільного інтернету чи іншої країни починайте з чотирьох RTT (час відгуку ping до віддаленої сторони) і збільшуйте, якщо картинка розсипається. Більша затримка — стабільніший потік, але пізніше зображення.
Шифрування
Задайте однаковий пароль (passphrase, від 10 до 79 символів) і довжину ключа AES — 16, 24 або 32 байти — на обох кінцях. Якщо паролі не збігаються, з’єднання не встановиться. В журналах програми й на знімках екрана для звітів про помилки пароль приховано.
Поле streamid допомагає віддаленому серверу зрозуміти, який це потік, якщо він приймає кілька на одному порту. Його в журналах видно — так простіше шукати проблему.
SRT ↔ UDP для локальної мережі
Кодери, мультиплексори й старі приймачі в апаратній часто розуміють лише UDP або multicast. Шлюз приймає SRT з інтернету й віддає той самий транспортний потік у локальну мережу як udp://239.x.x.x:порт — без перекодування, тож процесор майже не навантажено. Працює й навпаки: UDP з апаратної — в SRT до ЦОД.
Одна точка — багато адрес
Коли той самий потік треба віддати в кілька місць — резервний ЦОД, CDN, YouTube, — додайте модуль «Ретранслятор». Він бере один вхід і розсилає копії на RTMP, SRT і UDP без перекодування. Якщо одна адреса недоступна, решта працюють далі.
Що, якщо зв’язок пропав
Обрив SRT-з’єднання для модуля — звичайний збій: програма перезапускає його з паузою, що зростає від 2 до 60 секунд, а після 5 хвилин стабільної роботи лічильник скидається. Можна задати резервне джерело: після другої невдалої спроби модуль переходить на нього, а через 5 хвилин стабільної роботи повертається на основне.
Як це зробити в EasyCaster Transcoder
- Додайте модуль «SRT-шлюз».
- Вхід:
srt://0.0.0.0:9000, режим listener. Вихід: адреса наступної ланки, режим caller, абоudp://239.1.1.1:1234для локальної мережі. - Задайте затримку, пароль і довжину ключа так само, як на віддаленій стороні.
- Запустіть модуль і перевірте вихід вбудованим плеєром.
Модуль «SRT-шлюз» доступний у платних редакціях. У безкоштовній Free є три модулі «Користувацький процес» — у них можна запустити такий самий міст власною командою FFmpeg.