Skip to content

SDI

media.ingest.sdi

Description

Sapsan receives uncompressed video and embedded audio from SDI cards. Supported families:

  • DekTec

  • DeckLink

  • AJA

  • Streamlabs

  • Softlab

  • Magewell

  • Acasis

12G-SDI is a separate ingest extension. SDI output and ASI ingest have separate pages.

Configuration

Configure the stream through the central API. Stream configuration fragment:

streams:
- name: source1
  inputs:
  - sdi:
      device: /dev/v4l/by-path/pci-0000:5e:00.0-video-index0
      pixel_format: v210

Parameters

Field Purpose
device Required V4L2 capture device path
standard Optional standard, such as hd1080i50 or uhd2160p50. Detected from the signal by default; set explicitly when the driver cannot detect it before capture starts
pixel_format 8 bit, default; v210: 10 bit
audio Audio track list; defaults to stereo from channels 1–2
ad_marks Receive SCTE-104 markers from VANC; enabled by default
timecode Use ATC timecode; enabled by default
peer_timeout_ms Frame wait timeout, 30,000 ms by default

Transport options

Capture requires a card driver exposing V4L2 and device access for Sapsan. Use a stable /dev/v4l/by-path/… path.

Supported codecs

  • UYVY 4:2:2 (8-bit)
  • v210 4:2:2 (10-bit)
  • PCM
  • AC-3 (SMPTE ST 337)
  • E-AC-3 (SMPTE ST 337)

UYVY and v210 are uncompressed pixel formats, and PCM is uncompressed audio; they are not H.264/HEVC video codecs. Configure transcoding for compressed output. AC-3/E-AC-3 are extracted from an audio channel pair only with sample_type: smpte337; SMPTE ST 337 describes the packaging, not a separate audio codec.

Error handling

When the signal disappears, the input waits for it within peer_timeout_ms; after the timeout, the failure cause is no_signal. A video standard change restarts capture with the new parameters. For a busy device, check the port direction and other processes using it.

The input uses the shared retry and failover mechanisms. If the device format is incompatible, check that a compatible card driver is installed.

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.

Sdi

Field Type
line_state gauge
producer_restarts counter
producer_restarts_wrong_standard counter
producer_restarts_silence counter
datagrams counter
boundary_loss counter
crc_errors counter
unsupported_codec counter
vanc_unknown counter
vanc_cdp counter
vanc_cdp_pairs counter
ad_marks counter
errors_ad_marks_dropped counter
warning_ad_mark_descriptors_dropped counter
timecode_missing counter
timecode_rejected counter
timecode_untrusted counter
timecode_jumps counter

Other details

Audio tracks

Position in audio sets the stream audio track number. channels lists SDI audio channels from 1 to 16 in the desired order; lang is an ISO 639-2 language code. A channel cannot belong to two tracks. An empty list selects stereo from the first pair.

sample_type: pcm selects uncompressed audio. If a channel carries data instead of PCM, that channel is replaced with silence in the PCM track.

AC-3 and E-AC-3 over SMPTE 337

For compressed audio in an SDI channel pair, set sample_type: smpte337 and exactly two channel numbers. The input extracts AC-3 or E-AC-3 without decoding to PCM. Unsupported types, including Dolby E, and ST 337 20-/24-bit modes are counted in sdi_unsupported_codec_total.

audio:
  - channels: [1, 2]
    lang: rus
  - channels: [3, 4]
    sample_type: smpte337
    lang: rus

VANC ancillary data

  • OP-47 and VBI teletext feed the teletext track.

  • SCTE-104 is converted into markers on the shared scte35 track; see SCTE-35 for downstream delivery.

  • CDP (CEA-608/708) is parsed and counted; it does not produce a separate subtitle track.

  • ATC timecode is used when timecode is enabled.

  • Unknown DID/SDID pairs are counted.

Ingest and output are separate features. Output needs an output port; ASI has a separate page.

Next steps