ST 2110 Device Setup

For High Quality and Lag-free network operation, we recommend using High-end network hardware (router, switch) as well as high speed ethernet cables (Cat6+).

In this article:
BlackMagic 2110/IP Cards
AJA 2110/IP Cards
Deltacst 2110/IP Cards


BlackMagic 2110/IP Cards

BlackMagic Devices can be configured with the Tools given by the manufacturer:
Blackmagic Desktop Video Setup:


AJA 2110/IP Cards

PLAYDECK allows to assign a network configuration file, which will be loaded upon PLAYDECK start.

Structure of Configuration File (JSON)

{
    "protocol":"2110",
    "network2110":
    { // this part configures the parameters of the device itself, the connectors (SFP) with IP configurations
        "ptpPreferredGMID":"00-00-00-00-00-00-00-00",
        "ptpDomain":0,
        "setup4k":"false",
        "multiSDP":"false",
        "audioCombine":"false",
        "rxMatchOverride":0,
        "sfps":
        [   // the configuration itself for each of the connectors
            {
                "designator":"sfp1",
                "ipAddress":"192.16.45.8",
                "subnetMask":"255.255.0.0",
                "gateWay":"255.255.255.255",
                "enable":"true"
            },
            {
                "designator":"sfp2",
                "ipAddress":"192.16.45.9",
                "subnetMask":"255.255.0.0",
                "gateWay":"255.255.255.255",
                "enable":"true"
            }
        ]
    },
    "receiveVideo2110":
    [ // this part is to receive a video feed where you set the connector, the source address
      // and its port for both the connectors.
        {
            "stream":"video1",
            ...
        },
        {
            "stream":"video2",
            ...
        }
    ],
    "receiveAudio2110":
    [ // this part is to receive an audio feed where you set the connector, the source address
      // and its port for both the connectors.
        {
            "stream":"audio1",
            ...
        },
        {
            "stream":"audio2",
            ...
        }
    ],
    "receiveAnc2110":
    [  // this part is to receive the ancillary data where you set the connector, the source address
       // and its port for both the connectors.
        {
            "stream":"anc1",
            ...
        },
        {
            "stream":"anc2",
            ...
        }
    ],
    "transmitVideo2110":
    [  // this part is to send a video signal where you set the connector, the destination address
       // and its port for both the connectors.
        {
            "stream":"video3",
            ...
        },
        {
            "stream":"video4",
            ...
        }
    ],
    "transmitAudio2110":
    [  // this part is to send an audio signal where you set the connector, the destination address
       // and its port for both the connectors.
        {
            "stream":"audio3",
            ...
        },
        {
            "stream":"audio4",
            ....
        }
    ],
    "transmitAnc2110":
    [  // this part is to send ancilary data where you set the connector, the destination address
       // and its port for both the connectors.
        {
            "stream":"anc3",
            ...
        },
        {
            "stream":"anc4",
            ...
        }
    ]
}

Sample Configuration File

You can download this sample JSON File.

Assign Configuration to PLAYDECK

The Configuration will be loaded while starting PLAYDECK and will be assigned to all Inputs and Outputs (if assigned).

For INPUTS, edit the full path to your JSON File in this Registry Key:
HKEY_CURRENT_USER\Software\Medialooks\MFormats\MFLive\AJA2\aja.ip_config

For OUTPUTS, edit the full path to your JSON File in this Registry Key:
HKEY_CURRENT_USER\Software\Medialooks\MFormats\MFRenderer\AJA2\aja.ip_config


Deltacast 2110/IP Cards

PLAYDECK allows to assign a network configuration file, which will be loaded upon PLAYDECK start.

Structure of Configuration File (JSON)

{
    "tx2110Setup":
    {
        "ethPort":0,
        "DHCP":"true",
        "ipAddress":"127.0.0.1",
        "subnetMask":"255.255.255.0",
        "gateWay":"127.0.0.1",
        "ipAddressMulticast":"239.1.32.32",
        "udpPort":16
    },

    "rx2110Setup":
    {
        "ethPort":0,
        "DHCP":"true",
        "ipAddress":"127.0.0.1",
        "subnetMask":"255.255.255.0",
        "gateWay":"127.0.0.1",
        "ipAddressMulticast":"239.1.32.32",
        "udpPort":16
    }
}

Sample Configuration File

You can download this sample JSON File.

Assign Configuration to PLAYDECK

The Configuration will be loaded while starting PLAYDECK and will be assigned to all Inputs and Outputs (if assigned).

For INPUTS, edit the full path to your JSON File in this Registry Key:
HKEY_CURRENT_USER\Software\Medialooks\MFormats\MFLive\MFDeviceDC\dc.ip_config

