Imagine that you're a science fiction fan staying at a hotel for the BayCon convention. It's late at night, so there are no exhibits to attend. You don't want to go to sleep, because you want to attend a party in an hour or so. So you flip on the TV and tune into the convention's in-house (well, in-hotel) station, BCTV. It's playing an old (or fan-produced) science fiction movie. Perfect.
Now imagine that you're on the delivery end for BCTV. You don't have a fancy control room; instead you have a regular hotel room with a cable dropped in allowing you to broadcast. You've put together a long tape of movies, but since half your content didn't arrive until the last minute, you're stuck in your room frantically trying to edit tapes together. You can't sleep at night. You can't enjoy the convention in the daytime. You're trapped in the control room.
This looks like a job for Perl.
Using POE, a video digitizer card, and an IR controller, I'm developing a system that will allow us to let BCTV run itself. I've created a program that allows us to create program schedules and play digital and analog content automatically. It's designed to handle everything from preplanned, pre-digitized content to VCR tapes pressed frantically into my hands at midnight.
Will it be everything I hope for it? Probably not. The first version will probably flicker between programs, since I'm using external processes for most of this. I'm having troubles getting the IR port running to control the external VCR. And I made the mistake of buying a video digitizer card that's only sorta-kinda supported under Linux.
However, the work progresses. I'm at the edge of creating a module that will automatically create text titles, such as "Up Next" screens and Con schedules. I'll be documenting what I run into here, so that people doing similar projects can learn from my mistakes.