YAML Templates and Overrides

You don’t always have to build your workflows by hand in the UI. Norsk Studio lets you save workflows as YAML templates, so you can reuse, share, and version them just like code.

A YAML template describes your workflow components (inputs, processors, outputs), their configuration, and how they are connected.

Why Overrides?

Sometimes you’ll want to run the same workflow with slightly different settings — for example:

  • Different bitrates or frame rates.

  • Changing ports or credentials for inputs.

  • Switching between HD and SD ladders.

Instead of duplicating entire YAML templates, you can create a YAML override file. This file only specifies the changes, which are merged with the base template when the workflow starts.

Example

Here’s a simple workflow template with an SRT input, an ABR ladder processor, and an LL-HLS output:

components:
  - type: input.srt-listener
    config:
      displayName: SRT Input
      port: 5001
      host: 0.0.0.0
      id: srt_input
    subscriptions: []
  - type: processor.fixedLadder
    config:
      displayName: ABR Ladder
      rungs:
        - name: h264_1280x720
          software:
            width: 1280
            height: 720
            codec:
              type: x264
              bitrateMode:
                value: 2500
                mode: abr
            frameRate: { frames: 25, seconds: 1 }
      id: abr_ladder
    subscriptions:
      - source: srt_input
  - type: output.autoCmaf
    config:
      displayName: LL-HLS
      id: ll-hls
    subscriptions:
      - source: abr_ladder

Now let’s say we want to test at 50fps instead of 25fps, and add a 1080p rung. Instead of editing the base template, we can create an override file:

FIXEDLADDER_0_RUNGS:
  - name: h264_1920x1080
    software:
      width: 1920
      height: 1080
      codec:
        type: x264
        bitrateMode:
          value: 5000
          mode: abr
      frameRate: { frames: 50, seconds: 1 }
  - name: h264_1280x720
    software:
      width: 1280
      height: 720
      codec:
        type: x264
        bitrateMode:
          value: 2500
          mode: abr
      frameRate:
        frames: 50,
        seconds: 1

Running with Overrides

To launch Norsk Studio with an override, set both environment variables when starting:

STUDIO_DOCUMENT=data/studio-save-files/02-SRT-to-HLS-Ladder.yaml \
STUDIO_DOCUMENT_OVERRIDES=data/studio-save-files/srt-hls-ladder-50fps.yaml ./up.sh

Norsk Studio will load the base template, apply the overrides, and start the workflow with your updated configuration.