For OUTPUTS, edit the full path to your JSON File in this Registry Key:
HKEY_CURRENT_USER\Software\Medialooks\MFormats\MFRenderer\DC\dc.ip_config




Setup of Output Streams

This article will show how to setup your Output Streams for different purposes.

In this article:
Introduction
Using Parameter and Config String
Config Samples
AAC High Quality Audio Streams
Color Space and Chroma subsampling and Interlace
Multiple Audio Tracks
Closed Captions and SCTE
Routing Streams over specific IP
Monitoring & Troubleshooting


1. Introduction

You are able to setup 15 different Stream Configurations for any Source, being Channel, Inputs and Director View. As a default, your Video Format is copied from the Source, once the Stream starts, but you can transcode into any Resolution.

Once you pick your Protocol, the other Fields for Video/Audio Codec and URL will change according to your selection, meaning: Not every Video/Audio Codec will be available for every Stream Protocol.

INFO: NVIDIA Encoder do NOT support Interlaced Formats anymore. Pick Intel QuickSync instead.

Your URL will show a suggestion of the required URL Format. Click on “URL Info” to show more examples, e.g. how to integrate Username/Password. The Preview URL will not be used by PLAYDECK, it’s just for your convenience to open the Internet Browser upon clicking “Preview”.


2. Using Parameter and Config

Further Parameter can be set to Protocol and Codecs, which are specific for your selection. These can be used to finetune your Settings, e.g. make your Stream CBR or add Metadata.

Clicking on “Parameter” will open a Editor, which will only show the possible Settings for your selection. It will highlight any Value that differs from the Default Value.

The “Config String” is a representation of all your Protocol/Codec selection as well as their respective Parameter. The Config String works both ways: You can also copy/paste a Config String into the Text Field, then click “Update from String” to apply the Values upwards. This allows you to simply copy Settings between Stream ID’s or share with other User.


3. Config Samples

Here is a quick selection of recommended Configurations for different purposes. Copy and Paste to PLAYDECK and click “Update from String”.

DVB Stream with CBR and GOP B-frames. No PCR or PTS-DTS or Buffer underrun Error

format='dvb' protocol='udp://' mpegts_start_pid='60' video::streamid='80' video::disable_sps_pps='true' video::codec='n264' video::profile='high' video::level='4.1' video::rc_type='cbr' muxrate='10M' video::b='7.5M' video::bufsize='1.25M' video::g='32' video::bf='2' video::ref_frames='3' audio::streamid='81' audio::metadata::language='deu' audio::codec='mp2' audio::b='192k' pmt_start_pid='100' mpegts_flags='-system_b' rc_buffers='4' pcr_period='35' pat_period='0.1' sdt_period='0.5' tdt_period='10' start_pcr='0' service_name='TEST' service_provider='PD' service_id='1' original_network_id='1' transport_stream_id='201' service_type='advanced_codec_digital_hdtv'

Or in Short Form:

format='dvb' protocol='udp://' video::disable_sps_pps='true' video::codec='n264' video::profile='high' video::level='4.1' video::rc_type='cbr' muxrate='10M' video::b='7.5M' video::bufsize='1.25M' video::g='32' video::bf='2' video::ref_frames='3' audio::metadata::language='deu' audio::codec='mp2' audio::b='192k' service_type='advanced_codec_digital_hdtv'

INFO: Every DVB Receiver is different und you might need different Parameters. Some Receiver will not allow ANY deviancy from official guidelines, and will show BLACK. The most reliable solution to encode DVB signals are Hardware Encoder, e.g. Haivision.

Best practice to test DVB Streams for PCR Error or other, is using one of these Tools:
DVBControl DVBAnalyzer (costs ~2000 EUR, but is most reliable and detects PTS-DTS Error)
StreamGURU (costs ~300 EUR, can detect any ETR Error and shows Bitrate Graphic)
TSAnalyzer (free, but can ingest Stream URL, needs TS File on HD)
– Others worth mentioning: DVBInspector, Elecard Stream Analyzer, StreamXpert

————————————————————

RTMP Stream in CBR for 60 FPS with 2 second-keyframe

The next Sample is for YouTube. Use the YouTube Analytic and Stream Health Tools to test your Stream Satbility:

format='flv' protocol='rtmp://' video::codec='n264' video::b='9000k' video::maxrate='9000k' video::bufsize='9000k' video::g='120' video::preset='veryfast' audio::codec='aac' audio::b='128k' audio::ar='44100'

