DASH¶
media.ingest.dash
Description¶
Sapsan ingests live MPEG-DASH from a remote server by refreshing the MPD manifest and fetching new fMP4 segments. It supports a single representation or a rendition ladder.
Configuration¶
Configure the stream through the central API. Stream configuration fragment:
streams:
- name: source1
inputs:
- dash:
url: https://origin.example.com/studio/manifest.mpd
representation_mode: single
Parameters¶
| Parameter | Description |
|---|---|
url |
MPD manifest URL. |
headers |
HTTP headers for requests to the source. |
representation_bandwidth |
Target bitrate in bit/s: selects the closest representation below it; without a value, selects the highest bandwidth. |
representation_mode |
single — one representation (default); ladder — the complete rendition ladder. |
skew_threshold_ms |
Allowed rendition skew in milliseconds; default 500. |
skew_policy |
report — continue ingest and report skew (default); fallback_to_single — switch to one representation. |
connect_timeout_ms |
HTTP connection timeout in milliseconds; default 5000. |
read_timeout_ms |
HTTP response body timeout in milliseconds; default 15000. |
max_body_bytes |
Maximum response body size in bytes; default 67,108,864 (64 MiB). |
peer_timeout_ms |
Frame inactivity timeout in milliseconds; uses the common source health mechanism. |
clear_keys |
Hexadecimal KID → CENC key map; KIDs also accept UUID notation. |
Authentication¶
headers supplies HTTP authorization headers. clear_keys supplies KID/key pairs for CENC. An encrypted source without a key is rejected.
Transport options¶
HTTP or HTTPS; playlists/manifests and media segments use separate requests.
Supported codecs¶
- 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
These are codecs the input extracts from fMP4, not a decoder capability list. H.264 uses avc1/avc3, HEVC uses hvc1/hev1, and AV1 uses av01 with av1C. MPEG-2 Video requires mp4v with MPEG-2 configuration; this does not imply MPEG-4 Visual support. JPEG is an image track. MPEG Audio is identified through esds or an MP3 sample entry; mp4a alone does not mean AAC. Opus uses Opus/dOps, and G.711 uses alaw/ulaw. Container declarations must match the data; a codec declaration in an MPD does not replace a valid initialization segment.
Error handling¶
Input state and failure cause are available in stream statistics. Connection loss or missing frames uses the shared retry and failover mechanisms.
Applying changes¶
Apply changes through the central API. Changing the source address or format reopens capture and may interrupt ingest while connecting. Check input state and arriving frames afterwards.
Counters¶
The tables give exact protocol statistics field names, including event counters and current-value gauges. Zero fields may be omitted. API and Prometheus expose different projections; the full list is not necessarily present in one Admin API response. Detailed statistics depend on the counter license.
Common input totals: bytes, frames, errors, warnings. They aggregate protocol data and must not be added to protocol counters again.
Dash¶
| Field | Type |
|---|---|
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 |
Other details¶
Capture starts at the live edge. Dynamic MPDs and fMP4 with SegmentTemplate are supported. Static MPDs, SegmentList and SegmentBase are not accepted. Ladder timelines are checked for skew; the input does not request DRM licenses from Widevine/PlayReady/FairPlay servers.