Get the pre-configured DJF VLC Companion Profile (v1.1)

If you’re looking for a video and audio playback solution across multiple platforms, VLC is your answer!

This famous media player can pretty much handle any format you throw at it, so if your client comes to you with an obscure file a minute before showtime, you’ll be fine.

It’s very easy to drop files into the playlist and rearrange the cue list on the fly – all of which is updated on the Stream Deck instantly.

VLC Console Features

The DJF VLC Companion Profile has been thoughtfully designed to fit all essential playback features into a single page of a Stream Deck XL:

  • Time Of Day clock
  • Elapsed Time Counter (green)
  • Remaining Time Counter (red, with warning colors at under 10-seconds remaining)
  • Loop 1, Loop All, Full Screen buttons
  • Seek forwards/backwards by 1-second and by 10-seconds
  • Play, Pause, Stop, Next, Previous
  • Cue button, to load & pause the first frame of the next video
  • Playlist Cue buttons for 10 items (long-press to delete items from cue)
  • VLC Audio Volume increase/decrease audio volume by 5%
  • ATEM Audio button (for channel audio On/Off, and long-press for Audio-follows-video (AFV))
  • ATEM Auto and Cut buttons
  • Auto In & Auto Out Triggers, for automated Hyperdeck-like control with ATEMs (requires adding the triggers, as outlined below)


Stream Deck XL control of VLC Video Playback


Download VLC