The next Sample is for Twitch. Use Twitch Inspector to check your Stream Stability and add “?bandwidthtest=true” to your Stream URL to prevent going Live.

format='flv' protocol='rtmp://' merge_tracks='true' video::codec='n264' video::b='5800k' video::maxrate='5800k' video::bufsize='5800k' video::g='120' video::preset='veryfast' audio::codec='aac' audio::b='128k' video::tune='zerolatency' audio::codec='aac' audio::ar='44100' audio::b='128k'

4. AAC High Quality Audio Streams

The default AAC Encoder for Stream will be very conservative, meaning: Use as little CPU as possible and leave maximum room for video bandwidth. If your project is to stream music channel, this might not be satisfying enough.

The first thing you might want to consider is dropping video res to 720p30, so you have more bandwidth for audio. Especially if you run multiple streams. Always use a Hardware Encoder for video like H264 NVidia NVENC.

For audio encoding, using AAC is your only true choice for high quality audio. AAC is available in most stream formats (RTMP, SRT, UDP) and has much less compression compared to MP3.

Next, you always want to go with 48KHz and 32 bits as a default, since AAC can use full dynamic.

Here is a sample config, which we will explain in more detail:

format='mpegts' protocol='udp://' video::codec='n264' video::b='4M' audio::codec='aac' audio::b='256K' audio::profile='aac_low' audio::stereo_mode='ms_force' audio::minrate='200K' audio::maxrate='320K' audio::bufsize='640K' audio::aac_coder='0'

Since we saved some bandwidth on video, we can raise our Bitrate to 256K. We set a Minrate of 200K, so silent passages will not sound rough. And we set a Maxrate of 320K to allow for peaks. The Buffer Size of 640K represents approx 2,5s Buffer. If you only run one music channel, you can even go higher on the bitrates.

Now to some very important settings:
The AAC Profile must be “aac_low”, which is AAC-LC and has the highest quality and supports higher bitrates. We force Stereo Audio Encoding with “stereo_mode=ms_force”. We set the AAC Coder to “0”, which means “double encoding run”. Reduce this to “1” (single run), if you get CPU problems. Avoid “0”, which means “single fast run”.

One more thing to mention:
Use source material (clips), which are 48 KHz, 32 bit and high bitrate of at least 320K VBR. This is important to not introduce audio artifacts, which will be amplified by the AAC Encoder later on. If you only run one music channel, you can try lossless audio (PCM) and ~2000K Bitrate.


5. Color Space and Chroma subsampling and Interlace

The Support for certain Color Spaces, e.g. 4:2:2 for DVB, or Interlaced Encoding, depend very much on the Intel CPU or NVidia GPU you are using.

Here is a page for NVidia NVenc and 422 Support and here for Intel Quick Sync and 422 Support.

In basic terms:

1. NVidia Support for Interlaced Encoding:
– Pascal (GTX 10-Serie): Last architecture with interlace support
– Turing / Ampere / Ada (RTX 20/30/40): Hardware support for interlaced encoding was removed
– Blackwell (RTX 50-Serie): Interlaced encoding for H.264 (8-bit and 10-bit) has been re-introduced

2. NVidia Support for 4:2:2 Color Space:
– Blackwell (RTX 50-Serie)

3. Intel Support for 4:2:2 Color Space
– 10th Gen and newer processors offer support for Hardware Accelerated encoding and decoding of HEVC codec on 4:2:2 color sampling via Quick Sync.
– Previous graphics controllers on 9th Generation Intel® Core™ Processors and older were limited to HEVC codec 4:2:0 color sampling for hardware accelerated encoding and decoding.

This is a quick config sample to encode 4:2:2 with Intel Quick Sync (10th Gen+)

format='dvb' protocol='udp://' video::codec='hevc_qsv' video::b='5M' audio::codec='aac' audio::b='128K' video::pix_fmt='yuyv422'

Note: Features such as interlace and 4:2:2 color space are also available in x264 CPU encoders. Since we use an LGPL version of FFmpeg without GPL parts (e.g., libx264), these features are not enabled. It is possible to replace the FFmpeg libraries with your own versions.


6. Multiple Audio Tracks

If you need to send multiple Audio Tracks, e.g. for different Languages or for Director Audio, you can do so with all supported Protocols (DVB, RTMP, UDP and some more). You can also apply different Audio Codecs.

The way this works is, that you have ALL Audio Tracks already active in your Channel, then SPLIT the Audio Tracks for your Stream Output in e.g. Stereo Pairs.

First, make sure your Channel is set to more then 2 Audio Channel:

