Skip to content

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.

Next steps