Slashdot Mirror


Building a Multi-Channel PVR System?

Dr.Ruud asks: "What would be good ways to build a multichannel VCR? Think of a cluster of 4 PCs, each having 4 TV-cards (with MPEG-hardware on each) and (if necessary) a separate harddisk per TV-card, and maybe a 5th PC that controls the others, holds a DVD-writer and any other necessary hardware. Could it be done in a simpler and cheaper way? See also linuxtv.org, linuxmedialabs.com and of course SouceForge-vcr-projects like Freevo." What would be the best way to go about cutting down the number of machines such a cluster would need? Could this be done by building an all-in-one-wonderbox without it getting really expensive?

12 of 340 comments (clear)

  1. And the answer, again, is "MythTV" by mbourgon · · Score: 5, Informative

    Version .8 will allow you to have several machines, each taping its own channel(s), controlled by any of the machines in the network. The goal is to allow you to have one gigantic server in the basement, and 1 fan-less machine in the living room.

    Far more interesting is what ramifications (if any) are there to having 2/3/4 tuner cards in one PC. After all, each tuner card probably needs its own sound card... what else is involved?

    --
    "Sometimes a woman is a kind of religion, she can save your soul & set you free from all your sins" - Bad Examples
  2. PVR Advice... by NanoGator · · Score: 5, Informative

    A dual 500 machine is more valuable as a PVR than a single 1.6 gig machine. Ideally you'd want 1 processor for playback and one to handle the other stuff (compression, etc...)

    16 channels? Err. Okay. If you really want to capture that many at once, you'd likely be better off having one computer per card. You don't need expensive/new hardware to do that. If the card does the processing and funnels the compressed data down to the hard disk, then the processor is little more than a manager. Last I checked, a P3 500 would easily handle a PVR card with hardware compression.

    If you have space considerations, go with a dual I suppose. But I wouldn't do more than 2-channels per PC.

    --
    "Derp de derp."
  3. Some limitations to keep in mind by Omega+Hacker · · Score: 5, Informative

    Doing any of this without hardware compression is, of course, not even remotely viable. Given that, you have some serious limitations imposed by common hardware.

    Many of the PVR cards use the KFIR encoder chip in conjunction with a Conexant bt8x8 video capture chip. The bt8x8 does the NTSC->PCM, and sends it to the KFIR encoder, which sends the MPEG data back to the bt8x8. The limitation comes from the fact that there is no hardware-assisted DMA for the data coming from the KFIR chip. That means the host process has to repeatedly poll the PCI memory address for the bt8x8 GPIO ports in order to capture the data.

    Putting more than one or may be two of these cards in a single machine would swamp the machine so badly it wouldn't be able to do much else at all, let alone sending the video to disk or a network-attached storage device.

    If you can find a PVR card (supported under Linux, good luck putting multiple *anything* in a Windows box) that doesn't blow the PCI bus to pieces when capturing, and you should be able to put quite a large number in a single machine, limited by PCI slots. The KFIR chip captures up to 12Mbps, which is 1.5MB/sec. PCI can peak at 132MB/sec, so as long as busmastering overhead across a dozen cards isn't fatal, you could put them all in a PCI expansion cage on a single machine.

    --
    GStreamer - The only way to stream!
  4. Re:Hmmm.. by pe1rxq · · Score: 4, Informative
    maybe the poster is trying to do it for security cameras.

    If that is the case he should have a look at motion it can handle multiple videodevices and even use multiple inputs on each device.

    Jeroen

    --
    Secure messaging: http://quickmsg.vreeken.net/
  5. Re:16-channels at once? by pe1rxq · · Score: 4, Informative
    motion can do that easily.

    Jeroen

    --
    Secure messaging: http://quickmsg.vreeken.net/
  6. Yeah, a video server for community tv stations. by minitrue · · Score: 4, Informative

    This is perfect for public access television stations. They often have 5-10 people, all needing to encode their videotapes at the same time. A multichannel encoder would be heaven!

    I've been working with MNN, the public access station in New York, NY in building a cheap, open source video server out of an old TiVo. The equipment necessary to program and run television broadcast/cablecast centers is often expensive and proprietary. And unless you do web playback like indymedia or freespeechtv, you have to buy the equipment to play the game.

    An open, Linux-based multi-encoder like this (accompanied by an open video server) would do wonders for the community media world!

  7. MythTV by brent_linux · · Score: 3, Informative

    Development is currently in the works for mythtv to do this. Hopefully 0.8 release will have this in it. Isaac and crew are working on it.

  8. Hmm... how much are you willing to spend? by digital+photo · · Score: 3, Informative

    Given enough money, anything is possible.

    If you want to reduce the number of nodes, you need to increase the capacity of each individual unit. One way of doing that would be to use a PCI backplane with a motherboard "card". This would give you more than the 4 or 5 PCI slots on most motherboards.

    Go with a FireWire or USB2.0 capture device instead of a capture card. You can connect 4 capture devices to a 4-port FireWire or USB2.0 PCI card. So, if you only devote 3 PCI slots to your input sources, you still get between 6-12 concurrent input streams via FireWire or USB2.0. The problem is finding a TV tuner you can control via software through the FireWire and USB2.0 links. But that would solve your problem of recording alot of different shows at the same time with fewer CPU count.

    If you plan on having the storage local, you'll want to go Raid. Hardware Raid would be better than software Raid.

    If you use a seperate machine for storage, I'd go with NFS or netcat over GigaEthernet to a FileServer with striped volumes on mirrored or Raid-5'd disks. netcat would be better since it has lower overhead than NFS.

    So, with 2 Computers, you will be able to capture from 1-12(depending on how many cards and ports you use) individual channels/sources to a very fast file server which can then serve out the streams or burn them locally to DVD(s).

    ADC, Canopus, Sony, and a few others produces AVFireWire/USB2.0 adaptors, but they are for signal source and output and not for tuners/channels. Some resources listed below:

    Resources

    WinTV Products:

    http://www.hauppauge.com/html/usb_data.htm

    A USB TV Tuner

    http://www.snapstream.com/buy/buy-tunerusb.htm

    More USB TV Tuners...(wintv repackaged)

    ATI Wonder USB

    http://www.ati.com/products/pc/tvwonderusb/

    http://shopper.cnet.com/shopping/resellers/0-114 36-311-3850079-0.html

    ATI usb tuner card...

    Basically, they are USB tv tuners which captures to MPEG1 or MPEG2... if you're running under Linux anyways, you can re-pipe through Mjpegtools to resize and recompress to MPEG2 format for use with DVD playback on the fileserver.

    But yeah, it's doable. :)

    Good luck and have fun!

  9. I could use something like this because... by IcEMaN252 · · Score: 5, Informative
    ... I work in public access television. I can see several uses for a cheap way to log multiple programs at once.

    • Non-Linear Editing
      If you want to edit video on a computer, you need to "digitize" or "capture" it to the computer. Hook up multiple VTRs and capture multiple tapes at once. There are systems that exist to do this, but they are high dollar. This might not be cheep, but I'm sure there would be some free clock cycles to use.
    • Record Multiple Live Programs
      Say you do a political talk show. You want to do all the research you can. The major networks all have good political shows on Sunday morning. With this you could record them all and watch them later. Yes you could just use VCRs, but that applys to ALL PVR applications.
    • Log Programming on Multiple Stations
      Many public access stations are actually multiple channels. PEG (Public, Educational, and Government) is the standard for Local Access pretty much. You could record the station live from the past so many days and stream it online to catch recent programming.
    • Archiving
      Say you have a large tape archive (the station I work at has beein archiving for under a month and has over 300 tapes) and want to store in a digital media. You could use the captured video either to make DVDs or store in low-res on a server for preview. With IDE RAIDs becoming less and less expensive, a terrabyte fileserver is now an option in the four figures.

    And thats just what I can think of off the top of my head...
    --
    CitrusTV (http://www.citrustv.net): the Nation's Oldest & Largest Entirely Student-Run Television Station
  10. Re:Eh? by dbrutus · · Score: 4, Informative

    Perhaps you're monitoring to see whether your commercial actually airs on the 10-20 channels you bought for your ad campaign. Maybe you work for a non-profit media watchdog group that monitors bias. Maybe you just want to beat the smug smile off the face of your neighbors who claim techno superiority with their Tivo.

    There, three reasons, at least one of which will appeal to most people.

  11. Use Canopus Boxes And Firewire Cards by anewsome · · Score: 4, Informative
    Really if you need 16 channels at once, my first thought would be why? But assuming you have a sane answer to that I'll tell you a little about my setup. Which is able to record 2 channels at once direct to hard disk, while watching at least 4 seperate channels on other TVs around my house, all using a single satellite dish (dual LNB).


    Also, I am curious why you would want to use MPEG encoder cards to record your video. If you've ever tried this, you would quickly realize MPEG is a REALLY bad format to use if you plan on editing your video. I assume you will be editing your video right, I mean who and the hell would want to burn TV programs, commercials and all, straight to DVD with no editing. Anyway, editing MPEG video, no matter what you use is a bad proposition.


    My system, which is two low power PCs with various large (300GB+) multidrive RAID arrays, firewire cards, 1 Canopus ADVC-100 on each system and Sony Satellite receivers. The Sony are important since they have a 9 pin serial connector which connect directly to the PC for changing channels and controlling the satellite receiver.


    This system works flawless and I have recorded around 1,500 TV Shows since late 2001. My Linux based recording solution prior to this was moderately reliable but the quality was not good enough for DVD. With this setup the quality of the burned DVDs are almost indistinguishable from the broadcast source. In other words, very good. Oh by the way, my interface for scheduling is custom web interface using Mysql for storing data.


    Now I suppose if you were hell bent on it, you could put multiple cards in a few machines and run multiple capture processes to grab your insane 16 channels, but that would be one busy machine. I would recommend a more sensible soultion, one like mine would probably work nice.


    My setup includes 2 machines for grabbing video straight to disk in DV format (very high quality, does not degrade with editing like other lossy compression methods). Now these machines also double as mpeg encoders too, but don't do much else. They stay pretty busy with just those two tasks. I have another 3 machines that are dedicated MPEG encoders, using mjpegtools as the encoding software. My desktop machine is where I edit the video, using Kino. I also use my desktop to run dvdauthor, which masters the DVD-Video folders prior to burning them to disk. This machine sometimes encodes MPEG too. On some days I have as many as 6 or 7 MPEG encoder machines going. And I have yet another machines that actually burns the DVDs.


    So I guess you could do it with a few machines, but you'll be sorry once you've got a bunch of video to encode or master and only a few CPU to do it. Make your capture machines the cheap, slow CPU type and your encoder, editing, mastering machines of the fast type and you might be all right. I'd still love to know why you would want to record 16 channels. Also, I assume you are doing this with Cable TV, which sucks for quality and regular cable too, since digital cable requires a box for each individual channel you need to watch at the same time. I can't see anyone paying for rental on 16 cable boxes. Even worse I can't see anyone spending that much money on 16 satellite reveivers. I have 6 satellite recievers and I almost cried when I had to pay for them.


    Oh by the way, my system is 100% Linux end to end, so the poster who posted a comment above who says there is no Linux PVR solution that works, has no idea what he is talking about.


    -Aaron.

  12. Re:16-channels at once? by technos · · Score: 3, Informative

    Heh. I just built one of these puppies from scratch. Linux system with four WinTV Go! cards in it. Hacked camE to handle four cards and a sample rate of 2 fps, every frame archived and every tenth frame uploaded to the webserver so they can be peeked in on. Yeah, could have written something else easy enough, but writing under 50 lines of code can't be beat. Cron job moves files every hour to temp directories, mencoder converts them to msmpeg4v2 streams so the boss can. Every twelve hours, the mpeg4 files are moved to the file server for archival along with the nightly backup.

    Total cost without the cameras and cabling, about $375. No video card needed after install, and you can get away with very little CPU power. A K6-2 350 with 32M of memory and a slow WD 2G drive is what I used to figure out if it was going to work, and it was able to deliver 2fps from three cameras and do the encode pass in under 20 minutes with 512x384 16bpp images.

    --
    .sig: Now legally binding!