Then “fill” these Audio Channel with Audio Content, e.g. by enabling All Audio Tracks on a Clip or ingesting all Tracks via SDI (up to 16 Audio Tracks). You can also use Audio Mapping to mix up/down your Audio Tracks or use Audio Filter to copy and delay certain Audio Tracks.

Then you open your Stream Settings, especially the Parameter of your Stream Protocol and enable Audio Track Splitting:

INFO: The Number of Audio Channel in your Stream Settings need to stay at 2.

If needed, you can apply different Audio Codecs for the addition Audio Tracks. Please note the added and increasing Numbers for every Audio Tracks after the first one:

audio::codec='aac' audio.1::codec='ac3' audio.2::codec='libmp3lame' audio.3::codec='mp2'

You can also apply a Language Descriptor for every Audio Track:

audio::metadata::language='eng' audio.1::metadata::language='ita' audio.2::metadata::language='fra' audio.3::metadata::language='ger'

INFO: Language Codes must comply to ISO 639-2

You can then test your resulting Audio Tracks in e.g. StreamGURU:


7. Closed Captions and SCTE

Both can be enabled in the Parameter Settings of your Protocol:

INFO: SCTE-35 is only available for Protocols: SRT, DVB, UDP (any Video Codec). Closed Caption will only work with Video Codecs: MPEG-2, H.264 (any Protocol)

This will require both to be enabled and available in your Channel already. Please refer to the following articles for more information on SCTE and/or Closed Captions:

Sending SCTE-35 to Stream Server
Closed Captions / Subtitles


8. Routing Streams over specific IP

Your production requires you to send your streams via specific networks. This is mostly used to have a dedicated/reserved line for streaming, so it doesn’t interfere with regular network traffic.

If using UDP Streams you simple add this parameter directly to the URL:
udp://ip:port?localaddr=172.20.10.2

If using SRT Streams you simple add this parameter directly to the URL. This only works in rendezvous mode:
srt://ip:port?mode=rendezvous&localip=172.20.10.2

If using RTMP Streams, there sadly is no paramter. You need to route all RTMP outbound traffic manually. For this we use Proxifier. Goto Profile, Proxification Rules, Add new Rule and edit like this and move it to the top if the rules. Pick your desired adapter via “Advanced”.

If you want to run a dry test locally without the 2nd line, enable both Ethernet Adapter and Wifi on your PC, then Start a new Hotspot on your Mobile Phone and connect PC Wifi to that Phone. Then open Console (“cmd”) and type “ipconfig”. The IP address you need is there:

You can test your network traffic with wireshark.


9. Monitoring & Troubleshooting

If your Streams are lagging or even stopping completely, you are often in the dark what exactly happened. Here are some pointer to help you identify the problem.

1. Monitoring

Open the Monitor Window in PLAYDECK or open the Stream Logs.

FPS 50/60 (FPS Average/Desired)
Compares the current and average encoding frame rate against the desired level. A drop here indicates the system cannot keep up with real-time encoding.

Elapsed (Frame Waiting Time in Seconds)
Shows Time elapsed after the last Frame has been processed. If this value increases, not frames can be processed due to missing Source, or false settings or no connection.

Skipped (Dropped Frames)
The most critical indicator of performance bottlenecks. If this value increases, the encoder is intentionally dropping frames because it cannot process them fast enough.

Breaks (Frames lost)
If the network is slow, you see Breaks because the Server wants a new frame but it cannot get there in time (for protocols that requires acknowledgement like RTMP or SRT). Breaks can also happen if the Source does not deliver a frame in time.

Buffer (Frames waiting)
Monitors the number of frames waiting in the internal queue. A constantly growing buffer typically precedes skipped frames or Breaks. High Skipped, Low Breaks: This usually means your CPU/GPU encoder is too slow. High Breaks, Low/Zero Skipped: This usually means the network or source is the bottleneck. The writer is ready to encode but the frames aren’t arriving or being “pulled” at the correct time intervals due to the connection lag.


2. Network/Bandwidth Problems

Turn of all your Streams, open your Windows Console (“cmd” in Start Menu) and type

tracert <hostname_or_ip>

Use your Target URLs Hostname or IP Address. If you see any Values >100 ms, this will indicate a slow connection to your Stream Target.

Also keep in mind, that while today Download Speeds with Fibre, Cable or DSL or mostly high speed (>100 Mbps), the Upload Speed could be very much slower than that. Use a Tool like Speedtest to determine your actual Upload Speed.

Also use Bandwidth Profiler on the Stream Server to check, if your desired Bitrate is also received on the Server. Most Provider or Software will provide with Tools to measure the received Bitrate. Ideally it is shown as Graph, which can point out any Gaps during the Transmission. If you have no Tool at Hand, we recommend streaming to YouTube, as it has a build-in Stream Analyzer, which is very useful to diagnose any instable connections.

