DVD player control within Qlab

TL;DR:
Use Qlab to play physical DVDs

The Story:
I was called in to be the lead video for a small event, located in a beautiful, historic ballroom. It was the preview screening of a very popular television show’s final season, so I was pretty into it, all things considered.

This was the hall before load in.

I arrived to find a pile of road cases and gear. It took three hours or whatever to set everything up, between the screen, the projector elevated on truss, two PA speakers, multiple DVD players, a video switcher, a bunch of screens, a PC laptop or two, and some other mystery video box that I can’t recall right now. And a mile of cable.

Once we were all up and running I thought about what we were actually doing. There was I think an iPod connected for music during the dinner, one promotional video on a DVD, and then another DVD with the episode to be shown. I think the promo commercial DVD also had a second clip to show after the episode.

DVD
I thought to myself, “this seems like way too much gear to do something really simple…and I love gear!” I wondered how I could replace all of the gear on our tech table with a single Mac laptop with an optical drive, running Qlab.

The first thing to consider was I was brought on as lead video tech. Which meant I showed up at the same time as the gear, but no consultation on what was needed or even told what I was going to be given to work with (rude, I know). So, obviously a tiny bit of planning would be needed. Sometimes you can’t get the content ahead of time. Or, in this case, the client might not want people ripping/getting soft copies of their content, to control leaks. Or to get a full quality long-form video, it’s not always feasible to leave the physical media.

Let’s see how we can do this. For the smaller commercial videos, either request in advance for files, or rip the DVD.

The latter is a safer bet – no worrying about pesty codecs (we’ve all had someone promise a video file only to get – ick! – a Windows Media Avi that we have to convert with MPEG Streamclip. I like to use Handbrake to rip my DVD content, because it works, is free, and is flexible in output. Getting to the gig in time would leave me plenty of opportunity to rip a couple of 5-8 minute commercials.

So, we set up a cue list for house music (see my future tutorials if you need to work with iTunes, Spotify, whatever, if MP3 files aren’t your thing) and a cue list for our videos and show control. Great – just like any other show. But what about the main feature?

The Esoteric Bit:
What we are going to do is insert the DVD into the drive, and then control the OS X DVD player from Qlab via AppleScript.

We will create five script cues, for Launch, Play, Pause, Stop, and Quit commands.

“Launch DVD Player”

tell application “DVD Player”
–use the following two lines of code if Qlab is to open application. Faster response to pre-open the application prior to show.
open
delay 2
set viewer full screen to true
end tell

It is better to open the DVD application during your sound/video check and pre show scripts, so that it is ready and waiting for you on cue. Always best to check! This used to be part of my “Play” script until I moved it because I was never going to use them together anyway. The “Delay” command is because it takes time for the app to open before it is ready to receive the next command. YMMV.

“Play DVD”

tell application “DVD Player”
set viewer full screen to true
play dvd
end tell

I repeat the full screen command, just to make sure it is actually in that state, in case other output or commands have messed with it or taken focus during the show.

“Pause DVD”

tell application “DVD Player”
pause dvd
end tell

“Stop DVD”

tell application “DVD Player”
stop dvd
end tell

“Quit DVD Player”

tell application “DVD Player”
quit
end tell

These last three scripts are self explanatory.  Move each of these scripts wherever you need them in your run of show cue list, and you’re now integrating your physical DVD in with the rest of your Qlab programming!

Now for the caveats that I should mention… First off, every live rig should have some sort of backup of critical components. This is all basic live engineer stuff, and I leave it up to you to sort out how that gets made. Moreover, there is the possibility of HDCP errors. If the content you are playing is copy-protected, and passing via a digital signal, it might not play on some external video setups. It may play fine on your laptop screen (primary use) but it may not view on an external monitor. It relates to HDMI encryption (or whatever spec you are using) and it’s outside the scope of this post. Basically, it’s what is supposed to keep you from running your own movie theatre with a DVD you bought with a home-use license.

The other issue is that Blu-ray, on Macs, is a whole other beast. I may tackle that in a different post in the future. But you can probably hack the above into something that works.

It also bears mentioning that some stand-alone DVD and Blu-ray players are networkable. I am working on some scripts that will let you control those via Qlab, for a future article.

Cheers!
-brian