Download the free VLC application ( for Mac, PC, Linux


Install Companion on your Mac, PC, or Raspberry Pi

Installation instructions for Mac and PC

Installation instructions for “CompanionPi” (a preconfigured Raspberry Pi 4 disk image)


Import VLC v1.1 Configuration file into Companion

Open Companion in your web browser (likely the local “” address, as per the “Install Companion” instructions above)

Within Companion:

  • Navigate tabs to Buttons > Import/Export > click on “Import
  • Find the “djf-vlc-1.0.companionconfig” file on your local drive that you downloaded from this website
  • Choose a blank page within your 99 Companion pages
  • Click “Import to page XX” to overwrite the selected page


Set up a Page Jump in Companion

By default, Button #1 (with the big “X”) in your new DJF VLC v1.0 profile will exit you out of the VLC playback page and take you back to Page 1 of Companion.

You can update this button to jump to any of Companion’s 99 Pages, but let’s use Page 1 as our default “Home page” that we will use to be about to access VLC.

  • In your VLC page, select Button #1 and copy using “Command+C”.
  • Navigate back to Page 1 (or type “1” in the page field and hit enter)
  • Select a new blank button on Page 1.
  • Press Paste (Command+V), and a copy of the “X” button will be created.
  • Select this new button, and rename “X” to “VLC” in the “Button text” field.
    • Under “Press actions“, navigate to the “internal: Set surface with s/n to page” action
      • Change the “Page” field to the page number that you installed VLC on to.

You’ve now created a navigational loop.

On your Stream Deck surface, you will be able to click into and out of the VLC Playback page.


Configure Companion to connect to VLC

In the Companion web browser, navigate to:

  • Connections tab > module > vlc > EDIT

Under the Edit Connections tab, ensure the following settings:

  • Label: vlc
  • Target IP:
  • HTTP Password (required): vlcpassword
  • Number of clip names to reserve: 10
  • Target Port: 8080
  • Increase timer resolution: Checked
  • Use • for empty: Unchecked

Alternative setup for VLC running on a remote computer:

  • If you are not running VLC on the same local computer as your Companion installation, you can change the Target IP to a different computer on your local network.
  • This helps if you want to have VLC running on a separate, dedicated computer, but be controlled by the main Companion installation.
    • Simply change the “Target IP” from the local address to the IP address of the remote computer (find that address in that computer’s network settings).


Configure VLC to connect to Companion

There are many playback behaviors you can customize within VLC. We’ll focus here on the main items to get you up and running.

General Preferences

In the VLC application, go to Preferences:

  • Interface tab
    • Playback Behavior:
      • Control external music players: Do nothing (select “Do nothing” if you don’t want external music sources to be affected by VLC control; otherwise, select Pause (or Pause and resume) to ensure there is no other audio source such as iTunes or Spotify competing with VLC).
    • HTTP Web Interface (at the bottom):
      • Enable HTTP web interface: Checked
      • Password: vlcpassword  (this is the matching password within the Companion Profile VLC module. If you use a different password here in the VLC application, make sure to update the password within the Companion VLC module to match).
  • Video tab:
    • Enable videoChecked
      • Display
        • Show video within main windowUnchecked
        • Pause the video playback when minimized: Unchecked
        • Float on Top: Unchecked (I prefer this off when I’m multitasking and doing web browser demos on my livestreams so that the VLC window can sit behind the browser, but if you are setting up VLC with a dedicated output and always want VLC to be in the foreground – usually in full screen mode – then check this)
        • Window Decorations: Unchecked (for a clean Picture-in-picture look if not using full-screen)
      • Fullscreen Settings
        • Start in fullscreen: Checked
        • Use the native fullscreen mode: Unchecked (very important to uncheck this, otherwise the OS will push the video full screen in whatever current display you are working in)
        • Black screens in fullscreen mode: Unchecked
        • Fullscreen Video Device: Select the output monitor
  • Subtitles / OSD tab;
    • Onscreen Display
      • Enable OSDUnchecked (important this is unchecked to retain a clean video feed, otherwise the filenames will appear at the start of a file’s playback)
  • Input / Codecs tab:
    • Codecs/ Muxers
      • Hardware decoding: Unchecked (Unchecking this can help if you are experiencing the first few seconds of playback being scrambled video)

Make sure you click “Save” at this point, or else VLC will forget your settings before moving on to the advanced features below. Also remember to quit and restart VLC for some of these settings to take effect. 


Advanced Settings (Preferences > Show All)

Open Preferences again and click the Show All button at the bottom of the panel to access advanced settings:

  • Interface > main interface > macosx:
    • Behaviour
      • Auto-playback of new items: Unchecked
      • Keep recent items: Checked
      • Show fullscreen controller: Unchecked
      • Resize interface to the native video size: Checked
      • Pause video playback when minimized: Unchecked
      • Lock Aspect Ratio: Checked
  • Playlist
      • Play files randomly forever: Unchecked
      • Repeat all: user choice (this can be controlled at-will within the DJF Companion profile button: “Loop All”)
      • Repeat current item: user choice (this can be controlled at-will within the DJF Companion profile button: “Loop One”. This is particularly useful if you are using VLC as a background music player and want a playlist of tracks to continue cycling through)
      • Play and exit: Unchecked
      • Play and stop: Unchecked (check this if you want the VLC playback window to disappear when the video finishes playing and reveal the desktop instead – useful for one-off video playback where you are using the same HDMI connection for desktop demos)
      • Play and pause: Unchecked (check this if you want the video to freeze on the last frame of video playback. Ensure this is unchecked if you want videos to play one after the next, or if you are using VLC as an audio playlist in the background and want all music tracks to continue without pausing)
      • Start Paused: Unchecked (checking this will allow you to “select” (or pre-cue) a video, but won’t begin auto-playback, nor will it show the first frame of video. If you select this option, you’ll have to select a video to playback and then also press play to being playback)
      • Autostart: Checked

Again, remember to Save, and to quit and restart VLC in order for the changes to take effect.


ATEM Input Audio Control

Now that you have the VLC control set up, let’s connect the video out from your computer to your ATEM switcher. This is likely an HDMI out from your computer, and an HDMI into a video switcher like the ATEM Mini/Pro/ISO, or Extreme.

By default, this profile is set to use VLC into Input7 on an ATEM (Mini, Pro, Extreme, Constellation, or any other ATEM).

If you want to select a different Input source on your ATEM to control the Audio button (On/Off/AFV (audio follows video)):

  • Navigate in Companion to > Buttons > Page X (whatever page you installed VLC on to) > Button #30
  • Change the button text “AUDIO\n$(atem:short_7)” to the input number you want (ie, if using an ATEM Mini which only has four inputs, you might want to change it to “AUDIO\n$(atem:short_4)”
  • Change the Input# on all the dropdown menus for all the Actions and Feedback commands to the Input number you are using:


Change the Input# on the Actions:

Then scroll down and also change the Input# on the feedback for Button 30:


Set Up Triggers for Auto In / Auto Out

To simulate Hyperdeck control, VLC can be set up within Companion to automatically play when the VLC input is put to program. It can also automatically auto-fade out when a video finishes playing.

Buttons #9 and #10 in the DJF VLC v1.0 profile turn on “Auto In” and “Auto Out” respectively. However, Companion can’t import their associated Triggers, so we’re going to set them up now manually to connect to these buttons.


This trigger presses play in VLC when it reads that the ATEM with the Input named “VLC” has been put into Program.

  • Navigate in Companion to > “Triggers” tab > click “Add New Trigger”
  • Name: VLC AUTO IN
  • Condition
    • Type: Feedback
      • + add Feedback: internal: Check variable value
        • Variable: Label of input active on program bus (M/E 1) (atem:pgm1_input)
        • Operation: =
        • Value: VLC (note: in the ATEM Software Control application, make sure the input that VLC is connected to is called “VLC”, since the input label needs to match this Value) 
      • + add Feedback: atem: Tally: Program
        • Input: (select your relevant input number if not Input 7)
  • Action
    • + add action: vlc: Play



This trigger will perform an AUTO transition when the playback time remaining reaches 00:00:02… AND only when it also reads that VLC Input# is present in the Program Tally (in order to avoid an unwanted AUTO if previewing off air). 1 second later, VLC will pause the video so it doesn’t continue to play audio in the background.

Make sure your video files don’t have any mission critical audio within the last 1 second.

  • Navigate in Companion to > “Triggers” tab > click “Add New Trigger”
  • Name: VLC AUTO OUT
  • Condition
    • Type: Feedback
      • + add Feedback: internal: Check variable value
        • Variable: Playing time left, HH:MM:SS (vlc:r_hhmmss)
        • Operation: =
        • Value: 00:00:02
      • + add Feedback: atem: Tally: Program
        • Input: (select your relevant input number if not Input 7)
  • Action
    • + add action: atem: ME: Perform AUTO transition
      • M/E: M/E1
    • + add action: vlc: Pause/ Resume
      • Delay: 1000ms