In addition, please check with your Provider or Service, if the provide any LOCAL Stream Ingest URL’s for your Region or Country. As an example, Twitch provides these Twitch Ingest Endpoints.




Insert Input Streams into Playlist

This article will show how to insert Streams into your Playlist.

In this article:
Insert Stream (SRT, RTMP, UDP, …)
Insert YouTube Video
Insert Website Video


Insert Stream (SRT, RTMP, UDP, …)

You can directly Drag Drop any YouTube URL from your Browser to PLAYDECK:

To insert a new Stream into your Playlist, simply Drag Drop the STREAM Icon onto the Playlist. A new Popup will appear, where you can enter the Stream URL:

Your Stream will be scanned by PLAYDECK now. If the PLAYDECK could connect to your Stream successfully, the Text will be shown in WHITE. You can now play the Stream and/or can double-click the INFO icon to view more information about the Stream, like Video format and codec:

If the Stream can NOT be connected, it will appear in RED:

If you made a typo, you can quickly re-edit the URL by right-clicking and selecting CHANGE URL:


Insert YouTube Video

You can insert YouTube Links via Drag Drop or in the same manner as insert as Input Stream. See this article on more information about YouTube.


Insert Website Video

You can insert some Websites per Drag Drop directly into the Playlist or via the STREAM Icon. We use TWITCH in this example. Click SHOW HELP to get more info about what Websites can be used:





Move License to another PC

This article will show how to move your License from one System to another System.

In this article:
Shop License
USB Dongle License
Offline License
Backup License


Shop License

You can move your License via a simple Check-In/Out System. On the System with the active License, go into your License Manager:

First, we want to deactivate the current License: Select the TRIAL Edition and click ACTIVATE, then confirm the restart query:

After restarting PLAYDECK, we can now move the freed License back to your Online License Pool. Re-open the License Manager. Now login to your PLAYDECK ACCOUNT. Use the email address and password, which you used during CHECKOUT in the SHOP. Use the FORGOT PASSWORD button, if you need to reset your password:

We can now move the License from you LEFT Side to the RIGHT Side with a Button Click (CHECK LICENSE BACK INTO THE POOL). This means, that the License becomes UNAVAILABLE on the current System and becomes AVAILABLE on ANY other System:

The next Screen shows the OTHER PC after logging into the License Manager. You simply reverse the Process now: Select the License on the RIGHT Side and move it with the Button to the Left Side (CHECK LICENSE FROM POOL TO LOCAL PC). PLAYDECK will now offer to activate the License and restart:


USB Dongle License

Simply detach the USB Dongle and attach it to another PC, then start PLAYDECK on that PC. Please note, that if you detach the Dongle while PLAYDECK is still running, PLAYDECK will close immediately and without prior notice. It is recommended to close PLAYDECK regularly to ensure, that all Data is saved properly.


Offline License

The Offline License is bound to the PLAYDECK System ID and can NOT be moved to another System by the Customer. Please write us at [email protected] to receive a new Offline License.


Backup License

We have a separate article on how to use the Backup License.




Free Backup License

This article will show how to use the Free Backup License, which comes with every PLAYDECK License. The Backup License functions as follows:

  • Can be used with ANY PLAYDECK License (Dongle, Shop, Offline)
  • Can be used on ANY PLAYDECK-PC in the same network
  • Multiple Clients are supported
  • 24/7 operation is NOT supported (max 24h per session)


1. Setup

On your MAIN System (the one WITH the License), you don’t have to do anything: The BACKUP LICENSE SYSTEM is enabled by default. It will use the WebSocket Port 11411, so make sure this Port is not blocked:

On the CLIENT System (the one WITHOUT the License), you perform a regular PLAYDECK installation, nothing special here: PLAYDECK will not start in TRIAL MODE with the watermark:

Now we need to tell CLIENT PLAYDECK, where to find the MAIN PLAYDECK, by providing the IP address of MAIN. To receive the IP address of your MAIN, you can simply open the ABOUT BOX in PLAYDECK (Main Menu > License > About):

On your CLIENT, go to Application Settings, enter the IP address of MAIN PLAYDECK and click TEST IP NOW. The CLIENT now tests the Network connection and searches for a valid License on MAIN. If you don’t see the following INFO POPUP, please check your MAIN License and your Network connection between MAIN and CLIENT:

You can now enable the feature by clicking BACKUP-SYSTEM. PLAYDECK will restart now with the exact same License of MAIN. You can verify, the CLIENT is using the Backup License correctly in several Displays:

