Блог StreamHouseналаштування srt

Як надсилати пряму трансляцію на SRT-адресу

SRT-приймачі потребують трохи більше даних, ніж RTMP: режим, хост і порт, а часто ще stream ID, парольну фразу й затримку. Пояснюємо, що означає кожна частина URL srt:// і як підключити трансляцію.

Приблизно 6 хв читання

На цій сторінці

Щоб надіслати пряму трансляцію на SRT-адресу, отримайте адресу srt:// від приймальної сторони, з'ясуйте, яка сторона слухає, а яка викликає, і узгодьте stream ID, парольну фразу та затримку, яких очікує приймач. Потім відкрийте UDP-порт приймача, запустіть відправника й переконайтеся, що відео надходить, перш ніж на це покладатися.

Дрібні розбіжності ламають SRT-налаштування, тож узгоджуйте кожну деталь. Уперше працюєте з цим протоколом? Почніть зі статті про те, що таке SRT-стрімінг.

Головне

  • Одна сторона SRT-з'єднання слухає на UDP-порту, а інша її викликає.
  • URL srt:// містить хост і порт, а також параметри на кшталт mode, streamid і passphrase.
  • Більшість збоїв — це закритий порт, два caller або розбіжність у парольній фразі чи stream ID.
  • Тестуйте локально, перш ніж спрямовувати трансляцію 24/7 на робочий приймач.

Хто насправді використовує SRT-адреси

Зазвичай SRT не надсилають на популярні соціальні платформи. SRT-приймачі — це, як правило, системи, якими керує мовник, компанія чи партнер:

  • Ефірний плейаут і продакшн. Студії приймають вхідні сигнали через SRT в апаратні декодери, мікшери та системи плейауту.
  • Медіасервери. Власні та комерційні медіасервери приймають SRT і перепаковують його для плеєрів, запису чи подальшої дистрибуції.
  • Передача партнерам. Канал, що постачає програми мережі, екранам майданчиків чи дистриб'ютору, часто доставляє їх через SRT.
  • Хмарні відеосервіси. Деякі професійні платформи пропонують SRT-ingest поруч із RTMP.

У кожному випадку оператор приймача дає вам дані для підключення, які треба відтворити точно. Якщо на тому боці є лише RTMP, скористайтеся натомість посібником для власного RTMP-сервера.

Режими caller, listener і rendezvous

Кожне SRT-з'єднання потребує однієї сторони, яка чекає, і однієї, яка набирає.

  • Listener прив'язується до UDP-порту й чекає на з'єднання. Йому потрібна доступна адреса та відкритий порт у файрволі.
  • Caller підключається до хоста й порту listener і працює з-за більшості файрволів, бо з'єднання вихідне.
  • Rendezvous передбачає, що обидві сторони одночасно викликають одна одну на погоджених портах, що може допомогти, коли жодна зі сторін не приймає вхідний трафік.

Режим не пов'язаний з тим, у який бік іде відео. Коли хмарний сервіс чи енкодер доставляє сигнал на ваш сервер, типова схема — відправник як caller, приймач як listener.

Класична помилка — два caller або два listener. Обидві сторони чекають без зрозумілої помилки, тож узгодьте режим з оператором приймача.

Розбираємо URL srt:// по частинах

SRT-адреса зазвичай виглядає приблизно так:

srt://ingest.example.com:9000?mode=caller&streamid=channel-main&passphrase=YOUR-LONG-SECRET

  • Хост і порт. Ім'я хоста чи IP-адреса приймача та UDP-порт, на якому він слухає. Універсального порту за замовчуванням немає, тож використовуйте той, який вам дали.
  • mode. Роль вашої сторони: caller, listener або rendezvous.
  • streamid. Ідентифікатор, який деякі приймачі використовують для маршрутизації чи авторизації сигналу, подібно до ключа трансляції. Його формат залежить від приймача.
  • passphrase. Спільний секрет для AES-шифрування, зазвичай завдовжки від 10 до 79 символів. На обох кінцях він має збігатися точно.
  • pbkeylen. Необов'язкова довжина ключа — 16, 24 або 32 байти, тобто AES-128, 192 чи 256.
  • latency. Буфер відновлення. Деякі інструменти приймають мілісекунди, а програми на базі FFmpeg зазвичай очікують мікросекунди, тож перевірте, перш ніж копіювати число з іншого налаштування.

