Automate YouTube Chapter Markers with Notion Timestamp

Save time by automatically logging YouTube chapter markers during your livestream.

The data will be saved into Notion. This tutorial explains how to conform the Notion data into a format that YouTube can read as Chapter Markers.

Once this connection has been established, you can reliably set-and-forget. Companion will always remember the connection during your livestream logging.

This video tutorial demonstrates the process, and there are written steps below.

 

 

1. Connect a Notion “Integration” to a “Parent Page”

  1. Create a free Notion.so account if you don’t already have one (you can sign up with an email address, or your Google or Apple account)
  2. CREATE AN INTEGRATION: Go to Settings & Members > Connections >” Develop or manage integrations”
  3. Create a new integration
  4. Give the integration any name
  5. Copy the secret key & save to enter into Companion later on
  6. CREATE A PARENT PAGE: Click “New Page” and give it any title:
  7. In the three-dot menu at the top right, choose Add Connection, and select the new integration you just made in the previous step (tip: if it’s not there, try refreshing the page)
  8. Confirm permission for Connection to access the Parent Page and all its child pages.
  9. Copy the last string of characters from the URL of the Parent Page (everything after the page name). Save this to enter into Companion in the next step.

2. Connect Companion to Notion

  1. Open Companion > Connections > Add Connection… search for “notion”, then Add “Notion: Timestamp”
    1. Label: name the connection whatever you like
    2. Notion API Key: Paste the Secret Key from the prior step
    3. Parent Page ID: Paste the last string of characters from the Parent Page’s URL from the prior step.
  2. Save the Connection. The status column should turn to a green checkmark if successful.

 

3. Create Timestamps during your Livestream (or offline record!)

During your livestream, start a Timestamp session, and capture Notion markers using three different methods:

  1. Manually press a button – create a button and add a Notion marker action. Manually press the button to log that moment. You can download my Free ATEM Switcher profile which contains a MARK button to manually timestamp.
  2. Linked to other Companion actions – markers are created in conjunction with an action. For instance, if you have DJF CUE, each time you advance to the next cue, a marker is automatically created
  3. Automatic Triggers – under the Triggers tab, create a condition whereby if a variable is True, then a Marker is created. For instance, the DJF 4.0 Control profile contains a Trigger that creates a marker every time the H2R Graphics chat variable comes on air, thereby logging when viewer comments are displayed in the livestream.

 

4. Conform Notion data

Once you have completed your livestream or recording session, and the associated Notion capture session, you need to format the data so YouTube can read it.

  1. In Notion, located the session data (it will be a new child page, under the Parent Page created previously)
  2. Right-click the column header “companionTimeDate” to “Sort Ascending”
  3. Drag the “timestampValue” column to be the first column
  4. Find the first and last marker entries you wish to sync with the YouTube timecode. Click and drag a marquee to select the data in both the “timestampValue” and “message” columns.
  5. Copy the data (Command+C)

 

4. Re-sync markers in Google Sheets

  1. Open the free read-only Google Sheet DJF CUE 4.0 – Notion Timestamp Conform
  2. Go to File > “Make a copy”… to make an editable copy of the spreadsheet
  3. Paste the Notion data from the previous step into the yellow highlighted box
  4. This is the critical part to sync the Notion timecode to how it appears in YouTube: In your completed livestream on YouTube, move your playhead to find the timecode point that you want to sync with the first selected Notion marker. Make a note of that time in YouTube in H:MM:SS format. In the example below, 0:03:35 is the timecode in YouTube that aligns with the “SHOW START” marker in my Notion log.
  5. Enter that first YouTube timecode duration H:MM:SS into the spreadsheet box with blue text. In the above example, the show started on YouTube at 0:03:35, so this number was used in the blue text box in the spreadsheet.
  6. The yellow fields now show the corrected YouTube timecode. Make any edits you wish to the description field.
  7. Copy the yellow fields (Command+C), and Paste into the YouTube Description field.
  8. Make sure the first entry begins at 0:00:00 (this signifies to YouTube to create chapters)

 

Grouping Multiple Stream Decks

Multiple Stream Deck XL or Emulator Operation

The DJF 4.0 profile supports up to 4x Stream Deck XL’s (or four iPads running the web browser emulators – however, the Stream Decks are recommended as the most responsive and powerful to operate).

You don’t have to have four Stream Decks to make use of this. It will work with one or two, but three is the sweet spot to display each camera’s three pages (HOME, RECALL, ADJUST) at one time.

The profile ships with 4 Emulators grouped in a QUAD by default. To change this to your physical surfaces, first connect your four Stream Deck XL’s via USB to the computer. (A powered USB 3.0 hub is recommended, unless your computer supports full power to four USB ports).