Note: If the CLIENT has a valid License itself, the License of MAIN will NOT be used.


2. Rules of Backup-License

The Backup-License is not meant for 24/7 operation, but to provide a fail-safe for immediate operation, e.g. in a live production, and without the need to buy a secondary license, just to have a backup system for some use cases.

For unattended 24/7 operation, you would need to purchase a secondary license. Please contact use at [email protected], if your next License is for Backup only, and we will provide you with a appropriate discount.

The MAXIMUM RUNTIME of your BACKUP LICENSE will be:
– 2 hours, if the MAIN gets disconnected or closed
– 24 hours, if then MAIN stays online

PALYDECK will terminate the CLIENT without prior warning. So please make sure, to bring the MAIN back online within the 2 hour window, or to restart both MAIN and CLIENT within the 24 hour window.

You can control the remaining RUNTIME in the Settings of the CLIENT:




Creating a Slideshow Single-Monitor

This article will show how to create a Slideshow with Transitions and output on the same Monitor.


1. Creating the Show

Open the integrated File Explorer by clicking the right-arrow between the Playlists. The search for your images folder, select all images and add the to the Playlist by Drag Drop:

Select any Clip in the Playlist and press CTRL+A to select all Clips, then select the Icon for DURATION and enter a suitable duration for each image, e.g. 15 seconds:

While al Clips are still selected, click the Icon TRANSITION next and add any transition. In this case we use a smooth long Fade Transition:

At the bottom of the Playlist you can see the total duration of your Slideshow:


2. Playing the Slideshow

You simply double-click the first Clip (or use Buttons CUE+PLAY), then double-click the Preview Area (or right-click and select FULLSCREEN). Your Playout will now be maximized to your Monitor Size, at maximum Quality. And the Mouse Cursor will be hidden. Use ESC to exit Fullscreen.

Note: During Fullscreen, you can use the SPACE Key to pause/u-pause Playback.

You can also output the video signal on a second monitor, or send it to your TV. You could also send it via NDI to another PC and open the signal with PLAYDECK (use the free Backup License), or VCL Mediaplayer or any other 3rd party app:





Using Commands for Playout Control

This article will show how to use Commands to control your Playout.

In this article:
Example: CUE+PLAY multiple Channel
List of all Commands and where to add them
Send Commands from other Apps


Example: CUE+PLAY multiple Channel

We want to create an Action Button, which will CUE several Output Channel and PLAY them simultaneously (almost synced).

Create a new Action Button by clicking on it and select COMMANDS, then EDIT COMMANDS:

Add this Line under “COMMANDS – Internal”:
<cue|1|1><cue|2|1><wait|1000><play|1|1><play|2|1>

This will CUE Channel 1 and 2 (1st Clip 1st Block), then wait 1000ms (for caching), then PLAY both Channel.


List of all Commands and where to add them

The List of all Commands can be quickly opened over PLAYDECK’s Main Menu:

Commands can be added to:

  • Action Buttons (Start, End)
  • Overlay Button (Start, End)
  • Clips (Any Time)
  • Blocks (Start, End)

Mostly via this Icon:


Send Commands from other Apps

We have a separate article on how to control PLAYDECK with Companion.

But what, if it is not Companion, but a different 3rd party App? First, you would need to enable TCP Commands. This will open PLAYDECK up to receive and execute Commands from external sources:

In your 3rd party app, connect to PLAYDECK via TCP and send one or multiple Commands. In this Sample we use Hercules to send a Command, which will start Streams 1 and 2:





Using Companion for Playout Control

This article will show how to use bitfocus Companion together with PLAYDECK. Companion has a ready-to-use module for PLAYDECK. This is the most comfortable way to connect PLAYDECK to your ATEM Mixer or STREAMDECK.

The Companion Module has been developed and is maintained by Nick Semonov. He is a Community Developer and also a great guy to work with.

In this article:
Installation
Button Page with Presets
Custom Commands instead of Actions
Custom Button Feedbacks


Installation

1. Start PLAYDECK, so Companion can find it

2. Download and install the latest stable Version of Companion

3. Start Companion and add the PLAYDECK Module

4. You are done, if Companion shows a GREEN Checkmark for this Connection. If you cant get a Connection, please disable your Firewall or allow TCP Port 11411.


Button Page with Presets

We will use Companion Presets to quickly create a fresh Page of Buttons for a casual Playout Situation.

1. Create a new Page, then go to PRESETS and select PLAYDECK

