Skip to content

DeckLink

Required feature: decklink

An input type that allows consuming streams from Blackmagic DeckLink cards.

Usage

To use DeckLink input you must register it first. You can do it by sending a request like this:

Example request

POST: /api/input/:input_id/register
Content-Type: application/json
{
"type": "decklink",
"display_name": "DeckLink Quad HDMI Recorder (3)"
}

See HTTP Routes documentation to learn more about managing inputs.

Reference

Type definition

type DeckLinkInput = {
type: "decklink";
subdevice_index?: u32;
display_name?: string;
persistent_id?: string;
enable_audio?: bool;
required?: bool;
side_channel?: SideChannel;
}

Capture streams from devices connected to Blackmagic DeckLink card.

Properties

id

ID of a component.

  • Type: string

subdevice_index

Single DeckLink device can consist of multiple sub-devices. This field defines index of sub-device that should be used.

The input device is selected based on fields subdevice_index, persistent_id AND display_name. All of them need to match the device if they are specified. If nothing is matched, the error response will list available devices.

  • Type: u32

display_name

Select sub-device to use based on the display name. This is the value you see in e.g. Blackmagic Media Express app. like “DeckLink Quad HDMI Recorder (3)”

The input device is selected based on fields subdevice_index, persistent_id AND display_name. All of them need to match the device if they are specified. If nothing is matched, the error response will list available devices.

  • Type: string

persistent_id

Persistent ID of a device represented by 32-bit hex number. Each DeckLink sub-device has a separate id.

The input device is selected based on fields subdevice_index, persistent_id AND display_name. All of them need to match the device if they are specified. If nothing is matched, the error response will list available devices.

  • Type: string

enable_audio

Enable audio support.

  • Type: bool
  • Default value: true

required

If input is required and frames are not processed on time, then Smelter will delay producing output frames.

  • Type: bool
  • Default value: false

side_channel

Enable side channel publishing for this input. The external consumer reads decoded frames / audio from a Unix socket created under SMELTER_SIDE_CHANNEL_SOCKET_DIR.

SideChannel

Per-track side channel configuration. See the Side Channel overview for details on how decoded data is exposed and consumed.

Type definition

type SideChannel = {
video?: bool;
audio?: bool;
delay_ms?: f64;
};

Properties

video

Publish decoded RGBA video frames for this input on the side channel.

  • Type: bool
  • Default value: false

audio

Publish decoded PCM audio batches for this input on the side channel.

  • Type: bool
  • Default value: false

delay_ms

Side channel delay in milliseconds. Frames are buffered for this duration ahead of when the queue consumes them, so the side-channel subscriber receives them early and has roughly this much time to process before the frame is due.

  • Type: f64
  • Default value: 0