Skip to content

DASH

media.ingest.dash

Описание

Sapsan принимает живой MPEG-DASH с удалённого сервера: обновляет MPD-манифест и загружает новые сегменты fMP4. Поддерживаются отдельное представление и лестница качеств.

Настройка

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

streams:
- name: source1
  inputs:
  - dash:
      url: https://origin.example.com/studio/manifest.mpd
      representation_mode: single

Параметры

Параметр Описание
url Адрес MPD-манифеста.
headers HTTP-заголовки запросов к источнику.
representation_bandwidth Целевой битрейт, бит/с: выбирается ближайшее представление снизу; без значения — старшее по bandwidth.
representation_mode single — одно представление (по умолчанию); ladder — вся лестница качеств.
skew_threshold_ms Допустимое расхождение качеств в миллисекундах; по умолчанию 500.
skew_policy report — продолжать приём и сообщать о расхождении (по умолчанию); fallback_to_single — перейти на одно представление.
connect_timeout_ms Таймаут установления HTTP-соединения, мс; по умолчанию 5000.
read_timeout_ms Таймаут получения тела HTTP-ответа, мс; по умолчанию 15000.
max_body_bytes Максимальный размер тела ответа, байты; по умолчанию 67 108 864 (64 МиБ).
peer_timeout_ms Таймаут отсутствия кадров, мс; применяется общий контроль состояния источника.
clear_keys Словарь KID → ключ CENC в шестнадцатеричном виде; KID также допускает запись UUID.

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

headers задаёт HTTP-заголовки авторизации. clear_keys задаёт пары KID/ключ для CENC. При отсутствии ключа зашифрованный источник отклоняется.

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

HTTP или HTTPS; плейлист/манифест и медиасегменты загружаются отдельными запросами.

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

  • H.264
  • HEVC / H.265
  • AV1
  • MPEG-2 Video
  • JPEG
  • AAC
  • AC-3
  • E-AC-3
  • MPEG Audio (Layer II / III)
  • Opus
  • G.711 A-law / μ-law

Это кодеки, которые вход извлекает из fMP4, а не список форматов декодирования. H.264 использует avc1/avc3, HEVC — hvc1/hev1, AV1 — av01 с av1C. Для MPEG-2 Video требуется mp4v с конфигурацией MPEG-2; это не обещание поддержки MPEG-4 Visual. JPEG передаётся дорожкой изображений. MPEG Audio определяется по esds или sample entry MP3; mp4a сам по себе не означает AAC. Для Opus используется Opus/dOps, для G.711 — alaw/ulaw. Контейнер и объявление дорожки должны соответствовать данным; наличие кодека в MPD не заменяет корректный init-сегмент.

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

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

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

Изменения передаются через API central. При изменении адреса источника или формата захват открывается заново; это может прервать приём на время подключения. После применения проверьте состояние входа и поступление кадров.

Счётчики

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

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

Dash

Поле Тип
segments counter
bytes counter
frames counter
manifest_reloads counter
discontinuities counter
segments_skipped counter
segments_gone counter
segments_cancelled counter
segments_gap counter
errors_manifest counter
errors_segment_network counter
errors_segment_status counter
errors_segment_decode counter
errors_decrypt counter
fragment_gaps counter
fragment_overlaps counter
fragment_seam_error_ms counter
media_time_drifts counter
edge_distance_ms counter
manifest_updated_at gauge
frames_emitted_at gauge
memory_bytes gauge

Прочее

Захват начинается с живого края. Поддерживаются динамические MPD и fMP4 с SegmentTemplate. Статические MPD, SegmentList и SegmentBase не принимаются. Лестница контролируется по расхождению временных шкал; лицензии DRM у серверов Widevine/PlayReady/FairPlay вход не запрашивает.

Что дальше