2. For our Sample we specifically want to target Channel 1. You could also use LISTS, which are dynamic and use the visible Channel in PLAYDECK (Left and Right). You could also control your ASSETS (Streams, Recordings). Select CHANNEL 1 to continue

3. With Drag & Drop we create a simple Playout Solution: Play Control with some Overlays. The Buttons are added with FEEDBACKS, meaning: You will get a RED Button according to the PLAY STATE (CUE, Playing, Paused, Stopped).

4. The PLAY Button also shows the remaining Clip Time during Playout:

5. Some Buttons need more Information for you, like the START OVERLAY Button. It needs to know, which Overlay(s) should be started:


Custom Commands instead of Actions

We will add any PLAYDECK Command to a Companion Button. This is useful, if you are more of a “code” type of person or if there a new Commands in PLAYDECK, which are (not yet) available in Companion. Its also possible to add multiple Commands at the same time.

1. We create a new Button and add a new Action. We now select CUSTOM COMMAND and click DONE

2. In PLAYDECK we open the COMMANDS LIST to review, which Command we want to use

3. We decide that we want to start multiple Overlays on several Channel and after that start 2 Streams:

<startoverlay|1|1+3>
<startoverlay|2|1+5>
<startstream|1>
<startstream|2>

4. We wrap up all Commands into one Line and copy it into the COMMANDS Field. If we then press our Button, we start our Overlays and our Streams, as all Commands are executed in the written order.

5. Another good example is starting 2 Channel synchronized:

<cue|1><cue|2><wait|1000><play|1><play|2>

This will CUE both Channel, then wait 1 Second for CUE being ready (Clip Caching), then PLAY both Channel.


Custom Button Feedbacks

Instead of using the pre-defined Feedbacks (e.g. PLAY STATE), you can use Companion VARIABLES to use many more Feedbacks. In this example we will start a specific Block and show its remaining Time on the Button.

1. We add a new Block to Channel #1 in PLAYDECK and rename it “MAIN PROGRAM”

2. Now we add a new Button to Companion and assign the CONTROL PLAY FLEX Action to the Button.

3. The PLAY FLEX Action allows us to play a Block by Name (instead of ID). We use the PATTERN “b:main c#1” to start our Block, as described in the COMMANDS LIST (PLAYDECK > Main Menu > Documentation):

4. We now have a Block Play Button, but we also want the remaining Block Time to display, once the Block is playing. For this we need to add a custom Feedback to the Button, which will check “some” variable and do “something”:

5. We check against the current playing Block by searching for “block name” in the VARIABLE field and add our Block “Main Program” as VALUE:

6. We then add TEXT as new STYLE PROPERTY, since our intention is to show the remaining Block Time:

7. Add “$(Playdeck:channel_1_block_remain)” as BUTTON TEXT STRING, and our Button is finished:

8. But how did we receive our BUTTON TEXT STRING? Companion will show you all available VARIABLES you can use in PLAYDECK. You can then click the small COPY ICON to transport the Variable to your Buttons:




Insert YouTube Videos into Playlists

This article will show how to load and edit YouTube Videos.


1. Load YouTube into PLAYDECK

You can directly Drag Drop any YouTube URL from your Browser to PLAYDECK:

Or you can use the Stream Drag Drop Icon to paste/edit the URL:

Your YouTube Videos is ready to play out-of-the-box. The quality will be pre-selected dependent on your Playlist Video Format and the Formats provided from YouTube.

Note: Avoid using long YouTube Links with Playlists like “…?v=0oIIRc0zc_U&list=RD0oIIRc0zc_U”, as they might not work or cause Lag/Stutter. We recommend using short links like “…?v=0oIIRc0zc_U”.


2. Update YouTube Driver

Should the added YouTube Clip be shown as UNPLAYABLE/RED in PLAYDECK, please update the integrated YouTube Driver. Chances are, YouTube made changes to its platform and you need a newer driver from us:


3. Change Quality, Video and Audio

YouTube Videos are always available in different qualities. You can switch Video Tracks by right-clicking the YouTube Video:

Note: YouTube provides combined Video+Audio Tracks, which are much faster. If you switch to non-combined Video Track, caching can take much longer and seeking can desync video/audio.





Your PLAYDECK PC Build / Hardware

Please use this basic guidelines for your PLAYDECK System. While PLAYDECK can basically play any Codec on any Windows machine, we want you to have a good experience, which requires some rules of thumb.

In this article:
Installation and Hardware
Encoding and Decoding
Output Cards
CPU Codecs, Keying and Alpha Channel
Headless Playout NUC
Notebooks


Installation and Hardware

PLAYDECK can be installed on any Windows 64-bit machine. This includes Windows Server Versions or Custom Cloud Builds.

