Slashdot Mirror


Could I Run a TV Station on Linux?

JesusQuintana asks: "I'm working with a low-power television station to update their playback system. Currently they're using tape and I've been tasked to move them to computerized playback (MPEG-2, etc.) There are proprietary solutions (very expensive) and there are companies that bundle software with Windows and standard x86 hardware. Overall, they are generally unimpressive and won't sell the software without bundling it with their own hardware. (They won't let us buy our own storage.) We have the expertise to build our own infrastructure (NAS, redundancy, etc.), but really just need the equivalent of iTunes for high quality video. There are lots of other pieces needed to complete the work-flow (such as encoding the media), which could be accomplished on Mac or Windows or even Linux. But what about playback? We need something that will play back these files at their scheduled times (perhaps scheduling cron jobs to change playlists) to broadcast quality hardware (SDI or YUV video). Could we run a TV station on Linux?"

14 of 321 comments (clear)

  1. Of course you can by Anonymous Coward · · Score: 5, Funny

    With Linux, all you have to do is concatenate 6 strings on the command line and edit 3 configuration files and you can accomplish anything!

  2. HowTo by Crazy+Man+on+Fire · · Score: 5, Funny

    There some pretty good information about TV station automation here

  3. Yes by Yonder+Way · · Score: 5, Informative

    It wouldn't even be all that complex.

    MySQL database that indexes all content.

    Also have a table for the schedule.

    Batch job queues up content. As one piece of content finishes, next piece is queued up and plays.

    All of this can be made fairly redundant without too much effort. Setting up your schedule can be point & click.

    The real work will be if you want to make it fancier to give the advertising department more direct control over what ads run when, as opposed to having the programming manager schedule all of that.

    All of this can pretty easily give you a very detailed automated log of what content played when, when you gave your station ID's, what ads played, etc.

    Pick one good well known scripting language, learn it well, and use it. I'm not going to enter the holy war of telling you which one to use.

    MySQL can be replaced with PostgreSQL if you prefer. Doesn't matter which. You're not keeping your content in the database, just an index of where to find the content on the filesystem plus the broadcast schedule.

    The REAL work in all of this is making it resilient so you don't hit dead air. Redundant systems with automated failover, etc. And the cost of entry may be high, but I can't recommend highly enough that your content be stored on a redundant SAN or NAS infrastructure. Most of my long nights repairing things have dealt with failed hard disks. A decent SAN or NAS will allow you to rest easily at night.

    Additionally a system like this will allow you to have a much more intelligent content-rich web site.

    And I'm also sure there are people at Google who would love to talk to you about your ad delivery system if you put something like this in place. You would like to increase your ad revenue, wouldn't you? Google is working on breaking into this space in a big way. It would be worth making a few calls.

  4. Re:answer by kfg · · Score: 5, Funny

    But implimentation is left as an exercise for the student.

    KFG

  5. Do they really need it? by gstoddart · · Score: 5, Insightful

    Not to be a technology nay-sayer, but does this low-power TV station need all of this high-faluting stuff?

    Sometimes I have visions of throwing a load of technology at a problem, and then leaving someone with a solution they can't run, maintain, or understand. And then they've leaped back even further in technology when it all becomes inoperative.

    The thing you have to ask yourself, is do they really need it, and can they be updated to it without damaging them in the long run?

    [ No, I'm not a complete luddite, I just wonder if this is a step they might actually be ready to take ]

    Cheers

    --
    Lost at C:>. Found at C.
  6. NTSC Signal by AKAImBatman · · Score: 5, Insightful

    Everyone seems to be forgetting the little part about translating the MPEG compressed video into a broadcast quality NTSC signal, preferrably without noticable artifacting and color problems. Depending on the equipment, a simple TV-OUT port could be used, but would that really give the results a television station needs?

    Also, let's not forget that he needs to future-proof his solution for digital transmissions. While there's tons of NTSC equipment on the market, what does one use to broadcast in digital? Presumably, he'll need encoders that are well suited to broadcast technology and an advanced digital to analog signal coverter at a minimum. He'll also need to understand whether he will have to support SDTV broadcasts, HDTV broadcasts, or both. If it's both, does his software support anamorphic encoding? If not, what is the hit from multi-encoding?

    I'm barely even scratching the surface of the problems he's going to have. Right now, Linux has media software intended for home use. Setting things up for a professional television station is a whole other ball of wax that probably hasn't been considered yet.

  7. Program in APL by krell · · Score: 5, Funny

    You can even write the entire program to run the station itself in a mere 11 characters of APL code.

    --
    Where were you when the voynix came?
  8. Short answer: Yes. Long answer... by jd · · Score: 5, Informative
    Yes, but it will require a little tweaking. You'll definitely want hard real-time, or you'll skew the frame updates. Check to see what RTC clocks Linux supports and see if it would be viable to go in that direction. If not, the machine for playing must absolutely not run anything other than the player, then using the scheduler tools to set the program to run in the FIFO queue. (ie: make it totally non-interruptable).


    If you're running off remote disks, then the NAS MUST be capable of greater output than is required to transmit, as you absolutely must allow for dropped packets and other glitches that force a retransmit. If there's not enough time to fix the problem, then you're going to transmit a picture with noise.


    ALWAYS work ahead and cache pre-processed frames. There should be enough processed frames (encoded, digested and all ready to blast to the mast) that in the event of a failover (you DO have failover, don't you? :), you can be transmitting without interruption until the machine on standby is up and running. That way, you can almost (but not entirely) eliminate all possibility of downtime. Downtime is a VERY good thing to eliminate.


    Your NAS should use a striped RAID array (although each stripe may also be mirrored). Striping is essential in keeping the data flowing fast, and your hardware should be geared to maximizing that throughput. Let the realtime handle the scheduling.


    Don't bother using cron, or some other such userland service to start things. Exploit the FIFO queue. It won't run the next thing in the queue until the previous thing is finished. So long as you guarantee the stop time, you implicitly guarantee the next start time. You can then use cron to kill programs that overrun.

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  9. Depends by Ironsides · · Score: 5, Informative

    In a way you are asking two different questions here, due to the technical difficulties involved with a TV station playback. So, lets put it this way then:

    Do you require Frame Accurate playback? The reason that the profesional solutions you briefly mentioned are expensive and require their own storage are that they Garuntee frame accurate playback, no droped frames and everything else needed to playback everything flawlessly. One thing to remember about that, though. So long as you only keep the current days video on the server, you can stick with a video server with under 1/4 terrabyte of storage space (12Mbps vid+aud=~128GB) and have a seperate NAS for the next days video that just gets moved onto the video server throughout the day as what has already been played gets deleted.

    The main problem with most consumer video playback I have seen is that it is not frame accurate. Even on a decent computer, most video programs don't run at exactly the framerate of the video using consumer playback programs. Also, unlike the profesional hardware, the consumer programs don't pre-buffer the next file for playback so that there is a delay between the end of one file and the beginning of the next.

    We're also going to need to know what kind of outputs you want. Analog? What kind? SDI? HD-SDI What does your video router handle? Theoretically you could use a VGA/DVI output to a VGA/DVI-SDI adapter, if that's what you use. You'd also need to run it through a frame sync, but that's pretty standard for most stations anyway. Most likely you will not want to use the video card ouput of a PC, VGA/DVI/S-Video due to the need for then having a consumer program play it out.

    For proffesional level playout you're going to want a card with hardware playback. SkyMicro and ViewCast make some playback cards that will run under linux that it looks like you could use. I'm just listing them as an example that showed up after a quick googling. These capture/playback cards are essentially going to become the heart of your system if you want something resembling a cheap profesional system.

    So, as I said. It depends on how high end a system you want. However, it looks like it is possible to get a decent one going. One thing to remember, and I state it as habit, trial test whatever cards you are looking at before buying. Some of these cards can run to $2000 a piece and you're probably going to want redundancy.

    --
    Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
  10. Real broadcast software for Linux by Ziff · · Score: 5, Informative

    If you want to do it for real, take a look at the MLT project: http://mlt.sourceforge.net/
    That has support for for example the Bluefish444 SDI cards, and do playout of real broadcast formats, such as DVCPRO, but also regular MPEG formats.

    It also provides ShotCut, a really competent Non-linear editor, that can send edited clips directly to playout.

    I know it is in use in one of Indias largest broadcasters, and they transmit to millions of viewers. So it would definitely be good enough for a small station like the one you are talking about.

    1. Re:Real broadcast software for Linux by sunya · · Score: 5, Informative

      I was the project manager for MLT. I know for a fact that there are 35 playout boxes running MLT on Bluefish444 SDI hardware, and capable of handling DV, DVCPRO, MPEG-2 among other formats. Visit the http://mlt.sf.net/ site and contact us (preferably via the SF mailing list) and we can help you out. MLT was built for the express purpose of broadcast playout (I should know, I wrote the spec :) . So, to answer your question : Yes, you can. Oh, it is opensource under GPL, and it runs on Ubuntu (recommended). And it provides a complete framework to write your own media apps. I can (if I dig around for a bit) share some code for playlist management as well...

      --
      MLT - simple and robust open source multimedia framework for Linux
  11. My issue wouldn't be stability by ancientt · · Score: 5, Insightful
    Shouldn't the parent have been modded funny?

    Well, I've never run Linux for "years" but I'll share my experiences.

    • I just had a server running AIX Unix up for 305 days (rebooted two days ago.)
    • I had a friend who forgot about a box running FreeBSD that stayed up for over five years. (It was in a closet, had a battery backup and just did its job as a server until people stopped needing it. Eventually it ran out of log space and didn't die but started paging somebody incessently that it needed help.)
    • I currently have two Linux servers up 248 and 337 days. Desktops with Linux usually run for about six months without a reboot. Most of those reboots aren't really necessary, just easy and to make sure that nothing has been changed that would keep it from coming up with the desired services.
    • I've never managed to really hose an ext3 filesystem.
    • I have hosed NTFS, FAT32, and UFS, but none very often and always as a result of doing something I knew was risky. (Reiser is an exception and the only one that has spontaneously fubar'd on me. I don't use it anymore, so couldn't really attest to whether that was a fluke or not.)
    • To be fair, my Windows servers usually stay up for similar periods.

    I think in the end it is about setting up any computer system to do the job it is designed for in a way that will continue until hardware wears out or power dies. Kernel patches and Security Updates are the exceptions. Windows has more critical patches but probably doesn't affect me as much as a lot of people, since I pair down my servers to not run software they don't need. For stability I usually use an enterprise system with security updates enabled which translates to almost never needing to reboot for security updates. Almost every security update is about software, not kernels in Windows, Unix, xBSD and Linux as long as you start out with a stable kernel.

    Cliff probably would be well served by whatever OS he chooses as long as it supports the choice of software well. The trick will be finding software that serves the purpose well. My approach is to see first if there is OSS that meets the need well and then to look at commercial options if not or if they offer something that offers enough service or time savers to offset the cost. I think that the question that Cliff needs to be asking isn't about the OS but rather about what OSS software is out there for specific tasks and how it compares to propritary offerings.

    --
    B) Eliminate all the stupid users. This is frowned upon by society.
  12. Re:Video Lan Project by dgatwood · · Score: 5, Informative

    I wrote a long response to this, but screwed up and hit command-Q. I won't retype all of that, but here's a much more concise version.

    The things you need are a scheduler (to determine which commercials air when), a program format spec file (to tell where in a program file the actual video begins and ends so you don't end up unnecessarily airing several seconds of black as you might if you just paused the playback of a TV show), and a mechanism for crossfading the audio between spots to handle the case where people run it right up to the wire. You need a switcher for the video---the ability to quickly change from one foreground full-screen video window to another without any glitching. This is a lot harder than it sounds. Finally, you need a player that can start pretty much instantaneously and without glitch in the middle of a program. I haven't found that to be true of VLC at all in my experience, but maybe it has improved a lot in the last few months....

    For a possible controller UI, you might check out SongCue on SourceForge. I designed it for radio automation, but combine that UI with a preview pane above each controller and show a still frame from 5 seconds into a segment, and you have a UI that would work pretty well for what you're doing, too. Maybe even show live video in the preview panes during playback. (I wouldn't recommend the code from SongCue, though, as it's pretty much raw Xlib, not for the faint of heart.)

    If I were writing such a thing, I'd start with a Mac OS X (10.4 Server) box. Xsan provides a supported mechanism for handling your storage needs. QTKit can do your playback, and Quartz Composer should make switching the foreground full screen movie pretty easy. The only potential snag I can think of would be that if you aren't careful, you could mouse over onto the live output signal, but all things considered, it's probably the easiest way to build an app that does what you want, IMHO.

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  13. Re:little software available for linux. by Anonymous Coward · · Score: 5, Funny

    I know you didn't ask for any composting, editing, or formatting software. And I know you plainly asked for Linux. But you should really check out Final Cut Pro. It doesn't do what you want and doesn't run on the platform you suggested, but I used it once and it was great.

    Mod me up informative!