Skip to content

SRT

media.ingest.srt

Описание

Sapsan сам подключается к удалённому SRT-серверу и забирает MPEG-TS в режиме caller. Для этого вход открывает произвольный локальный UDP-порт; он не относится к listeners и не является портом публикации. host и port задают удалённый сервер. Входящие подключения источников описаны в публикации SRT.

Настройка

Настройка выполняется через API central. Фрагмент конфигурации стрима:

streams:
- name: source1
  inputs:
  - srt:
      host: origin.example.com
      port: 9000
      stream_id: '#!::r=studio,m=request'
      latency_ms: 120
      peer_timeout_ms: 5000

Параметры

Параметр Описание
host IP или DNS удалённого сервера
port его UDP-порт.
stream_id stream_id передаётся серверу при подключении.
passphrase согласованный пароль шифрования.
latency_ms приёмная задержка и бюджет восстановления потерь.
handshake_timeout_ms таймаут соединения
peer_timeout_ms таймаут отсутствия данных.

Аутентификация

Пароль passphrase должен совпадать с настройкой отправителя. stream_id используется по правилам удалённого сервера; токен доступа передаётся в нём, если сервер использует такую схему.

Варианты транспорта

  • UDP — клиентское подключение к удалённому SRT listener.

  • ACK/ACKACK — подтверждение доставки.

  • NAK/ARQ — запрос и приём повторов.

  • Буфер задержки — упорядочивание пакетов.

  • Too-late drop — отбрасывание опоздавших пакетов.

  • Keepalive — контроль соединения.

Поддерживаемые кодеки

  • 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-разборщик не выдаёт его кадры.

Поведение при ошибках

Состояние входа и причина отказа доступны в статистике стрима. При обрыве или отсутствии кадров действует общий механизм повторных подключений и переключения на резерв.

Применение изменений

Смена адреса, порта, passphrase или stream_id перезапускает источник; смена только таймаутов применяется на лету.

Счётчики

Ниже — точные имена полей протокольной статистики. counter накапливает события, gauge показывает текущее значение; список включает оба вида. Нулевые поля могут отсутствовать в ответе. API и Prometheus используют разные проекции: весь список не следует ожидать в одном ответе Admin API. Доступ к детализации зависит от лицензии на счётчики.

Общие показатели входа: bytes, frames, errors, warnings. Они суммируют данные протокола, поэтому складывать их с протокольными счётчиками повторно не нужно.

Srt

Поле Тип
incoming_bytes counter
outgoing_bytes counter
incoming_packets counter
outgoing_packets counter
incoming_lost_packets counter
outgoing_lost_packets counter
incoming_retransmitted_packets counter
outgoing_retransmitted_packets counter
incoming_recovered_packets counter
missing_packets counter
incoming_ack_packets counter
outgoing_ack_packets counter
incoming_ackack_packets counter
outgoing_ackack_packets counter
incoming_drop_request counter
incoming_drop_requests counter
outgoing_drop_requests counter
incoming_nak_packets counter
outgoing_nak_packets counter
outgoing_drop_too_late_packets counter
incoming_drop_late_seq counter
incoming_drop_late_time counter
incoming_drop_far_time counter
incoming_drop_too_late counter
incoming_drop_buffer_full counter
loss_tracking_overflows counter
keepalive_timeouts counter
receive_buffer_size gauge
send_buffer_size gauge
rtt_us gauge
rtt_var_us gauge
source_clock_drift_us gauge
memory_bytes gauge

Mpegts

Поле Тип
bytes counter
sync_bytes counter
packets counter
frames counter
errors counter
errors_ts_pat counter
errors_ts_service_lost counter
broken counter
memory_bytes gauge

MpegtsPid

Поле Тип
pid label
pnr label
packets counter
frames counter
empty_packets counter
errors_adaptation_broken counter
errors_ts_scrambled counter
errors_ts_pmt counter
errors_ts_cc counter
errors_ts_tei counter
errors_ts_psi_checksum counter
errors_pid_lost counter
broken_pes_count counter
broken_pes_sum counter
time_corrections counter
corrected_backward_pts counter
discarded_buffer_count counter
discarded_buffer_sum counter
fillers_count counter
fillers_sum counter
unpaired_fields counter
warning_invalid_sibling_frames counter
padding_pes_count counter
padding_pes_sum counter
orphan_pes_count counter
dts_goes_backwards counter
dts_jump_forward counter
too_large_dts_jump counter
pcr_resync counter
pcr_jitter_ok_0 counter
pcr_jitter_ok_500ns counter
pcr_jitter_fail_500us counter
pcr_jitter_fail counter
hrd_buffer_min gauge
hrd_buffer_max gauge
hrd_buffer_underrun counter
ad_marks counter
errors_ad_marks_dropped counter
warning_ad_mark_descriptors_dropped counter

Прочее

Вместе с видео и звуком MPEG-TS передаёт:

  • DVB-телетекст.

  • KLV-метаданные.

  • Метки SCTE-35.

  • Языковые дескрипторы дорожек и дескрипторы DVB subtitles из PMT.

Что дальше