Boston Linux Users Group Building a PVR Using Linux and MythTV May 19, 2004 Jeffrey Perry jeffperry_2003@yahoo.com Building a Linux PVR w/ MythTV Introduction Planning Installation Demo Conclusions What is a PVR? PVR = Personal Video Recorder A video recorder which records to the hard disk instead of a tape Definition varies but most include: Electronic Program guide, pause/ff/rw live and recorded shows Other possible features ... remote viewing, web scheduling, music etc. Motivation TiVo is cool, wouldn't you like one too? How much does it really cost? Ok, I want to burn DVDs too. How much now? Interesting project Practical - no VCR or DVD player already Commercial PVRs TiVo ReplayTV Others.... TiVo: How much does it cost? 40 Hours - $149 * 80 Hours - $249 * 140 Hours - $349 * *= PLUS program listing service fee of $ 12.95/month or $299 lifetime PLUS $99 for Home Media Option TiVo: Home Media Option Web scheduling Digital photos Digital music Multi-room viewing ReplayTV How Much does it cost? 40 Hours - $150* 80 Hours - $300* 160 Hours - $450* 320 Hours - $800* *=PLUS program listing service fee of $ 12.95/month or $299 lifetime Cost of DVD Recorders Q: How much to buy a consumer device which can record TV shows to DVD? A: Consumer DVD recorders range in price from $200- $500 Consider: PC DVD Writers Sony 4x for $118( Jan 2004, rebate) Sony 8x for $160 (now @ compusa.com) Enter MythTV: Features Record TV shows, scheduled, instant record Free Program guide - via Zapdata.com, others Pause/Fastforward/Rewind Live TV, recordings Store & play music, DVD videos Watch & record at same time Check weather, news, and browse web Play and burn DVDs Skip commercials – auto detect and flag Play SNES & other video games (Xmame) MythTVArchitecuture Strengths Distributed modular design Frontend - the UI you interact with Backend - Tracks schedule, records, streams playback Highly Scalable Multiple Add tuners to machines and share Multiple tuners back ends A single master backend coordinates the rest Open Source Hardware: TV Tuner Tradeoffs Hardware MPEG chip Faster encode/decode without load on PC Result: Can use slower CPU Tuner only Requires card support video4linux driver (or bttv driver) Requires high speed CPU for encode/decode See: PVR Hardware Guide http://pvrhw.goldfish.org/tikipage.php?pageName=install_guides Hardware: Hauppauge Tuner Cards WinTV PVR250 (~$100) Hardware Encode WinTV PVR350 ($200) Hardware Encode Hardware Decode Radio Tuner Comes with an IR remote Hardware: Display Options WinTV PVR350 has TV Out Linux ivtv driver needed Still under development Still a bit unstable with occaisional hangs Video card w/ TV Out support This Still may be the better bet for stability right now. need a tuner card (either simple or w/MPEG encode/decode in hardware) Hardware: Motherboard, DVD, Hard Drive Beware of cheap VIA chipset motherboards. MythTV problems await! (Don't panic yetsome workarounds exist which MAY cure it) DVD Writer (optional) Used to install Linux, archive shows Big Hard Drive approx better 1G/30 mins @ 480x480 MPEG2 compression possible with lower res or tweaking Hardware: Device Drivers for TV Card &Video TV Card Hauppauge ivtv version 0.1.10pre2 or newer stable version PVR350 only - Patches to X windows (framebuffer coexistance with ivtv framebuffer interaction) Other WinTV PVR250/350 tuners Video4Linux kernel module Video card w/ TV Out X windows driver for your card Hardware: Remote Controls Remote control functionality: LIRC package Supports IR and RF remotes including home made receivers My Hardware Setup Case: AMS gBox P4 Blue CF-968L ($230, sale) CPU: 1.7Ghz celeron ($65) Motherbrd: Socket478B Chyang Fun CFI-S968L 256 meg RAM ($65) Hauppauge WinTV PVR350 ($200) Sony DVD +-RW writer 4X ($118,rebate) Seagate 200 Gig (about 100 hours) HD ($100,rebate) TOTAL Cost: $778 Installation: Choosing a Linux Distribution Suse 8.1 too many additions & probs reported KnoppMyth R4 is not the easy way out Choose tried and true Redhat 9.0 ATRPMs Apt-get has most of the rest of what you need for rpm is your friend Still some kernel packages issues, requires forced loading of some rpms. Getting better. Use Jarrod's guide - updated now for Fedora http://wilsonet.com/mythtv Installation: Choosing a Filesystem File system choice Ext3 XFS (my choice, simple default for now) (some report better perfomance) Generally good idea to increase inode size (default is 4k, 64 meg would be better) Installation Overview 1. Install Redhat 2.Install device driver for tuner (PVR2/350 reqs extract windows driver from cdrom) 3.create mythtv user 4.Install atrpms-kickstart 5.Get latest updates (Apt-get update) 6.Get mythtvsuite and dependencies (apt-get mythtv-suite) - 54 packages in all - not perfect 7.Mythtvsetup Installation Overview (Cont.) 1.Mythfilldatabase 2.Start mythbackend 3.Start mythfrontend, visit setup section and config 4.Configure each module - (see docs at mythtv.org) 5. (some modules )Additional tweaks outside GUI (example: Installing a new Video for MythVideo) Installation tweaks Turn off automount of Cds (mythmusic ripper) Turn off esd or artsd Remove ~mythtv/.kde/Autostart/Autorun.desktop Chkconfig autofs off, apmd off, httpd on (mythweb) Ln -s /dev/scd0 /dev/dvd (MythDVD) Edit channels (~mythtv/<sourcename>/.xmltv & tweaks to associated DB tables) Turn on DMA on HD (hdparm -d 1 /dev/hda) Demonstration MythTV MyhtvSetup News Mythfilldatabase Weather MythFrontend Setup Web TV Images Video Games (not setup) DVD Music Conclusions: MythTv Rough spots PVR250/350 record to MPEG2 directly so Commercial cutting must be done manually. Still not perfect. A/V sync is a challenge for MPEG2 w/o having to rencode whole file (takes hours) Integration is not as seamless as it may seem (ex: Remote control of MythVideo requires edits to your lirc config file) [mplayer] Installing videos not ripped from DVD is done outside the GUI by copying, then back to GUI to "scan" for new files MythTV Rough Spots (Cont.) Mythfrontend UI Selecting exit, then yes does not shutdown the machine Icons - MythWeather (simple, easy to use, does it's job well :) A few Zip for recorded state non obvious small bugs code feature is not obvious. MythTV - generally non existent end-user documentation. Conclusion: MythTv Strengths Recording scheduling flexibility & prioritization Playback features including FF, Pause, Rewind More features than TiVo Excellent modules: MythTv, MythMusic, MythDVD, MythWeather and MythNews Flexible distributed architecture Clever design makes apps appear mostly seamless (xml config files control app integration & gui themes) Conclusion & Recommendations Building a reasonably priced full-featured Tivo alternative with more features including DVD writing is possible - the result is very usable and enjoyable but will take some effort Recommendations TV Out: Buy a video card with TV output Tuner: PVR 250/350 Redhat 9.0 / Fedora & Jarrod's walkthrough DVD Writer, Hard Drive (BIG) Resources - Start Here MythTV http://www.mythtv.org IVTV (Hauppauge PVR250/350 Driver) http://ivtv.sourceforge.net PVR Hardware Guide http://pvrhw.goldfish.org/tiki-pvrhwdb.php Jarrods Redhat 9.0 and Fedora Install Guide http://www.wilsonet.com/mythtv Resources - MythTV Myth TV Main site (download, docs, etc) http://mythtv.org MythTV Mailing list archives (links to lists at bottom) http://mythtv.org/modules.php?name=MythInfo MythTV forums http://www.gossamer-threads.com/lists/mythtv/ Windows front-end for MythTV http://winmyth.sourceforge.net/ Jarrod's MythTV install walkthrough for Fedora, other info http://www.wilsonet.com/mythtv/ Resources - LIRC & IVTV LIRC Remote control http://www.lirc.org Ivy Wiki (ivtv community) http://ivtv.writeme.ch IVTV Sourceforge page http://ivtv.sourceforge.net/ IVTV Development list archives http://www.poptix.net/ivtv/ Resources - PVR Hardware PVR Hardware News http://pvrhw.goldfish.org/tiki-view_articles.php PVR Hardware Guide http://pvrhw.goldfish.org/tiki-pvrhwdb.php PVR Hardware Install guides for MythTV, others http://pvrhw.goldfish.org/tikipage.php?pageName =install_guides Resources - Edit/cut commercials Avidemux http://fixounet.free.fr/avidemux/ Note on running dvdauthor w/ avidemux http://www.dealdatabase.com/forum/showpost.php?p=1522 19&postcount=9 Gopchop http://sourceforge.net/projects/gopchop/ http://outflux.net/unix/software/GOPchop/ Cinelerra Video Editor http://heroinewarrior.com/cinelerra.php3 MythMkMovie (output not mpeg, requires transcoding) http://www.icelus.org/ Resources - DVD Burning Dvd-rw-tools & growisofs http://fy.chalmers.se/~appro/linux/DVD+RW DVD Author http://dvdauthor.sourceforge.net/ GUI front-end for dvdauthor http://qdvdauthor.sourceforge.net/ DVDStyler - GUI front-end for dvdauthor http://dvdstyler.sourceforge.net/ DVD Slideshow slideshow.sourceforge.net/ http://dvd- Linux Journal artile on DVD authoring http://www.linuxjournal.com/article.php?sid=6953 Linux Gazette DVD burning howto http://www.linuxgazette.com/issue83/stoddard.html Cdrecord (limitation on burn size w/o agreeing to license and getting free key)http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/ Resources - Misc. Libmpeg http://libmpeg2.sourceforge.net/downloads.html Transcode http://www.theorie.physik.unigoettingen.de/~ostreich/transcode/ Commercial DVD burning package - GearPro for Linux http://www.gearsoftware.com/products/ProLinux/index.cf m Linux video studio - GUI for editing http://packages.debian.org/stable/graphics/linuxvideostudio