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 вход не запрашивает.