PLAYDECK needs fast modern Hardware, if pushed to the Limit. It has to transcode any given Video Format and Framerate in Real-time into your selected Output Format. Ideally without any Frame Drops.

As with all Tasks, it all depends on your use case: Are you using the LITE Edition to operate one Full HD Channel in a Live Event for some Hours? Or are you using STUDIO to broadcast multiple UHD Channel to several receiver e.g. Streams, NDI, and all in a 24/7 manner?

One thing is certain: Without a powerful modern NVIDIA GPU you will likely be disappointed. Don’t try to run PLAYDECK over a Intel Onboard GPU, it is not designed for that. Your NVIDIA GPU should have ideally at least a Score of 8000 on the Passmark Scale.

All other PC components should not be much older than 2 years, just to meet modern driver standards, as we update PLAYDECK at least 4 times a year with the latest driver. You will want to utilize and profit from that, as all PLAYDECK updates are free of charge, as long as you have a valid license.

This is a EXAMLPE Spec, we used for our own PLAYDECK Systems:

  • BeQuiet Straight Power 11 750W
  • Gigabyte Z790 AORUS Elite AX So.1700 Dual Channel DDR5 ATX Retail
  • Intel Core i7 13700F 16 (8+8) 2.10GHz So.1700 TRAY
  • Noctua NH-U9S Tower Cooler
  • 32GB Corsair Vengeance black DDR5-5200
  • 500GB Samsung 970 EVO Plus M.2
  • 1TB Samsung 970 EVO Plus M.2
  • 12GB Gigabyte Geforce RTX 4070 Windforce OC Active PCIe 4.0 x16 (Retail)
  • Blackmagic Design DeckLink SDI 4K

Encoding and Decoding

Please also plan your GPU upfront according to your encoding and decoding needs. Here is a page for NVidia NVenc and 422 Support and here for Intel Quick Sync and 422 Support. As a rule of thumb: Lower NVidia Cards can’t encode DVB 422 and can’t decode AV1. Almost any Intel Onboard GPU (UHD, Iris, ARC) can encode DVB 422, but only the ARC can also decode AV1. Here is a little Helper:

NVidia RTX 3080

  • Decode HEVC — STRONG
  • Decode H264/H265 — STRONG
  • Decode AV1 — (No)
  • Encode DVB 4:2:2 — (No)

Intel UHD

  • Decode HEVC — MINIMAL
  • Decode H264/H265 — MINIMAL
  • Decode AV1 — (No)
  • Encode DVB 4:2:2 — OK

Intel ARC

  • Decode HEVC — GOOD
  • Decode H264/H265 — GOOD
  • Decode AV1 — GOOD
  • Encode DVB 4:2:2 — GOOD

Output Cards

If you use a dedicated Output Card (e.g. BM Decklink), you will not only offload resources to the Card and reduce overall System GPU/CPU load, but you will also benefit from:

  • More “true” Colors
  • Nearly Zero Frame Drops due to Frame Rate Control
  • Overall higher Picture Quality
  • Much more stable than HDMI over Desktop (no Windows-interference)

We support Output Cards from these Manufacturers (see complete List):

  • Blackmagic Design
  • AJA
  • Deltacast
  • Bluefish444
  • DekTect
  • Magewell
  • Osprey
  • Stream Labs
  • Yuan
  • ASIO Devices (eg DANTE)


CPU Usage = Stronger CPU needed

If you fall under one of the following categories, please plan a stronger CPU for your System:

– You are mostly using CPU Codecs, that can’t be GPU-decoded with PLAYDECK: ProRes, HAP, DNxHD
– You use multiple NDI Outputs, as they are encoded on CPU only
– You are heavily using Overlays in PLAYDECK, as they are also CPU-only
– You are using multiple screen captures or web camera devices


Headless Playout NUC

If Form Factor is important or your Playout System should run unsupervised, we can recommend this NUC: ASUS NUC 14 Pro.

It has a very strong INTEL ARC GPU with 8 GB. I can decode anything like a NVidia (with QuickSnyc) plsu AV1. Very balanced CPU/GPU power. Can operate 2 channel playout including HDMI output and Streams.


Notebooks

If you are aiming for mobile productions, we go with the XMG ULTRA 17 or the Razor Blade Notebook and extend it with a Blackmagic Ultra Studio card via the thunderbolt interface. If in doubt, which manufacturer to go for, decide for a Gamer Notebook. Those are designed to run at maximum performance. Avoid buying Office-type Notebooks like Dell, which are designed for power saving and can seriously limit your playout performance.