Skip to main content

Pattern sources

Choose File → Open Stream → Source type → Pattern to generate video independently for that stream. Choose SMPTE bars, a moving ball, checkerboard, snow, or a solid color. Set the resolution and FPS explicitly; resizing the window does not change the generated video.

The default is 1280 × 720 at 30 FPS, H.264 at 2 Mbps VBR, a keyframe every 60 frames, and Auto acceleration. Enter the frame rate directly: 29.97 uses the exact 30000/1001 rate. In the Video tab, enable Show elapsed and absolute time and Show frame count independently. Both are off by default and appear in both preview and encoded output when enabled. The time overlay shows two smaller lines: elapsed time (Elapsed: 00:00:12.345) and absolute UTC (UTC: 2026-09-24 10:20:12.345678Z). Their font scales with the source video resolution (48 pixels at 1280 × 720), with a width limit to keep timestamps compact on portrait video. The time overlay uses Sans with a shaded background. The frame counter starts at zero.

Choose CBR and set Video bitrate, or choose VBR and set Target bitrate and Max bitrate in kbps. Max bitrate must be at least the target. Encoder support for an explicit VBR maximum varies; unsupported encoders use their available target-bitrate behavior.

Choose H.264, H.265, or AV1. Auto chooses a compatible encoder within that codec. Hardware Required fails if compatible hardware is unavailable; Software uses a software encoder. AV1 never silently changes to another codec.

Use Original source recording with MP4 for any of the three codecs, or MPEG-TS for H.264/H.265. Pattern recordings are single files. MP4 contains video only; MPEG-TS also contains generated KLV when enabled. Original source recasting supports UDP, SRT, WebRTC/WHIP, and LL-HLS for H.264 and H.265 Pattern sources. AV1 networking is not supported. Recording, LL-HLS, and passthrough recasting share the stream's configured encoder. WebRTC Transcode uses the selected WebRTC output codec and an additional encoder; use Transcode for H.265 sources. LL-HLS supports MPEG-TS and fMP4 segments, with KLV carried in MPEG-TS or the fMP4 metadata sidecar. WebRTC uses its selected KLV data-channel mode.

When switching to Pattern, incompatible inherited Original-source Recast output is turned off, while its destination settings are retained. Original-source recording keeps compatible MP4/MPEG-TS settings and otherwise switches to MP4. Compatible Recast destinations remain enabled, including WebRTC and LL-HLS. Choose H.264 or H.265 for network output. Any setting that prevents opening the stream is explained beside the Open Stream button, including errors on another tab.

Source and encoder changes take effect through stopping and reopening the stream. Each saved stream retains its own Pattern settings. Selecting another stream, hiding preview, or resizing the window does not change the source settings.

The Pattern controls and Session media details show the actual encoder, hardware or software operation, memory path, produced/dropped counts, fallback reason, and encoder errors. Output errors remain available through recording/recast status. Dropped counts include subscriber queue drops and are not a count of unique lost source frames when multiple subscribers are attached.

For Pattern, the Flywheel tab is disabled and both Recast and Recorder are fixed to Original source. Restored settings that previously selected Flywheel are converted to Original source. Pattern does not generate audio.

Video and KLV tabs​

Below the Pattern URL, Video contains the pattern, codec, resolution, frame rate, bitrate, encoder controls, and time and frame-count overlay switches. KLV configures synthetic MISB ST 0601 data.

Generate synthetic data is off by default, including for older saved Patterns. Enable it to make source KLV available in the KLV window, callbacks, and normal source metadata consumers without starting a Recorder or Recast output.

  • PID defaults to 258; valid values are 32–8186 excluding video PID 257.
  • KLV Type defaults to SYNC. Its packet PTS matches the selected video frame exactly in MPEG-TS output. ASYNC packets have no PES timestamp.
  • Add to every frame defaults to on. One packet accompanies every output frame, including at fractional video frame rates.
  • Include pattern diagnostics in KLV defaults to off. Enable it to add VMTI frame identity, timestamp and dimensions, RVT Frame Code, and the exact source frame rate. This requires a template with ST 0601 revision 13 or newer.
  • With every-frame mode off, Rate selects 1–60 Hz, no higher than video FPS. Packets accompany selected frames; non-divisible rates use varying frame gaps. The previous Rate value is retained while hidden.
  • Edit synthetic KLV fields opens the shared validated JSON template editor. The default includes PATTERN in tag 11. Timestamp and checksum are generated automatically. Editing a Pattern template does not modify Flywheel outputs.

Settings are saved in the Pattern URL and take effect when the source is reopened. The editable URL and Recent Streams list omit KLV parameters for readability; the KLV controls retain and update those settings. Pasting a full Pattern URL with KLV parameters is still supported. Video and KLV use a shared output time origin. If a target drops a frame or waits for a keyframe, it also skips that frame's metadata. Metadata is never reassigned to another frame. HLS recording and AV1 MPEG-TS output remain unsupported.

Pattern diagnostics​

With synthetic data and diagnostics enabled, each selected packet includes:

ST 0601 locationValue
74 (VMTI), tag 2Absolute microsecond timestamp, identical to main tag 2
74 (VMTI), tag 7Source video frame index, starting at zero
74 (VMTI), tags 8 and 9Source width and height in pixels
73 (RVT), tag 7Elapsed source time counted at 60 Hz, wrapping at 32 bits
127Sensor Frame Rate Pack with the exact FPS numerator and denominator

VMTI is included even without targets. Newly generated nested sets use ST 0903 revision 6 and ST 0806 revision 4. Valid explicit nested revisions and unrelated template fields are preserved. Live diagnostic values replace matching fields only in outgoing packets; the saved template is unchanged.

At reduced KLV rates, VMTI reports the actual associated video frame index, not the number of metadata packets. The frame counter, both time-overlay lines, and metadata share one source timeline and UTC anchor. Restarting the source resets elapsed time and frame index and establishes a new UTC anchor. The clock is not resampled for each packet. RVT's 60 Hz counter can differ from the video frame index when video FPS differs from 60.

The time and counter overlays remain optional and independent of diagnostics. ASYNC metadata contains the same diagnostic values, but has no PES timestamp; SYNC metadata keeps the exact video PTS association. In live preview, SYNC KLV updates wait for their associated frame to be displayed, so pausing video also keeps the diagnostic frame number aligned with the visible counter.