I love it when a plan comes together.
I have been playing around with some software called PiWall, and I just made it suit my needs 100%.
For a little background, a good friend of mine is working on a show car which is unfortunately so far behind schedule, they’ve worked out a penalty deal with the guy doing the bodywork, and we’ll just say that by the time the car is actually finished, the bill will be significantly less than when it started.
The car in question is a 1939 Cadillac Limo, with an undisclosed but certainly not stock motor hiding behind a black chrome grill, and a few other rather impressive secrets. It’s an indoor show car only, practicality be damned.
Anyway, so after some talking about what they wanted to do with the interior, we decided that I’m going to set him up with a pair of Raspberry Pi computers, and I’m going to put together a couple of videos, one which will play in the car, the other will play in a display that gets set up next to the car.
For those of you that know the Pi well, you’ll know that it’s got more than enough capability to play back full 1080P resolution videos without breaking a sweat. Not bad for $35. Well, I’m taking this one step further.
Their final vision is to be able to choose whichever video (or potentially future videos) to send to either display when they want, so naturally, I need to come up with a solution that’s not only really simple, but one that’s easy to manage and set up quickly at a show.
Enter Multicasting. It’s a UDP protocol for sending streams of data from one server traditionally to several receiving computers that display the stream. Since I work in the tech industry and play with quite advanced hardware, sometimes it’s pleasant to find a really simple alternative that’s not only affordable, but something that’s actually doable with my own budget and not someone else’s “I’m going to do it because I can” budget.
What does this mean? PiWall comes in handy. PiWall is software created for the Raspberry Pi to multicast a video stream to several Pis that display it as a video wall, splitting the image across several displays. This is done with a modified version of the OMX Player that tells the player to receive a multicast stream from the specified address, but then to display only a certain portion of it based on the configuration file.
Well, what I’m doing is basically creating two video walls, except instead of being multiple displays, they’re just single displays. So in the configuration file, I tell the Pi that it’s a 1x1 video wall, and I tell it the output resolution to use over HDMI (what I’m currently using), and to receive the stream from a certain multicast address and port.
To run the streams, I take VLC and use it’s really quite bulletproof Streaming/Exporting Wizard. I launch one window, create a stream on a certain IP/Port, play it and then start up a second instance of VLC and create a second stream with a totally different IP/Port. To the uninitiated, it sounds very complicated, lots of people who have trouble with PiWall, they’d probably wonder why it works so well, and my answer is I’m not sure. I get audio separately to each Pi, and it’s just a bulletproof application.
When I finally get around to installing this into the Caddy, you bet there will be a massive amount of installation photos, along with photos of the completed car. I’ve seen it one the road once before it was sent to the body shop, and the thing sounds mean. Oppo would really like it. The current estimate is 2-3 months before I get to jump in and do any work, but it’s certainly going to be cool.
Here’s what a 1939 Cadillac Limo looks like, for reference:
It feels good to be able mix what you’re really good at doing with what you really enjoy doing. Don’t give up Oppo, things may get hard, you may not feel perfectly happy where you are, but never forget, you can always work towards where you want to be.