How to Use a Video Projector or TV with xLights for your Christmas Light Show: Two Methods
Ready to take your Christmas light show to the next level with video? In this article I’ll show you how to incorporate video or xLights effects in your displays, and in particular, adding video monitors.
Videos and xLights Effects: Two Methods
When it comes to playing xLights effects or videos within xLights as part of your Christmas light show, there are two primary methods of doing it. Depending on your needs, the simplest and probably easiest method to start with is using xSchedule, with a full length video file that you built your sequence off of.
The other way that you can do it and have multi monitors is by using the Falcon player (FPP). You can technically have multi monitors through xSchedule, if they're next to each other. But if you want to be able to play back multiple files on multiple monitors, do xLights effects on your screen, or use video files that may or may not match the length of your sequence perfectly, then you're going to be using FPP.
I’m going to walk you through these two ways, some caveats for both, and how to make them work for your display.
Sequencing with xLights Scheduler
First, start in xLights by creating a new musical sequence. When it’s time to choose the music, choose your video file. Set your speed and click “quick start.” Now you see the audio for that video, so you can go in and choose an effect for a prop in your show, then save it.
So the first step is to sequence, and your video file is going to be what you sequence off of. You’ll put the audio for the song you want to use in your video file, and make it the full length of the sequence. Your video can go black at times, but it needs to be a file that's the exact length that you're going to sequence.
Then go to Tools > xSchedule and File > Switch to xLights folder. Click “Add” then “Add FSCQ+ Video” and find the xLights sequence file you just saved. Then, right underneath that, you’ll see a field to add your video file. After you add both files, click “Position Window”.
This is the size and position of the video content, so when I’m talking about running a show off xSchedule with multiple monitors, often I’m going to maximize this on a separate monitor. But if you’re only recording one monitor, just maximize the window and it’s good to go.
Now press “ok” and it’ll show up in your playlist. When you play it, it should play nice and smoothly. If it doesn’t, check the xLights manual regarding file types and sizes and correct those if needed – xLights does require a certain type of video file.
Setting up in FPP
Let’s talk about the second method, setting up in FPP. We’re going to set up a virtual matrix. Now you can technically use the same approach that I just explained for xSchedule and do that in FPP, but it says in the FPP manual that it may not keep sync, it may start up kind of jittery or jump around, and so I don't want to recommend that to you if it's not something that's going to work reliably.
So the first step is to define a virtual matrix in xLights, on the Layout tab. You can set it up to start at any channel, I would start it at an empty channel either at the start or end of your display. In my matrix, I set it to 192 by 108, and basically what I’m doing is taking a standard 1920x1080 HD-type display and cutting it down so it’s much smaller. The maximum sizes for FPP virtual matrixes are listed in the manual, but you’re not going to be able to do this in full HD. If you need full HD, which somebody has to be pretty close to the display generally for it to look good, to really need that, but if you want to do that it's going to have to happen through xSchedule (or technically you could trigger things through stage lighting/video programs as well).
You’ll want to set your starting location as horizontal or vertical, drag it out so it looks kind of like a TV, save it, and go to the Sequence tab. You can see that size change on your sequence.
Now it’s time to play around with different effects and settings. Add your effect, make it the whole length of your sequence, change the speed, direction, etc until you’re happy with how it looks.
The next step is going to the Controllers tab. Click “Discover” – this is how I like to find my FPP controllers because it just works. It assigned my matrix model and got all those channels correct.
Next, go to Tools > FPP Connect and send your sequence. We will have to turn on the virtual matrix, but for right now we'll just leave it as it is and click “upload”.
Now open up FPP (double click on it in the Controllers tab), and under “Other” outputs, you’ll need to click “Add” and select the type “VirtualMatrix.” Size is going to be what we set earlier, 192 by 108, no invert ports and scaling: Hardware is fine, you can leave those settings alone. Make this Active.
But before clicking Save, take a minute to hook up your Pi to a monitor. You should see a bit of text on it, before you have any video input set up, and that verifies your Pi is hooked up, the HDMI cable works, and your monitor accepts the signal. If you plug in your monitor and see no signal, that’s a sign that there’s something else wrong in your video system, and you may want to check your cables and input on the TV, things like that.
Once you hit Save, you’ll see the message “FPPD Restart Required.” After clicking that, a blank screen should display on your output monitor. Go to Status/Control > Display testing > Enable test mode, and boom, your monitor should light up.
And now, it’s time to run the effect you set up earlier! It will work in Standalone or Master mode, and you can pull up the sequence, which will be a video file in this case, and hit Play.
Troubleshooting
If everything appears to be working correctly in test mode in FPP, but nothing’s showing up on the monitor when you play your video, there may be an issue in xLights. One problem I’ve run into before is when the auto sizing in xLights only sends one universe for a model, but it needs a lot more channels. Since there’s no way to automatically bring in the number of channels for your virtual matrix, you’ll have to do that manually. In the xLights Layout tab, find the “end channel” number for your model. Then go back to the Controllers tab, and in the FPP settings, find the Channels box and override that default with the correct number of channels. There’s no need to reconfigure any DDP settings in FPP – just hit update and you should be all set, ready to sequence your heart out!
If for any reason your matrix is in the wrong direction, then you can update that in the Layout tab. For example, switching horizontal to vertical, if your TV was mounted sideways.
You can also invert the display output on the channel outputs page, for when the projector's hung, it just flips it upside down. You can also do that in a projector, but of course if it's a TV display it's not going to let you do that.
So that’s how to do video in xLights, either virtual matrix or through xSchedule, either way can work depending on your needs. The biggest key is to know what you're looking for and know what you want the end result to be, and then follow the steps above to make the magic happen.
Want to Create a Great Christmas Lighting Display This Year?
Grab our free guide and get started today: