Linux HTPC Software
Welcome Digg users. So you know, the main page for the howto is Here, this page is a sub page of the Howto.
The frontend
A good HTPC has a single frontend software application that the user works with. The frontend should be easy to understand, navigate, and functional. The frontend is also responsible for launching other applications if external functionality is needed. There are two frontends for Linux that do this, Freevo and MythTV. Freevo is a Tivo like application that is aimed at providing the same PVR and DVR like features. MythTV provides the same functionality as Freevo, but it also provides many others also. MythTV is being developed a good bit faster than Freevo, but Freevo is still a good application. Because of this, I recommend MythTV.
MythTV
MythTV is fairly easy to install. The great people of MythTV have wonderful documentation that would make covering the full install here pointless. Everything I have written up regarding the installation of MythTV for HDTV I only put online via this documentation.
Starting with MythTV version .15 and newer you get great HDTV support without needing to use CVS. CVS always has newer things that we all want but at the price of stability. If you're not familiar with CVS, just use third party built packages of MythTV for your distribution (Redhat, Fedora, Debian, Suse, Gentoo all have packages). If you want bleeding edge like I do here is what to do.
You need to download and install the main MythTV package. If you want to compile it yourself you need to have the correct development packages that Myth depends on installed also. Once MythTV is installed you can add on extra modules. These extra modules add features from DVD viewing and ripping, listening to music, being able to control MythTV from over the Internet, getting weather information, and playing different games via xmame, video conferencing, news, web browsing, etc. Once the modules are installed you need to setup MythTV. Make sure you have mysql running (and the mythconverg database has been loaded, which is normally done by RPM or Debian package install. The MythTV document explains this). Next you have to run the myth setup program (Not the setup inside of the frontend) to select your Tuner Cards, your TV Broadcast Listing and so on. Once you are done press Esc to exit and run mythfrontend. Explore the settings and functionality in MythTV and enjoy.
MythTV features include:
- Basic 'live-tv' functionality. Pause/Fast Forward/Rewind "live" TV.
- Support for multiple tuner cards and multiple simultaneous recordings.
- Distributed architecture allowing multiple recording machines and multiple playback machines on the same network, completely transparent to the user.
- Fully automatic commercial detection/skipping.
- Automatic updated tv program schedules.
- A fully themeable menu.
- Displays basic program information on channel change using a themeable semi-transparent on-screen display.
- Basic video editing abilities.
- Picture in picture support, if you have more than one tuner card.
- Electronic Program Guide that lets you change channels and select programs to record.
- Program Finder to quickly and easily find the shows you want to record.
- Scheduled recordings of TV programs, and playback and deletion of those programs, all through a themeable UI.
- Browse and resolve recording conflicts.
- Rip, categorize, play, and visualize MP3/Ogg/FLAC/CD Audio files. (FLAC and Vorbis encoding only). Create complex playlists (and playlists containing playlists) through a simple UI.
- An image viewer/slideshow application.
- A generic video player module, with automatic metadata lookups.
- LIRC (Infra Red remote) support.
- Ability to control external set top boxes to change channels.
- Xinerama support for multi-head displays.
- Transcoding from one video/audio format to another.
- Plus whatever has been added since this how-to was last updated.
- Ripping of CD's and DVD's for archiving to disk.
In all, MythTV is very active project and it is improving all the time. The number of features are increasing monthly and there are still countless more features to be added. MythTV is probably the most advanced and feature full HTPC software application in the world. The best thing is too, it's 100% free and open source. Even the data for TV shows, including HDTV, are all free thanks to our friends at Zap2It Labs.
tvtime
tvtime is a high quality television application for use with video capture cards. tvtime processes the input from a capture card and displays it on a computer monitor, projector, TV, or HDTV.
tvtime does realtime video deinterlacing for x86-based GNU/Linux systems. tvtime was the first deinterlacer application under Linux to provide full rate output at 59.94fps for NTSC (or 50fps for PAL). For NTSC sources, tvtime includes 2-3 pulldown detection and inversion for highest quality output of film source material. tvtime supports a 16:9 anamorphic input mode for scaling video, and can happily output to a non-square pixel display device. For computer monitors, data projectors or televisions with VGA input, tvtime provides the highest quality visual experience when playing from a NTSC or PAL capture card.
For PVR systems which output to a television, tvtime has a special interlaced display mode. In this mode, no deinterlacing is performed, but it work directly with the TV encoder chip to ensure that correct field parity is maintained for broadcast-quality display: top fields sent as top fields, bottom fields as bottom fields, in order. This currently works directly with the TV encoder driver for the Matrox G400, G450 and G550 cards in the DirectFB project.
tvtime has been working with authors of PVR systems for integration as a display component. For the freevo project, tvtime has added a slave mode and krister has done a special tvtime controller component for live TV viewing. Miguel Freitas of the xine project has put together a tvtime deinterlacer plugin as a post processor, and this is the first experiment on efficiently processing 4:2:0 sources like MPEG2 video.
tvtime uses deinterlacing algorithms from the GPL licensed Windows application DScaler, the ffmpeg project, the mplayer project, and from their own developers. The 2-3 pulldown detection algorithms in tvtime were developed by Billy Biggs and Richard Felker. They use wine for loading the DScaler DLLs, using the libwine fork from the xine project. tvtime also supports lirc for remote control input. Finally, tvtime uses freetype for text rendering, helped by its own subpixel glyph positioning code and compensation for non-square pixel framebuffers. This allows it to composite high quality text even if its output surface is a 16:9 480x480 pixel buffer.
If you want to do any digitizing of old video tapes, get the best picture from NTSC TV, or improve the quality of video from a console game you should get tvtime.
Xine, Mplayer, Ogle, and Mencoder
Xine and Mplayer are both geared towards providing the best and most video and audio codec support possible. Each support over 100 different video and audio codecs. For me, I use Xine for watching DVD's. The Xine DVD functionality is better than that in mplayer (Xine supports DVD Menu navigation, mplayer does not). Mplayer though is easier to use if you just want to watch a quick video clip and if you have stored a movie to your hard drive, the playback of mplayer is better if properly configured.
Mplayer also has a companion application Mencoder that encodes video and audio. MythTV uses mencoder as its transcoder. A transcoder can take any video or audio codec and re-encode it into another to get better compression. You can also use transcoding to help improve the video quality slightly using the same type of algorithms in tvtime. Although this helps some, it can't recreate data perfectly in an image that was lost when it was first created. Deinterlacer is a common algorithm that is used while transcoding NTSC or some ATSC/HDTV formats. You can also use mencoder to ready files for writing to a DVD, such as TV shows or old VHS tapes you have saved to your hard drive.
Ogle is another DVD player like Xine. It is very stripped down but works well. The quality in Ogle is not as good as Xine but Ogle is less featured and sometimes is better for non-guru users.
|