Then click on “Copy Output URL” to have the target URL in your Clipboard.
In PLAYDECK, click on any empty Overlay Button, select “HTML” and paste the URL into the upper Online Template Field:
The Overlay is immediately ready for display. You can even live-update Logo and Text via the overlay.uno Overlay website:
2. Create Lower Third (with ClassX)
ClassX Liveboard is a professional CG Playout Solution for automating dynamic overlay contents. You can register for a Demo Version on their website.
After installation of LiveBoard, you can simply add Videos, GFX and other Contents via the user interface. There you also name the Contents with a unique identifier, e.g. “MyLowerThird” for later reference.
LiveBoard allows to connect via TCP and send Commands to show/hide certain Contents. A complete list of Commands is always found in their Window installation path: C:\Program Files\…\ClassX_Applications_v6\remotecontroltester\commands
Lets enable our TCP in PLAYDECK to talk to LiveBoard. The default Port of LiveBoard is 301. Enabling this will show CONNECTED, if the LiveBoard Server is running. Otherwise PLAYDECK will try to connect every 5 seconds, so you can start LiveBoard before or after PLAYDECK:
Lets create our own custom “lower third” composed of a background GFX and Text and group them together.
Click on an empty Overlay Button to open the Editor, then add some Background GFX. Close the Editor, right-click the Overlay Button and position your Background to the bottom area. We also right-click in the video preview and disable “Channel Name”:
We add another Text Overlay and use {blockname} as text placeholder for our title text. Then add another Text Overlay and use {clipname} as text placeholder. Then some positioning and it looks like this:
Now lets group then together: Right-click an empty Overlay Button and select “Create Overlay Group”. Then add our 3 previous Overlays and order them bottom-up:
4. Automate Overlay with Clips/Blocks
We now have a functioning Overlay Button for the Lower Third with dynamic Text Content. Now let’s attach this Overlay to a specific Clip. Select the related Clip and click on the Overlays Icon, then add our Overlay to that Clip, starting 5 Seconds into the Clip and showing for 10 Seconds:
To attach an Overlay to a Block, you can use Commands:
You can copy the Overlay Attachments by right-clicking the Clip/Block and selecting “Copy/Paste Settings”. This will help immensely to duplicate attachments across the playlist.
To automate external Overlays, e.g. ClassX, you would also use Commands on Clips or Blocks, but write your Commands in the “External via TCP” Section:
You can also show/hide Overlays via Actions Buttons via internal or external Commands.
5. Schedule Overlay
In addition to attaching overlays to playlist items, you can also schedule them to run at a specific time and for a specific duration, by right-clicking the overlay:
6. Remote Control
You already learned about Commands in 4. Automate Overlay with Clips/Blocks. You can call these commands from anywhere and start your overlays via your Stream Deck or any other Remote Control Software.
You can use one Channel of PLAYDECK just for the Overlays and send them to your Mixer via External Keying, which is supported for Device Output as well as NDI Output: https://playdeck.tv/howto/keying/
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+).
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",
...
}
]
}
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
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:
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.
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+)
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.
5. 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:
You can then test your resulting Audio Tracks in e.g. StreamGURU:
6. 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:
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.
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.
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.
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.
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:
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.