Under the Surfaces tab, label your Stream Deck XL’s 1, 2, 3, 4. It’s also a good idea to label your physical Stream Deck XL surface 1, 2, 3, 4 to know which order they are in.

Then copy the ID of each emulator ID or Stream Deck ID surface. It will look like:

  • emulator:cbpYBxiS-omuxtJSupMaa
  • streamdeck:CL49E2F01228

On Page 99 (MENU) (shown above) of the Companion profile, button (#8) called SURFACE has 4 Steps. These correspond with the Surfaces operating as a SOLO, DUO, TRIO, or QUAD group.

Paste the IDs in a cascading array like this:

 STEP 1 (SOLO)

  1. Blank
  2. Blank
  3. Blank
  4. Blank

 STEP 2 (DUO)

  1. ID1
  2. ID2
  3. Blank
  4. Blank

 STEP 3 (TRIO)

  1. ID1
  2. ID2
  3. ID3
  4. Blank

 STEP 4 (QUAD)

  1. ID1
  2. ID2
  3. ID3
  4. ID4

Now you have a button that can toggle between grouping emulators or decks as SOLO, DUO, TRIO, or QUAD operation.

Keeping all fields blank in Tab 1 (SOLO) will ensure all surfaces operate independently.

Note that you can still use a fifth or even more surfaces independently, but that when using a DUO, TRIO, or QUAD grouping, navigating through the additional surfaces will mirror updates in the group array.

For example, if you had grouped four Stream Deck XL’s into a QUAD, and then generated a new Emulator for use on an iPad, as you select cameras 1-6 on the iPad, the QUAD surfaces will mirror the iPad.

Selecting cameras on the QUAD will not mirror changes on the iPad.

VLC Playback Control User Guide

VLC (3.0.18)

Download VLC

Connect your Computer to your ATEM via HDMI

    • **If you have a Macbook, you may need a USB-C-to-HDMI adapter
    • For the ATEM Mini Pro profiles, use inputs HDMI 3 or HDMI 4
      • **If you are also running H2R v1, it is best to run VLC into HDMI 3, and H2R v1 into HDMI 4
    • For the ATEM Mini Extreme profiles, use inputs HDMI 7 or HDMI 8
      • **If you are also running H2R v1, it is best to run VLC into HDMI 7, and H2R v1 into HDMI 8
    • Connect the HDMI cable from your computer to the ATEM input HDMI 4.
    • Under Mac’s System Preferences > Displays > Arrangement… Uncheck “Mirror Displays”.
    • Under VLC > Video > Full Screen Video Device… Select the appropriate display that is feeding into ATEM’s HDMI 4.

 

Configure VLC to connect to Companion

    • Preferences > Show All > Interface tab > HTTP Web Interface
      • Enable HTTP web interface
        • Set password to “vlcpassword” (this is the password within the DJF Companion Profile VLC module. If you use a different password in VLC, make sure to update the password within the VLC module in Companion).
    • Preferences > Show All > Interface tab > Show All > interface > main interface
      • Select “Web”
      • Select “Telnet”
    • Preferences > Show All > Interface tab > Show All > interface > main interface > macosx
      • Deselect “use the native fullscreen mode”
      • Deselect “Show fullscreen controller”
    • Preferences > Show All > Interface tab > Show All > Playlist
      • Select “Play and Pause”
    • Preferences > Subtitles/OSD tab > Onscreen display
      • Disable “Enable OSD”

 

DJF Cue User Guide

 

What is DJF CUE?

DJF Cue is an innovative Run of Show control sequence designed to streamline and enhance the operation of your livestream.

It benefits from Companion’s ability to integrate a wide range of professional equipment to automate various aspects of the livestream, ensuring a smooth and professional broadcast experience.

 

DJF 4.0 Cue – Automate your Run of Show

 

Control Surfaces

There are multiple ways to control your DJF CUE:

  • Stream Deck XL – view and execute all 24 cues
  • Computer web browser – operate remotely on your computer
  • Across the network, or internet via VPN – operate remotely via a different computer
  • iPad/ iPhone – operate wirelessly
  • Logitech r500 clicker – wireless bluetooth remote hand control to execute cues and step backwards
  • Stream Deck Pedal – foot control to execute cues and select forwards/backwards

For simple advances, you can use a Stream Deck Pedal, or Logitech r500 Clicker to execute cues in sequence.

To see all 24 cues on one page, use the other surfaces to jump randomly.

Each time you execute a cue, the highlighted cue automatically advances to the next cue, to indicate what will be triggered next.

 

Example Show

On Page 5 of your DJF 4.0 profile, you will find 24 buttons available for customization. You could use this for something as simple as advancing a Power Point presentation, or as complex as operating cameras, sound, lighting, switching, and whatever other equipment you can control via Companion.

As an example of how you can adapt this to suit your own needs, we will look at a show prototype with seven cues. The video at the top of this page demonstrates how to build out this Run Of Show sequence.

  1. PRE SHOW: a “first look”. When triggered, this cue will get you ready for your livestream, from camera positions, Program inputs, Keys, muting microphone and starting background music, starting a graphics timer. Everything will be set up for a first look, as a default position so that you can go live before the actual show content begins.
  2. SHOW START: this button will trigger the start of the show by opening up the microphone, lowering the music, switching the presenter’s camera angle on, and beginning the camera movement.
  3. PART 1: this is the first topic, which brings on a graphic and changes the camera to a default presenter position. It also stops the background music.
  4. PART 2: the second topic graphic is brought on screen, as well as the presenter camera angle.
  5. PART 3: the third topic graphic and presenter camera angle is brought on screen
  6. GOODBYE: This triggers a 30-second sequence for the presenter to wrap up the show: the camera slowly widens out, the website call to action graphic is displayed on screen, and the background music fades in. When the presenter is ready to say goodbye,
  7. WRAP: this button mutes the presenter microphone, takes the presenter’s camera angle off air, increases the music volume to full, and shows a graphic call to action. The show is now in a holding pattern like the PRE SHOW cue, whereby you can wait for any latency in the livestream program to finish reaching the audience (ie YouTube’s latency can range 1-25-seconds) before finishing the livestream event.

 

Time Stamping & Logging Cues in Notion

By default, this DJF profile includes a Notion instance. Once you have connected the instance to your Notion account, the DJF Cue will automatically log each time you trigger a cue.

This is particularly useful metadata to help identify chapter markers for YouTube after a livestream, so on-demand viewers can easily jump to relevant content.

To start a Notion session

  • Press and hold the “START” button for 3-seconds (button #6, the left arrow)
  • The END button turn red to indicate it is running
  • The cue will highlight the first cue #1

To stop a Notion session

  • Press and hold the “END” button for 3-seconds (button #7, the right arrow)
  • The END button will no longer be red and return to grey to indicate the Notion session has stopped.
  • The cue will highlight the last cue #24

Install H2R Graphics for DJF Companion Profile

Install H2R Graphics (2.17) for DJF Companion Profile

Download H2R Graphics

In H2R Graphics version 2, install the “DJF 4 H2R.json” project settings

  • Open H2R Graphics V2
  • Under the Settings > Import/Export, select Import
    • Select the H2R Graphics template that came with the DJF Companion Profile (“H2R-Graphics-DJF4.0-XXXXXX.json”)
    • This is essential to install, as the shortcodes included in this H2R .json profile are linked specifically to the Companion buttons
    • After this is installed, you may modify the text fields and theme look

Set the background color to Green

 

In Companion, update the H2R Graphics module fields

  • Set Target IP to 127.0.0.1 to control the H2R Graphics on your local computer
  • Set Target Port to 4001
  • Set Project ID to ABCD
  • Click “Save”

 

Connect your Computer’s HDMI output to the ATEM

  • Connect the HDMI cable from your computer to the ATEM input.
    • If you have a Macbook, you may need a USB-C-to-HDMI adapter.
  • By default, VLC is using ATEM’s Input 4
    • If you are also running VLC on Input 4, it is best to change this to a free input
  • Open Output 1 within H2R, and make the green window full screen on that HDMI output source.
  • In your ATEM’s Upstream Key, select the Chroma palette and key out the green image. The green should disappear and you see the clean program image underneath.
    • Put your Upstream Key On Air
    • Save Startup State to recall this setup when you power the ATEM off and on.
  • Now you effectively have an “invisible” layer over your program that is always active, and any time you trigger H2R graphics, they will appear on screen.

Alternative Output via Network Computer or Raspberry Pi 4

  • H2R is network-based. Therefore, if you have another computer running within your local network, you can open a web browser and direct the URL to H2R’s Output. Depending on your router’s address, it will look something like this (bold parts for emphasis):
    • http://192.168.8.107:4001/output/ABCD/
      • In this example, “107” refers to the computer that is running the H2R application (likely your local machine), and “ABCD” refers to the specific H2R Project that is open.
  • The advantage of this set up is that your computer/laptop that is running and controlling H2R does not need to be connected via an HDMI cable to your switcher. Instead, you could operate graphics over the local WiFi.

Install Native Elgato Software Stream Deck XL Control for Companion

Install native Elgato Stream Deck Software (6.1.0)

**Note: support for native Elgato Stream Deck Software that was packaged in DJF v3 has been depreciated in DJF v4 to increase native Companion real estate and enable a multi-surface Stream Deck XL workflow. Therefore Elgato software profiles are no longer shipped in DJF v4, and it is recommended to run Stream Deck surfaces native to Companion.

Elgato Stream Deck software is available here

Turn On Elgato Plugin within Companion

  • Within Companion, navigate to Settings > Devices and select the checkbox “Use Elgato Plugin for StreamDeck access (Requires Companion restart)”

 

  • This will enable Companion to operate via the native Elgato application plugin.

 

Add the Companion Plugin to your native Elgato Stream Deck software

  • Open the Stream Deck Store
  • Search for “Companion”.
  • Install the Companion plugin.

 

Back up your own Stream Deck Profiles

  • If you are already using Elgato’s Stream Deck software, make sure you back up your work first!
  • Go to the Stream Deck Icon in the top-right menu bar
  • Select “Preferences” (Command + ,), then “Profiles”.
  • To the right of the “+/-” symbols, select the dropdown menu.
  • Go Backup All > Create Backup…
  • Save the file to a safe folder.

 

Install the bonus Stream Deck Profiles

  • FULL RESTORE
  • Go to the Stream Deck Icon in the top-right menu bar
  • Select “Preferences” (Command + “,”), then “Profiles”.
  • To the right of the “+/-” symbols, select the dropdown menu.
  • Go Backup All > Restore From Backup…
  • Select the file ending in “.streamDeckProfilesBackup” to restore a full backup
  • INDIVIDUAL PAGE RESTORE
  • Alternatively, if you don’t want to overwrite your existing setup, you can import individual pages.
  • Go to the Stream Deck Icon in the top-right menu bar
  • Select “Preferences” (Command + “,”), then “Profiles”.
  • To the right of the “+/-” symbols, select the dropdown menu.
  • Select “Import…”
  • Find the individual profile ending with “.streamDeckProfile”
    • Note that when importing individual Stream Deck Profiles, the “profile jump” buttons will need to be manually re-linked to the appropriate profile (by contrast, these links will remain intact if “restoring a full backup” instead).

 

Creating Companion buttons on your Stream Deck Profile

  • You can also build your own Elgato Stream Deck profile pages in conjunction with Companion.
  • From the right sidebar, again Search “Companion”
  • Drag the “Companion button” to each of the Stream Deck’s keys
  • “Dynamic” vs Static pages/buttons:
    • By default, dragging a Companion button on to Stream Deck will create a Dynamic Button.
    • Not modifying the default Dynamic button is recommended, as it will update the function as you navigate through the Companion Profile, however:
  • “Static” buttons:
    • If you want a dedicated Companion button that does not change when the Companion surface does, choose the specific Page and Button number (as found in your Companion software)

 

Simultaneously running Elgato Stream Deck software and Companion’s server

  • You can now mix native Stream Deck buttons into your Elgato Stream Deck’s Companion profile page
  • Button #9 in the DJF Companion Profile (the 1st button on the 2nd row of every page) has been reserved across all Companion pages. When running Companion solo, this button will jump between profiles within Companion.
  • However, if you are also running native Stream Deck software, Button #9 will now switch between your Stream Deck profiles (yes- all these names get confusing!!). This is to allow you to create a dedicated Stream Deck button to switch to other native Elgato Stream Deck profiles you may have.
    • If using this option, you’ll have to use Button #22 on the Menu page to switch between different Companion Profiles (i.e. to jump between controlling the ATEM Pro vs Extreme).
  • It’s recommended to leave all other buttons on the profile as the default “Dynamic” state, so that Companion will dynamically update them

 

Troubleshooting

  • Note that as of Companion version 2.2.0+, you cannot separate multiple Stream Deck Surfaces when using Elgato’s software. This is because it’s now mandatory under Companion > Settings > Devices to select the checkbox “Use Elgato Plugin for StreamDeck access (Requires Companion restart)” to operate Companion via the native Elgato application. Therefore, all Stream Deck hardware (32-button, 15-button, and Mobile App) is routed through the “plugin” surface in Companion, and a change on one surface will sync changes on the other surfaces.
  • In this instance, if you want to use multiple Stream Decks as independent surfaces, it is best to quit Elgato’s native software entirely, and only run the Stream Decks via the Companion software.

Install ATEM Control for Companion

Install Blackmagic Design ATEM Switchers (9.2.2)

Install ATEM Switcher software

  • Download and install the most recent ATEM Switcher software from Blackmagic Design’s Support page.
  • Each “update” is a full program installation, so the most recent version will suffice to bring your software and firmware up to date.

 

Set a Static IP Address

  • Connect your computer to the ATEM via USB.
  • When connected via USB (as opposed to ethernet), you will be able to change the IP address of the ATEM within the “ATEM Setup” application.
  • Choosing a static IP address appropriate to your router’s range is recommended.
    • Your settings will likely differ, but for example:
      • Router            192.168.1.1
      • Computer       192.168.1.2
      • ATEM             192.168.1.3
  • Within Companion, make sure the ATEM Module’s Target IP has been updated with the new IP Address that was set for the ATEM hardware (as previously mentioned in the Companion setup).

 

Install DJF Macros in ATEM Software Control

  • Open the “ATEM Software Control” application.
  • Go to File > Restore
  • Choose the “ATEM-macros-DJF4.0-XXXXXX.xml” that came with your DJF Companion Profile and restore Macros.
    • Basic requirement is to install the Macros only.
    • Deselect all options, then select “Macros” only
  • Go to File > Save Startup State to commit the macros to the ATEM hardware.
    • Once you’ve “Saved the Startup State”, the macros (and any other settings) will still be present each time you power on the ATEM. The ATEM can now operate without the need for Blackmagic’s ATEM Software Control application.

 

Troubleshooting

  • Companion speaks directly to the ATEM via the Ethernet Network and does not require the ATEM Software Control to be running in order to operate.
  • Note that Companion only speaks to the ATEM via Ethernet, not the USB port. While you can install the ATEM Macros via a USB connection, you will need an Ethernet connection to control the ATEM via Companion.

Canon PTZ Control – DJF 4.0 User Guide

 

  • Looking for Canon PTZ Installation instructions? Jump here.

 

Operation Modes

PTZ 1 Home Page – Select Drive Modes, Loop, set speed, Preview/Program, Manual Pan Tilt Zoom, and select cameras.

On the HOME page for each of the 6 cameras, there are different modes of operation along the top row.

  • FAST / MED / SLOW – quickly alter the TIME or SPEED of the Drive Mode to 2-seconds, 7-seconds, or 30-seconds. (you can set a specific time on the Adjust page).
  • TIME / SPEED – sets the camera into Drive TIME mode. Press a second time to enable Drive SPEED mode. Use these modes to get the smoothest on-air maneuvers.
  • REPO – for “reposition” (also documented by Canon as “Normal” mode). This provides the fastest repositioning from one preset to another, but does not create a smooth on-air movement. Use this when previewing a camera before taking to program.
  • LOOP / LOOP OFF / LOOP ACTIVE– press to arm the LOOP mode, then select a preset to loop between that and the last used preset. Press another preset button to update the two presets in use. The speed of the loop is determined by the number of seconds that the Drive Time Mode is set to, so preset the TIME before looping. Button will show LOOP ACTIVE when the camera is in an active loop cycle. Press the LOOP ACTIVE button again to disable the loop. The camera will finish the current maneuver before stopping. The looping will be canceled if you press any of the following buttons while active: FAST / MED / SLOW, TIME, SPEED, REPO, LOOP ACTIVE, or the manual PAN or TILT buttons.
  • GANG / GANG OFF – when GANG is active, any adjustments to camera drive speed or manual adjustment speed will be replicated across all 6 cameras. Disable the GANG to adjust camera speeds independently. Note that when you activate LOOP, it will automatically disengage GANG to prevent a camera loop from being canceled by speed changes made on other cameras.
  • PVW / PGM / PVW PGM OFF – Choose between a Preview or Program mode: Preview will set the selected camera into the ATEM’s Preview monitor. This is useful to preview a camera and position it before cutting it to program. Program mode: this disables the Preview function, and instead will automatically put the camera into Program when a Preset button is pushed. Use this to easily cut between different shot sizes directly, without having to Preview and then Cut. There are two variations to this Program behavior: when in Drive Speed (SPEED) or Drive Time (TIME), the camera will cut to program immediately, and you will see the maneuver play out on air. When in REPO mode: the camera will reposition rapidly to the new preset position, and then cut to program on a 2750ms delay. The delay is to allow the sharp camera reposition movement to occur off air, before taking the camera live.

 

Navigating the Back End Pages

Companion has 1-99 pages available for use. This is where buttons are programmed, but doesn’t reflect how the front end navigation on a Stream Deck XL surface appears.

Here’s a quick-start reference to a few key pages that this profile utilizes:

  • Page 1 – HOME – Blank Custom Home page for you to copy most used buttons to for quick access
  • Page 2 – SHOT – Switching page
  • Page 3 – SCENE – Custom Macros and Scene compounds for easy recall
  • Page 4 – SHOW – Custom functions to run a show, such as start/stop streaming/recording, mute audio etc
  • Page 5 – CUE – Custom Run Of Show to execute 1-24 cues with a simple advance button (#8)
  • Page 76 – PTZ GANG – A backend page containing functions utilized by the GANG, PGM, PVW Modes on the front end (leave this page unmodified).
  • Page 77 – PTZ1 – HOME – Set PTZ mode operation, Recall Presets 1-8, manual Pan Tilt Zoom, select Cameras (add Preset names here)
  • Page 78 – PTZ1 – RECALL – Recall Presets 9-36 (Add Preset names here)
  • Page 79 – PTZ1 – ADJUST – Adjust camera exposure settings, and Custom Trace templates for you to modify
  • Page 80-94 – PTZ 2-6 HOME/RECALL/ADJUST pages (same as above for PTZ1)
  • Page 99 – MENU – Main Menu to jump to all other pages in the profile, including PTZ camera control

Install Canon PTZ Control DJF 4.0

Welcome to the installation guide for Canon PTZ control via DJF 4.0 Companion Profile.

System Requirements

  • Mac, Windows, or Raspberry Pi 4 8GB to host the Companion Application
  • Router and network switch to connect your local computer and PTZ cameras via ethernet

Download

 

Installation

For a more detailed introduction to Companion, see the Companion Installation guide for the initial steps to installing the Companion application itself, then come back here to configure the Canon PTZ cameras.

After downloading the Companion 3.1.1 application, unzip the file and open the disk image. Copy Companion to your Application folder and open.

On a Mac, Companion will run in the Menu Bar in the top right. Click “Show/Hide Window”, and choose your interface – wired is preferred.

Open the GUI in a web browser and navigate to the Import/Export Tab.

Select your Canon PTZ Control DJF 4.0 Profile from your local disk and choose full import.

NOTE: This will overwrite any existing settings, so if you have used Companion before, Export your previous work to back it up. 

 

Set Camera IP Addresses

Under Companion’s Connections tab, select each PTZ module (ptz1, ptz2, ptz3, ptz4, ptz5, ptz6) and enter the camera’s IP address.

Click Save. The Status column will turn green when the camera’s IP address has been located successfully.

 

BANK: Control 18 cameras in 3x Banks of 6 cameras

By default, the profile is set up to control Companion Canon modules for PTZ 1 – 6.

However, if you have more than six cameras, you can store additional IP addresses and ATEM Inputs in the program’s Custom Variables for easy switching between three banks of six cameras (grouped by 1-6, 7-12, 13-18).

Instead of inputting IP addresses directly in the modules in the Connections tab, instead go to Buttons > Variables > Custom Variables, and type “ptz_i” in the Filter field.

This will shortlist the variables to show the 18 IP addresses and 18 ATEM Inputs. (Use the Contract/Expand View button next to the red “Back” button for easy viewing of the list).

You now have a matrix to assign a camera IP to an ATEM switcher input. For example, you could use

  • $(internal:custom_ptz_ip7) = 192.168.1.101
  • $(internal:custom_ptz_input17) = 7

This would link the PTZ camera with the address 192.168.1.101 with the ATEM’s 7th Input.

Now when you toggle the BANK button (#31), you will toggle between camera slots for 1-6, 7-12, 13-18.

Long press the BANK button to disable it to ensure you don’t accidentally press it during a show. Long press to re enable BANK switching.

User-selectable input routing: You don’t have to follow strict sequential order either. This gives the flexibility to choose which ATEM input to route your camera’s video signal into.

For example, if you had PTZ Camera 4 that you needed to route into the ATEM’s 15th input because inputs 1-14 were already occupied, you would enter “15” in the Custom Variable field for $(internal:custom_ptz_input4). Now the 4th PTZ slot is occupied by Input 15.

 

Multiple Stream Deck XL or Emulator Operation

This profile supports up to 4x Stream Deck XL’s (or four web browser emulators, or 4x iPads – however, the Stream Decks are recommended as the most responsive and powerful to operate).

You don’t have to have four Stream Decks to make use of this. It will work with one or two, but three is the sweet spot to display each camera’s three pages (HOME, RECALL, ADJUST) at one time.

The profile ships with 4 Emulators grouped in a QUAD by default. To change this to your physical surfaces, first connect your four Stream Deck XL’s via USB to the computer. (A powered USB 3.0 hub is recommended, unless your computer supports full power to four USB ports).

Under the Surfaces tab, label your Stream Deck XL’s 1, 2, 3, 4. It’s also a good idea to label your physical Stream Deck XL surface 1, 2, 3, 4 to know which order they are in.

Then copy the ID of each emulator or Stream Deck surface. It will look like:

  • emulator:cbpYBxiS-omuxtJSupMaa
  • streamdeck:CL49E2F01228

On Page 99 (MENU) (shown above) of the Companion profile, button (#8) called SURFACE has 4 Steps. These correspond with the Surfaces operating as a SOLO, DUO, TRIO, or QUAD group.

Paste the IDs in a cascading array like this:

 STEP 1 (SOLO)

  1. Blank
  2. Blank
  3. Blank
  4. Blank

 STEP 2 (DUO)

  1. ID1
  2. ID2
  3. Blank
  4. Blank

 STEP 3 (TRIO)

  1. ID1
  2. ID2
  3. ID3
  4. Blank

 STEP 4 (QUAD)

  1. ID1
  2. ID2
  3. ID3
  4. ID4

Now you have a button that can toggle between grouping emulators or decks as SOLO, DUO, TRIO, or QUAD operation.

Keeping all fields blank in Tab 1 (SOLO) will ensure all surfaces operate independently.

Note that you can still use a fifth or even more surfaces independently, but that when using a DUO, TRIO, or QUAD grouping, navigating through the additional surfaces will mirror updates in the group array.

For example, if you had grouped four Stream Deck XL’s into a QUAD, and then generated a new Emulator for use on an iPad, as you select cameras 1-6 on the iPad, the QUAD surfaces will mirror the iPad.

Selecting cameras on the QUAD will not mirror changes on the iPad.

 

User Guide

Ready to start using the Canon PTZ Control DJF 4.0 Profile? Jump to the User Guide here.

 

Recommended Hardware:

Canon CR N300 PTZ – BH: https://bhpho.to/3td1dbG Amazon: https://amzn.to/3GQD68l

Canon CR N500 PTZ – BH: https://bhpho.to/3aq6yG3 Amazon: https://amzn.to/3zl9gY0

Elgato Stream Deck XL – BH: https://bhpho.to/3tkNnnF Amazon: https://amzn.to/3xfqGCK

Netgear 8-port Unmanaged POE+ Network Switch: BH: https://bhpho.to/3NoQRO6 Amazon: https://amzn.to/3zfKTed

Beryl Travel Router: https://amzn.to/3MqCdnX

Yololiv Instream

Thoughts and Impressions on the Yololiv Instream

Having received the Yololiv Instream from our friends over at Yololiv, here’s a running summary of my thoughts on the device.

Updated 2/11/2023

Initial Impressions

  • Good size balance between easy to handle and transport, and screen being big enough to view.
  • Touch screen interface is a little tricky to navigate between the apps and the Instream console. Swiping up to reveal the Android navigation controls to switch apps or go full screen is easy to miscalculate – not something you’d want to get wrong mid livestream.
  • Managing and responding to comments in stream is challenging.
  • Device seems powerful and responsive.
  • Need to do more testing on the rendering quality of the “Crop” mode – initial impressions is that the 9:16 crop-in was not as sharp as anticipated – from what I see in the recording playback. This might be less noticeable on mobile, but doesn’t appear to be full 1080 lines.

Wishlist

  • Would like to be able to boot up the Instream to optionally run the Yolobox horizontal platform. Not sure what the tech limitations are here, but I can see that being valuable for customers to be able to use the hardware in a horizontal mode.
  • “Snapshots” feature: Once you have compiled a look (ie selected a PIP of two or more inputs, graphic background, lower third, countdown), have a “snapshot” button that will save the current layout (with the correct graphic layering) so that the scene can be switched back to with a single click during a show.
  • Screen Capture & Auto Thumbnail update – I want to pull screen grabs from program feed and save to SD card as a PNG/ JPEG. I use this all the time on the ATEMs when scheduling a future YouTube livestream – I’ll grab a still, and upload the image to be the program thumbnail. It would be amazing if Yolobox could automate this – with the option to update the scheduled livestream Thumbnail on YouTube, and to save the image to SD card. Additional option to automatically email the image to the user’s email address and a guest email address would help to work with the file immediately without having to eject the SD card.
  • Graphics: user-selectable option to place graphics in the background. Currently they are only foreground, but would help to have a full screen graphics in background by default to layer video inputs over the top.
  • FTP access of the SD card… i.e. use a laptop to load videos or graphics onto or off the SD card via the network, or copy off a program recording without having to eject the SD card.

Development Ideas

Yololiv Instream – livestreaming DJF Live to Instagram

  • Something I am still workshopping is how to optimize for a simultaneous Youtube and Instagram livestream – not the hardware, but the horizontal vs vertical design layout. Current easiest method is to scale down the 16:9 Youtube program to fit within a 9:16 letterbox crop for mobile. The problem is this makes for a very small viewing experience on a phone screen.
  • This is where integration with Companion could help – we could use Triggers to follow ATEM program commands and switch secondary outputs on the Yololiv Instream’s two HDMI inputs and graphics that is optimized for vertical.
  • For example, a mid shot of a presenter on CAM1 would go out horizontal to the ATEM. The Instream would be receiving the ATEM’s mix-effect 2 bus into HDMI1. Companion would know when CAM1 is in ME2 program, and would tell Instream to switch to the cropped-in version of HDMI1, so that the mid-shot is full screen.
  • The Instream’s HDMI2 could use a vertical chroma graphics source to overlay vertically optimized graphics. H2R Graphics output 1 would send horizontal to ATEM, and Output 2 would be aligned vertically and sent to Instream’s HDMI2, with a permanently-on chroma key applied.
  • Then if we cut to a two-shot (ie two people talking in the same frame) on CAM2 on the ATEM, Companion would tell the Instream to switch to a 16:9-within-9:16 layout so that full coverage is visible.

Comments

What has been your experience of the Yololiv Instream? What questions do you have about how it operates or is capable of?

Install VLC Playback Control on Stream Deck XL

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 (3.0.17.3) 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 “127.0.0.1:8000” 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: 127.0.0.1
  • 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 127.0.0.1 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.

AUTO-IN TRIGGER

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

 

AUTO-OUT TRIGGER

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

 

2ME Constellation ISO Portable Rack

 

20-inputs, 12-outputs, 2-wheels…

Portable live streaming case with 8-channels of 1080p60 recording. Full equipment list below.

I upgraded from the ATEM Mini Extreme ISO to the ATEM 2ME Constellation HD, plus a new ATEM SDI Extreme ISO for full SDI-workflow for backup recording and streaming.

Most of all, I wanted the equipment to still fit within my SKB 4U Studio Flyer Case so that transportation remained easy.

 

CHAPTERS

00:00 What’s inside?

00:37 SKB 4U Studio Flyer Rack Overview

01:49 Breakaway fan & panels for internal access

02:49 Timelapse of the rack build

04:54 Internal photographs of rack power & converters

06:13 Stream Deck control panel

06:50 Use H2Rgear.com to plan your rack build

07:43 2ME Constellation HD MultiViewer loop back

08:15 Get the equipment list from DavidJoshuaFord.com

 

 

EQUIPMENT LIST

Here’s a breakdown of pretty much everything inside the rack….down to the thumbscrews.

How much? This whole rack build was approximately $8K USD, excluding any taxes.

STUDIO FLYER & RACK ACCESSORIES

Rack Case SKB 4U ISeries Studio Flyer

Rack Shelf 1U 14.5-inch Middle Atlantic

Power Filter

AC Power Strip 8-Switch

Exhaust Fan 1U Rackmount AC Infinity CLOUDPLATE

 

CUSTOM PATCH PANELS FROM REDCO.COM

Front Patch Panel

Rear Patch Panel

 

EQUIPMENT

ATEM 2 M/E Constellation HD

ATEM SDI Extreme ISO

HyperDeck Studio HD Plus

BMD Web Presenter 4K

GL.iNet GL-AXT1800 (Slate AX) WiFi 6 Router

Netgear GS116PP 16-Port Gigabit PoE+ Compliant Unmanaged Switch

 

CONTROL

Elgato Stream Deck XL

Stream Deck Pedal

Raspberry Pi 4

Raspberry Pi 4 Case

 

POWER & CONVERTERS

Bi-Directional SDI to HDMI 3G Micro Converter

HDMI Splitter 1×2

60W USB-A Charging Hub 6-Port 12A

100W USB-C PD Charger

12V 5A 60W AC to DC Power Converter 100V~240V, 5.5×2.5mm (for ATEM Mini/ Extreme)

 

POWER PATCHING CABLES

USB-A to USB-C 1-Foot Charging Cable

1-ft Figure-8 Short Power Cable IEC320 C7

1-ft IEC 18AWG Universal Power Cord

12V DC Power Connector

12v Switch

DC Power Supply Jack Socket Connection 5.5mm x 2.1mm

DC Power Adapter Cable – 5.5mm x 2.1mm Female to 3.5mm x 1.35mm Male (for Avinair HDMI Splitter Power Adapter)

POE Splitter 48V to 5V 2.4A USB-C Adapter (to power Pi from POE Switch)

 

VIDEO & DATA PATCHING CABLES

CAT 6 Ethernet Patch Cables

SDI Patch Cables

HDMI Patch Cables

USB 3.0 A to B Cable 3 ft

USB-C Female-to-Female Adapter

USB-A Male to USB-C Female Adapter

 

ACCESSORIES

Quick-Release Rack Thumb Screws #10-32 x 1/2″

Clear Zippered Pouch (fits inside SKB Studio Flyer Rack)

Hard Zippered Case (fits inside SKB Studio Flyer Rack)

Dual-Lock Velcro