Skip to content

Decklink SDI

Flussonic Media Server works with Decklink SDI or HDMI cards, and also with Blackmagic Decklink Quad 2 cards, which have 8 ports.

You can:

On this page:

See also:

Blackmagic driver installation

  • Download the Desktop Video software installation files from the official site (version 11.5.1 could be found here)

  • Install the package:

cd Blackmagic_Desktop_Video_Linux_11.5.1/deb/x86_64
dpkg -i desktopvideo_11.5a33_amd64.deb

You can delete another version using:

dpkg -r desktopvideo

Make sure that installation was successfull:

BlackmagicFirmwareUpdater status

You should see the list of capture devices available in your system.

After you installed Blackmagic drivers, update the card, and configure a new stream as follows:

stream sdi {
  url decklink://0;
}

Flussonic Media Server will take the first device (0) and use its autoconfiguration feature to capture video (the search for active resolution).

Some Decklink models do not support automatic search for active resolution, and for those models you'll need to specify it manually by using the options mode and vinput. For example, if you have Intensity Pro with connected HDMI source of 720p at 50 fps, you should configure the stream as follows:

stream sdi {
  url decklink://0 mode=hp50 vinput=3;
}

Parameters in url decklink://:

  • mode - the mode of the incoming stream
  • vinput - video interface:

    1 - Composite

    2 - Component

    3 - HDMI

    4 - SDI

    5 - Optical SDI

    6 - SVideo

  • ainput - audio interface:

    0 - Analog

    1 - Embedded

    2 - AESEBU

  • vpts - the synchronization mode for video:

    2 - by audio

    3 - according to the reference signal

  • apts - the synchronization mode for audio:

    1 - by video

    3 - according to the reference signal

  • duplex - use when capturing from Blackmagic Decklink Quad 2 to specify the number of active ports on the card:

    full - the card uses 4 ports

    half - the card uses 8 ports

  • sar - the SAR of the input stream. It makes sense to specify SAR for anamorphic video where pixel aspect ratio is not 1:1. Example: sar=16:11

If you use Blackmagic Decklink Quad 2 cards, use the duplex=full|half option to to tell Flussonic whether your card uses 4 or 8 SDI ports.

Set full if the card uses 4 ports, and set half if the card uses all 8 ports. Set this option for devices 0, 1, 2, 3.

The following configuration allows Flussonic to use 8 ports at capturing:

stream test {
  url decklink://0 duplex=half;
}

Warning

Make sure that all the streams that are captured via Decklink Quad 2 have the duplex option specified.

Deinterlacing of progressive streams

Flussonic can deinterlace progressive streams to eliminate artifacts. For that, use the CUDA yadif deinterlace method:

stream test {
  url decklink://1 vinput=4;
  transcoder vb=4000k hw=nvenc preset=slow fps=50 deinterlace=yadif ab=128k;
}

To transcode a stream coming from a Decklink SDI or HDMI card, add the transcoder directive for the stream:

stream sdi {
  url decklink://0;
  transcoder vb=3096k ab=64k;
}

Note

The transcoding option external=false is now the default for SDI, HDMI, and other raw video streams, preventing excessive load on the server that occurs with external=true.

Transcoding options must no longer be set separately for the url decklink:// source using the option enc= as in older Flussonic versions. Flussonic can now process the video from SDI as raw frames. Previously, it was necessary to immediately transcode an SDI stream using the option enc= in the SDI ingest settings, because Flussonic could not work with such a stream as unencoded video.

The benefits of processing the SDI video as raw frames:

  • Higher video quality. We avoid double transcoding in streams with multiple sources and transcoder settings, since all stream sources are now transcoded only once according to the parameters specified in transcoder.

    stream sdi { url decklink://0; url fake://fake; transcoder vb=3096k ab=64k; }

  • Saving resources (for the same reason).

  • "Seamless" switching between SDI and other stream sources.

  • Ease of configuring SDI sources through the UI - now you do not need to specify the transcoder options separately for the SDI ingest, and there is no need to edit the flussonic.conf file and then apply the configuration.

  • Using hardware transcoders for encoding video from Decklink SDI (coming in future Flussonic versions).

Caution

If you do not specify the settings in transcoder, then the SDI (or HDMI) stream will not work.

Ingesting SD video from SDI cards (20.09)

Flussonic has the support for video with non-square pixels (anamorphic video) when ingesting streams from SDI cards. Often it is video in SD (standard definition) quality.

For example, for ingested PAL channels, the output stream might have distortion if the pixel aspect ratio is not 1:1. The majority of devices expect that the pixel aspect ratio is 1:1.

To make Flussonic keep the proportions of the picture, without distortion, in the outcoming video, specify the sar of the input stream:

stream test {
  url decklink://1 vinput=4 sar=16:11;

}

Flussonic calculates the resolution of the output video. In the example with sar=16:11, incoming anamorphic video 720x576 will go through Flussonic with 1048x576 resolution.

This setting works when capturing from both Decklink and StreamLabs cards.

Flussonic Media Server not only captures but also passes video to a Decklink SDI or HDMI card.

Set the parameter push decklink://:

stream test {
  url udp://239.0.0.1:1234;
  push decklink://0 size=720x576 fps=50 deinterlace=true;
}

Flussonic decodes a stream and passes it to the specified Decklink device or slot on the card itself (for example, 0). If necessary, you can use deinterlace=true to eliminate interlacing. The maximum volume (volume) is 1.0.

To configure Decklink duplex mode that allows to select input/output direction of SDI card, use the following configuration:

Flussonic 20.11 and newer:

decklink 0 {
  profile two_half;
}

decklink 1 {
  profile two_half;
}

Flussonic 20.10 and older:

decklink {
  card 0 profile=two_half;
  card 1 profile=two_half;
}

According to the model, it's supported the following modes:

  • one_full - bmdProfileOneSubDeviceFullDuplex
  • one_half - bmdProfileOneSubDeviceHalfDuplex
  • two_full - bmdProfileTwoSubDevicesFullDuplex
  • two_half - bmdProfileTwoSubDevicesHalfDuplex
  • four_half - bmdProfileFourSubDevicesHalfDuplex