Skip to content

Synthetic source

The syntetic input is a built-in test signal generator: SMPTE bars with a running clock and a tone. It needs no external data and serves install verification, debugging, and load testing.

Configuration

The generator emits uncompressed frames (raw YUV and PCM). This is deliberate: the raw signal can be sent losslessly straight to SDI. To serve the stream over network protocols (and get the codec/quality variants you need), pair the generator with a transcoder:

streams:
  - name: syn
    inputs:
    - syntetic: {}
    transcoder:
      output:
      - source: !content video
        codec: !set h264
      - source: !content audio
        codec: !set aac
    segments: 6

Without a transcoder section the stream carries raw frames: a regular player cannot play it, but this is exactly the stream you need for SDI output.

Generator parameters (all optional, syntetic: {} gives a demo signal):

    - syntetic:
        video: !video
          rate:
            numerator: 30000     # fractional frame rates (NTSC) are supported
            denominator: 1001
        audio: !audio
          sample_rate: 48000
          channels: 2

Transport and codecs

This is a local generator with no network transport. It outputs YUV and PCM. For HLS/DASH and other network delivery protocols, encode to codecs they support, as shown above.

Parameters

Parameter Description
video Video generator !video. Specifying audio alone does not add video.
audio Audio generator !audio. Specifying video alone does not add audio.
video.rate Frame rate: numerator / denominator. An explicit !video {} defaults to 30 fps.
video.size Size {width: 1920, height: 1080} by default.
audio.sample_rate PCM sample rate, 48000 Hz by default.
audio.channels Channel count, 2 by default; clamped to 1–2.
audio.bitrate This field exists in the configuration but is unused by the PCM generator; set compressed audio bitrate in the transcoder.

If both video and audio are absent, the full demo signal is enabled: 1920×1080 at 25 fps and 48000 Hz stereo PCM. This differs from the frame rate default of an explicit video: !video {}.

Applying changes

Generator settings update while running without reopening the input. After changing parameters, check track composition and properties in stream statistics.

Timecode in the picture

Each frame's PTS is drawn into the luma band of the image and can be machine-read back. This makes it possible to measure end-to-end latency and find lost frames from the picture itself — handy when debugging the transcoder and protocols.

Next steps