On Wed, 23 Jan 2002, Kevin Atkinson wrote: > I would like to start a project and/or work with existing project such > home-brewed TiVO system for two main reasons 1) for the fun of it and 2) > to make a statement to the RIAA and the MPAA that they are not going to be > able to control the flow of information period. This project will be > different then some of the other projects I have seen in several key ways: > > 1) Will focus on producing a deliverable now by gluing together existing > software. > 2) Will be based on generic hardware, ie it should be able to work > with a wide variety of receiver and video cards with TV out and > should not relay on hardware encoding cards. > 3) For now will focus on recoding and playing back NTSC and PAL tv > signals, with digital tv coming latter. I have a box that I use as a PVR. My approach has been just like yours (except that I do have a digital TV card in my box too). There's quite a few people working to the same general objective, though often the tradeoffs differ. There's not too much code sharing yet. For my box I've mostly integrated various open source code. I've contributed back various fixes etc, but haven't anything written from scratch to a state for sharing. Here's my hardware roll call: - Generic Athlon based PC (1.13GHz, more than enough CPU) - 2 WinTV FM cards, providing video w NICAM and FM receivers too. - 1 Nova-T DVB-T card, recently added - Voodoo3 TV card for TV output - IRDEO infrared receiver/transmitter, mildly hardware-hacked - Infrared keyboard/mouse (www.keyboardco.com) - SBLive 5.1 - Hard disks: 1x20GB for system, 1x75GB, 1x60Gb for video - dvd drive - Ultra-quiet power supply, PC cooler etc (www.quietpc.com) - 4x20 LCD display module (not yet integrated) This lot works very well for general use. I can capture off both analogue cards simultaneously whilst also playing back another file. Each FFMPEGrec instance uses around 25% CPU, the playback uses < 10%. Haven't tried but I'd expect to throw capture of a DVB-T channel into that mix too. In your hardware selection that key thing will be your video output card. Its important to find a card with 24bit/32bit colour, with XVideo support or some other accelerated video output support that fits your environment, and with TV-output that works properly. I'm happy with my Voodoo3 TV card, but I did have to do some work on the bt869 TV-output driver to add support for 720x576 resolution with overscan. Still - that's done now so if you can find one of those you are away. I know Matrox has stopped supporting their TV-out on newer cards. If you can find a G400 card I believe that that works well for TV-out on Linux. I'm not sure of the TV-out status for ATI cards. You could consider devices like DVB-S cards or DXR3 which can be driven by mplayer. But this does make presenting on-screen user interface harder. Research this all carefully before putting your money down on this item! On the hardware side all I'm missing is the right case. I think I will have to customise something myself. On the software side, I use (and you should consider): To drive video capture cards: bttv to drive WinTV cards. I use bttv 0.8 in order to get V4L2 support. I use the included btaudio driver to get audio straight off the capture cards without needing to loop through a sound card. DVB driver for the Nova-T card To capture mpeg1 in realtime: Justin Schoeman's NVrec, specifically FFMPEGrec I've also used mp1e, but for me it shows gradual AV-sync drift If you don't mind higher CPU usage, DIVX4rec makes DIVX4 .avi files that are smaller for similar quality. To record audio/radio: I use mpegrec for mp3 capture To playback video/dvds: mplayer. No debate for me. I should say that video is a minefield of patents etc etc so I wonder if you can completely solve your questions about freedom/legality. What are your specific concerns about mplayer? To playback audio: I use xmms. mpg123 or madplay are simple non-X apps that could be used. To organize video disks: I use LVM (the linux volume manager) I use XFS as the filesystem. Saves fscks, performs great for me even capturing 2 to 3 streams whilst playing a couple. For infrared receive & transmit: LIRC For reformatting video files: mplayer's mencoder ffmpeg For speech synthesis flite. Just for fun... To drive the LCD display: lcdproc I find it amazing to look at that roll-call of excellent open software! And it all works together. Truly I've received more than I could ever contribute! In addition to all that, my box uses a Postgres database which stores channel, schedule information. I have a Ruby program that feeds this database daily with schedule information kindly provided by Ananova. Idea based on xmltv but reimplemented. Most of my time so far (I've been working on this project say 8 months of spare time) has gone on features and improvements for al this software above, together with the database development. I can still think of things I'd like to do in these apps, but the "next thing" for me needs to be user interface. Right now I simply use various SQL tools to query the schedule database, "at" and a simple shell script to schedule recordings, and Konqueror to browse my captured video files (.mpg associated with a playvideo shell script). The family can handle the latter, but not the former - so I currently have **TOTAL POWER** over what gets recorded... ;-) I've just started sketching out and playing with a user interface. I'll use Ruby and ruby-fltk for a toolkit. For TV output you need to take care with your display for legibility and to avoid flicker, so I will use simple widgets only. The idea is for the interface to be drivable with a remote control for the main functions of scheduling recordings, selecting programmes to playback. I'm not bothered to provide a friendly interface for more exotic things - the advantage of the open platform is I can just ssh in and do all that. I hope that this is interesting for you. I've had the best fun with the project, and learnt a load about digital video etc - which was the main point. On the downside, I could probably have bought 3 TIVOs for the same money... Steve