RIST¶
media.ingest.rist
Описание¶
Приём MPEG-TS по RIST с восстановлением сетевых потерь повторной передачей. Поддерживаются Simple Profile и Main Profile.
Настройка¶
Настройка выполняется через API central. Фрагмент конфигурации стрима:
streams:
- name: source1
inputs:
- rist:
host: 0.0.0.0
port: 5000
profile: simple
buffer_ms: 1000
Параметры¶
| Параметр | Описание |
|---|---|
host |
локальный адрес или группа multicast |
port |
чётный медиапорт Simple Profile. |
buffer_ms, reorder_ms, max_retries |
buffer_ms (1000), reorder_ms (70), max_retries (7) управляют восстановлением. |
peer_timeout_ms |
таймаут источника. |
multicast_interface |
интерфейс группы. |
profile |
simple или main. |
tunnel_port, tunnel_role, encryption_passphrase, allow_insecure_encryption |
Для Main: tunnel_port, tunnel_role (client/server, для входа по умолчанию server), encryption_passphrase, allow_insecure_encryption (по умолчанию false). |
Аутентификация¶
Main Profile поддерживает общий PSK через encryption_passphrase. Simple Profile шифрования не предоставляет.
Варианты транспорта¶
-
Simple Profile — RTP на чётном порту P, RTCP на P+1.
-
Main Profile — GRE-туннель на
tunnel_port. -
ARQ — повторная передача в пределах приёмного буфера.
Поддерживаемые кодеки¶
- 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-разборщик не выдаёт его кадры.
Поведение при ошибках¶
Состояние входа и причина отказа доступны в статистике стрима. При обрыве или отсутствии кадров действует общий механизм повторных подключений и переключения на резерв.
Применение изменений¶
Изменения передаются через API central. При изменении адреса источника или формата захват открывается заново; это может прервать приём на время подключения. После применения проверьте состояние входа и поступление кадров.
Счётчики¶
Ниже — точные имена полей протокольной статистики. counter накапливает события, gauge показывает текущее значение; список включает оба вида. Нулевые поля могут отсутствовать в ответе. API и Prometheus используют разные проекции: весь список не следует ожидать в одном ответе Admin API. Доступ к детализации зависит от лицензии на счётчики.
Общие показатели входа: bytes, frames, errors, warnings. Они суммируют данные протокола, поэтому складывать их с протокольными счётчиками повторно не нужно.
Rist¶
| Поле | Тип |
|---|---|
incoming_packets |
counter |
incoming_lost_packets |
counter |
incoming_recovered_packets |
counter |
incoming_unrecovered_packets |
counter |
incoming_duplicate_packets |
counter |
incoming_retransmitted_packets |
counter |
incoming_reordered_packets |
counter |
incoming_late_packets |
counter |
incoming_invalid_datagrams |
counter |
incoming_foreign_ssrc_packets |
counter |
incoming_foreign_profile_packets |
counter |
incoming_undecryptable_packets |
counter |
incoming_encryption_mismatch_packets |
counter |
source_restarts |
counter |
outgoing_nak_packets |
counter |
outgoing_packets |
counter |
outgoing_bytes |
counter |
outgoing_retransmitted_packets |
counter |
incoming_nak_packets |
counter |
retransmits_denied_cache |
counter |
retransmits_denied_rate |
counter |
cache_evicted_by_ceiling |
counter |
tunnel_keepalives_sent |
counter |
tunnel_keepalives_received |
counter |
tunnel_discarded_unknown_version |
counter |
tunnel_discarded_bad_encapsulation |
counter |
tunnel_discarded_unroutable |
counter |
tunnel_discarded_queue_full |
counter |
tunnel_discarded_foreign_profile |
counter |
rtt_us |
gauge |
tunnel_up |
gauge |
tunnel_silence_ms |
gauge |
tunnel_streams |
gauge |
tunnel_insecure_iv_allowed |
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.