Re: Home-Brewed TiVO like System

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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





[Index of Archives]     [Linux DVB]     [Video Disk Recorder]     [Asterisk]     [Photo]     [DCCP]     [Netdev]     [Xorg]     [Util Linux NG]     [Xfree86]     [Free Photo Albums]     [Fedora Users]     [Fedora Women]     [ALSA Users]     [ALSA Devel]     [Linux USB]

Powered by Linux