Публикация SRT¶
media.publish.srt
Источник сам подключается к Sapsan и передаёт стрим. Это публикация; клиентский захват с удалённого сервера относится к media.ingest.
Это базовая функция публикации на одном сервере, без кластерной маршрутизации. Для работы с несколькими серверами предназначена отдельная функция SRT Streamkey: она будет выбирать стрим и разрешать публикацию по переданному секретному ключу. Эта функция планируется и пока не реализована.
Настройка¶
streams:
- name: studio
srt_publish:
port: 9000
passphrase: verysecretpass
latency_ms: 120
Адрес отправителя: srt://server:9000?passphrase=verysecretpass. Порт принадлежит конкретному стриму. srt_publish подразумевает вход publish; записывать его отдельно не требуется. latency_ms задаёт приёмную задержку, по умолчанию 120 мс. streamid не выбирает стрим: его определяет порт.
Аутентификация¶
Допуск и шифрование определяются passphrase стрима (10–79 байт). Токены auth.publish_tokens и streamid не участвуют в допуске SRT-публикации. Без passphrase порт принимает незашифрованные соединения.
Транспорт¶
MPEG-TS через SRT/UDP. Порт srt_publish.port принимает соединения отправителя.
Поддерживаемые кодеки¶
- H.264
- HEVC / H.265
- AV1
- JPEG 2000
- MPEG-2 Video
- AAC (ADTS)
- AC-3
- E-AC-3
- MPEG Audio (Layer II / III)
- SMPTE ST 302M
MPEG-TS — контейнер, а SRT, RIST, UDP и HTTP — способы его доставки. Перечень относится к извлечению кадров из MPEG-TS, а не к декодированию или поддержке этих кодеков плеером.
AV1 распознаётся по stream_type 0x06 и регистрационному дескриптору AV01 в PMT; один PES должен содержать целый temporal unit. MPEG-TS с AV1 без этой сигнализации не поддерживается. Для AAC реализован разбор ADTS; наличие stream_type 0x11 само по себе не означает поддержку LATM. Opus может быть распознан в PMT, но текущий PES-разборщик не выдаёт его кадры.
Поведение при ошибках¶
Одновременно стрим принимает одну активную публикацию. При завершении соединения источник становится недоступным, и применяются общие правила резервирования. Повторное подключение инициирует отправитель.
Если выше publish расположен работающий источник, RTMP- или SRT-кодер принимается как резерв. Возврат основного источника через чистое окно сохраняет кодер подключённым резервом. Второму кодеру отказывают, даже пока первый в резерве или ещё не передаёт пригодных кадров. При переходе на видеопубликацию сервер ждёт следующий ключевой кадр; для audio-only — пригодный аудиокадр. Действуют обычные таймауты источника и транспорта.
streams:
- name: studio
srt_publish:
port: 9000
passphrase: verysecretpass
inputs:
- rtsp:
url: rtsp://camera/main
- publish: {}