Підготовка приймальної сторони

Якщо приймач ведете ви самі, підготуйте його до того, як щось надсилатиметься:

  1. Налаштуйте listener на фіксованому UDP-порту у вашому медіасервері, декодері чи програмі плейауту.
  2. Відкрийте цей UDP-порт у файрволі сервера та в будь-якій хмарній групі безпеки чи роутері перед ним. Правила для TCP на SRT не поширюються.
  3. Оберіть парольну фразу і, якщо ваша програма маршрутизує за stream ID, ідентифікатор для цього сигналу.
  4. Оберіть затримку, що відповідає маршруту; довгим або нестабільним маршрутам потрібно більше.
  5. Узгодьте формат. SRT зазвичай переносить MPEG-TS з відео H.264 і аудіо AAC, тож переконайтеся, що приймач це приймає.
  6. Протестуйте локально, надіславши короткий сигнал з OBS чи FFmpeg з іншого комп'ютера.

Якщо приймач приймає лише дозволені адреси, додайте й адресу відправника.

Усунення проблем, коли SRT-з'єднання не стартує

Помилки SRT часто розмиті, тож діагностуйте за симптомами:

  • З'єднання завершується за тайм-аутом. UDP-порт закритий чи не переадресований, хост неправильний або обидві сторони в однаковому режимі.
  • З'єднання відхилено. Зазвичай це розбіжність у парольній фразі, парольна фраза, задана лише з одного боку, або stream ID, який приймач не розпізнає.
  • Підключається, а потім смикається чи обривається. Затримка замала для мережевого маршруту або пропускна здатність нижча за бітрейт плюс накладні витрати на повторні передачі. Спершу збільште затримку.
  • Підключається, але немає ні картинки, ні звуку. Приймач очікує інший контейнер чи кодек, і його логи зазвичай кажуть, який саме.

Щойно все запрацює, запишіть кожне значення, з яким вдалося підключитися. Ширші звички зі статті про те, як тримати трансляцію 24/7 онлайн, стосуються й SRT-адрес.

Як додати SRT-адресу до трансляції в StreamHouse

У StreamHouse SRT — це власна платформа поруч із вбудованими. Вставте повний URL srt:// приймача разом із параметрами, яких він вимагає, наприклад парольною фразою. Якщо stream ID чи ключ вам дали окремо, введіть його в поле stream ID, і StreamHouse додасть його як параметр streamid, якщо URL ще його не містить. Якщо режим в URL не вказано, StreamHouse підключається як caller, тож ваш приймач має слухати.

Надсилайте на свій приймач зациклений плейлист заздалегідь закодованих відео цілодобово або додайте SRT поруч із YouTube, Twitch та іншими RTMP-платформами в тій самій трансляції, не займаючи додаткових слотів. Усе працює в хмарі й автоматично перепідключається після збоїв. Посібник для початківців проведе вас через першу трансляцію.

Поширені запитання

Який порт використовує SRT?

Єдиного стандартного порту немає. Listener може використовувати будь-який вільний UDP-порт, і оператор приймача скаже вам, який саме. Цей порт має бути відкритий для UDP-трафіку в кожному файрволі між відправником і listener.

Мій SRT-відправник має бути caller чи listener?

Зазвичай відправник викликає, а приймач слухає, бо приймачі, як правило, мають фіксовані адреси й відкриті порти, а відправники стоять за файрволами. Технічно працює будь-який варіант, якщо сторони використовують протилежні режими або обидві — rendezvous.

Яку затримку встановити для SRT-стрімінгу?

Типова відправна точка — кілька значень часу кругового проходження між відправником і приймачем, зі збільшенням для каналів із втратами чи на великих відстанях. Почніть з обережного значення, стежте за втраченими пакетами, а потім поступово зменшуйте. Перевірте, чи ваш інструмент очікує мілісекунди, чи мікросекунди.

Чи можна надсилати SRT і RTMP з однієї трансляції?

Так, якщо ваш інструмент підтримує кілька виходів. Хмарний сервіс може одночасно доставляти RTMP на публічні платформи та SRT на приватний приймач без додаткового вивантаження з вашого з'єднання. Кожній платформі все одно потрібні власні правильні дані.

Що далі