I've been doing research on this for the last month or three, and the news isn't entirely good. First, you need to figure out exactly what you want your TiVo-esque set-top box to do. "Personal TV" features like live pause and live rewind? Digital, full-frame recording? MPEG1, MJPEG or MPEG2 compression? Channel guides and automatic VCR programming? CD playing? DVD playing? Lastly, what will you put it all in?
Let's start with personal TV features. You can currently record live, full-resolution video and audio onto your HD without dropping frames -- assuming you've got at least a 500mHz processor and a fast HD. That's just a live dump to a raw AVI, and you'll fill up your HD pretty fast that way, at roughly 1-2 meg a second. But if you can blow 4gb for an hour of programming to be able to do a live pause/rewind for a while, then that's not too big a deal. But what if you want to include digital VCR features, not just live pause/rewind?
Now, things get a little more expensive. The crux of the problem is to do live, full-frame MPEG2 video and audio encoding in software, you need at least ANOTHER 500mhz of horsepower, and a single 1gHz processor won't cut it. MPEG1 quality blows if you're recording off satellite or even decent cable TV (if you want the low-end, though, the Broadway MPEG1 encoder is cheap, around $800), leaving you with just MJPEG or MPEG2 video. MJPEG is much larger than MPEG2, because it doesn't have temporal compression, but you can get consumer-grade hardware MJPEG encoders on Matrox hardware, so for a build-your-own box, if you 2-3x your HD size, you should be okay. But to do it right, you want full-frame D1 MPEG2 encoding (half-D1 MPEG2 is MPEG1 resolution, but MPEG2 quality), like you have on DVDs. And to do that in hardware will cost you over a thousand dollars, and may not include an MPEG DEcoding solution!. Yuck. Darim's MPEGator2 can do full D1 encoding for (only) US$1800, VisionTech's MVcast is US$1995, DV Studio's Apollo Expert is US$1995 and includes both encoding and decoding, making it possibly the best buy. I have no idea if Linux drivers are available for any of them, but the price alone puts that sort of tech out of the realm of most people's hands.
With that sobering realization in mind, let's forge forward to channel guides and VCR programming. Channel guides are easy. Just have a Perl script rip and reformat any of the listings from the online providers, including Excite TV, Ultimate TV, GIST TV (which also provides the Yahoo TV listings), Ask TV (in the UK), Click TV (what TiVo uses), TV Quest, TV Grid or TV Guide Online. And once you have this set up, it's not much farther to program an IR transmitter to sit in front of your VCR's IR port to have it automatically record shows for you.
CD playing in a set-top box is a nice feature. Pop the CD in, and have it hit CDDB for the disc info, and give track options. Shouldn't be too hard.
DVD playing in a homebuild Linux-based set-top box is nearly possible now, too. As of this weekend, I believe that you can now put a DVD in the drive, and play it, entirely software decoded, no ripping VOBs or copying to a HD, full-screen, full-frame, with real-time AC3/48kHz audio downsampling to 44kHz, and audio/video sync is probably only a few hours of coding away. Now all we need is hardware MPEG acceleration in the ATI Rage chipsets, and maybe that attractive Apollo encoder/decoder.
Lastly, what are you going to put this monstrosity of open-source software engineering in? What we've just explained above is that for around $3000, you can build a combination cable box (we'll ignore the open source software cable descramblers for the moment), real-time MPEG2 digital VCR, timeshifting personal TV player, channel guide, CD player and region-code-less, restriction-less DVD player, that utterly blows the quality of anything else on the market out of the water. This is what TiVo WANTS to be. But what are you going to do? Stick a fat, ugly, beige desktop case on top of your TV? Bah. T-A-C-K-Y. Even the recently rediscovered BookPC (aka NLX) cases still look like PCs. But most people can't afford to mint custom cases, yet you want something that doesn't look like a PC. How about a 1U or 2U black rackmount case, sans locking front panel and rails? 19" wide makes it a bit wide for small TVs, but that's okay. You've got a bay for a floppy drive or small LCD panel, a DVD drive, and enough room inside for at least one HD, and in some 1U cases, both the TV card and the MPEG card! Otherwise, just go 2U, which isn't TOO much larger. Whee.
I think that's it. I don't know what the state of TV input on Linux is, but I assume it's pretty good, or you wouldn't even be able to consider this project, so that's not a big deal. And even through you can record in real-time, without compression, straight to AVI (bleagh!), I left out the possibility to post-process the AVI to MPEG, because really, that's so tacky. That's like having to play DVDs by copying them to a HD first. Do it realtime, and Do It Right(tm). Lists of MPEG hardware encoders I got from a Canadian distributor called BernClare Multimedia, Inc. Seems like a nice place. Other URLs I used for reference (no, my personal project doesn't have a site; I just posted most of my knowledge here!) include the still-conceptual LinuxVCR project, the LinuxToday article on How to Build Your Own 1U Rackmount, the Calibri 300R 1U rackmount Linux-based router, and LCDproc for that LCD display you know you'll need on the front to perpetually blink 12:00.
Here's why they don't want minors, because they can't hold a minor legally responsible for EULA violations in court, only an adult.
Why not say, with adult's permission? Because now they have to actively get that adult's permission, and verify their status. Which == pain in the ass.
It's not like you're violating the EULA if you download Corel Linux when you're minor. You can't violate it. It doesn't apply to you.
I've been doing research on this for the last month or three, and the news isn't entirely good. First, you need to figure out exactly what you want your TiVo-esque set-top box to do. "Personal TV" features like live pause and live rewind? Digital, full-frame recording? MPEG1, MJPEG or MPEG2 compression? Channel guides and automatic VCR programming? CD playing? DVD playing? Lastly, what will you put it all in?
Let's start with personal TV features. You can currently record live, full-resolution video and audio onto your HD without dropping frames -- assuming you've got at least a 500mHz processor and a fast HD. That's just a live dump to a raw AVI, and you'll fill up your HD pretty fast that way, at roughly 1-2 meg a second. But if you can blow 4gb for an hour of programming to be able to do a live pause/rewind for a while, then that's not too big a deal. But what if you want to include digital VCR features, not just live pause/rewind?
Now, things get a little more expensive. The crux of the problem is to do live, full-frame MPEG2 video and audio encoding in software, you need at least ANOTHER 500mhz of horsepower, and a single 1gHz processor won't cut it. MPEG1 quality blows if you're recording off satellite or even decent cable TV (if you want the low-end, though, the Broadway MPEG1 encoder is cheap, around $800), leaving you with just MJPEG or MPEG2 video. MJPEG is much larger than MPEG2, because it doesn't have temporal compression, but you can get consumer-grade hardware MJPEG encoders on Matrox hardware, so for a build-your-own box, if you 2-3x your HD size, you should be okay. But to do it right, you want full-frame D1 MPEG2 encoding (half-D1 MPEG2 is MPEG1 resolution, but MPEG2 quality), like you have on DVDs. And to do that in hardware will cost you over a thousand dollars, and may not include an MPEG DEcoding solution!. Yuck. Darim's MPEGator2 can do full D1 encoding for (only) US$1800, VisionTech's MVcast is US$1995, DV Studio's Apollo Expert is US$1995 and includes both encoding and decoding, making it possibly the best buy. I have no idea if Linux drivers are available for any of them, but the price alone puts that sort of tech out of the realm of most people's hands.
With that sobering realization in mind, let's forge forward to channel guides and VCR programming. Channel guides are easy. Just have a Perl script rip and reformat any of the listings from the online providers, including Excite TV, Ultimate TV, GIST TV (which also provides the Yahoo TV listings), Ask TV (in the UK), Click TV (what TiVo uses), TV Quest, TV Grid or TV Guide Online. And once you have this set up, it's not much farther to program an IR transmitter to sit in front of your VCR's IR port to have it automatically record shows for you.
CD playing in a set-top box is a nice feature. Pop the CD in, and have it hit CDDB for the disc info, and give track options. Shouldn't be too hard.
DVD playing in a homebuild Linux-based set-top box is nearly possible now, too. As of this weekend, I believe that you can now put a DVD in the drive, and play it, entirely software decoded, no ripping VOBs or copying to a HD, full-screen, full-frame, with real-time AC3/48kHz audio downsampling to 44kHz, and audio/video sync is probably only a few hours of coding away. Now all we need is hardware MPEG acceleration in the ATI Rage chipsets, and maybe that attractive Apollo encoder/decoder.
Lastly, what are you going to put this monstrosity of open-source software engineering in? What we've just explained above is that for around $3000, you can build a combination cable box (we'll ignore the open source software cable descramblers for the moment), real-time MPEG2 digital VCR, timeshifting personal TV player, channel guide, CD player and region-code-less, restriction-less DVD player, that utterly blows the quality of anything else on the market out of the water. This is what TiVo WANTS to be. But what are you going to do? Stick a fat, ugly, beige desktop case on top of your TV? Bah. T-A-C-K-Y. Even the recently rediscovered BookPC (aka NLX) cases still look like PCs. But most people can't afford to mint custom cases, yet you want something that doesn't look like a PC. How about a 1U or 2U black rackmount case, sans locking front panel and rails? 19" wide makes it a bit wide for small TVs, but that's okay. You've got a bay for a floppy drive or small LCD panel, a DVD drive, and enough room inside for at least one HD, and in some 1U cases, both the TV card and the MPEG card! Otherwise, just go 2U, which isn't TOO much larger. Whee.
I think that's it. I don't know what the state of TV input on Linux is, but I assume it's pretty good, or you wouldn't even be able to consider this project, so that's not a big deal. And even through you can record in real-time, without compression, straight to AVI (bleagh!), I left out the possibility to post-process the AVI to MPEG, because really, that's so tacky. That's like having to play DVDs by copying them to a HD first. Do it realtime, and Do It Right(tm). Lists of MPEG hardware encoders I got from a Canadian distributor called BernClare Multimedia, Inc. Seems like a nice place. Other URLs I used for reference (no, my personal project doesn't have a site; I just posted most of my knowledge here!) include the still-conceptual LinuxVCR project, the LinuxToday article on How to Build Your Own 1U Rackmount, the Calibri 300R 1U rackmount Linux-based router, and LCDproc for that LCD display you know you'll need on the front to perpetually blink 12:00.
Here's why they don't want minors, because they can't hold a minor legally responsible for EULA violations in court, only an adult.
Why not say, with adult's permission? Because now they have to actively get that adult's permission, and verify their status. Which == pain in the ass.
It's not like you're violating the EULA if you download Corel Linux when you're minor. You can't violate it. It doesn't apply to you.
--Vito