I’ve been using Freevo as a “VCR” for about a year now, and I really like it. Freevo is a lightweight multi-media PC framework written in python, running on Linux, using many existing open-source multi-media players like mplayer and xine. In my case, I’ve been using it for the last year running without the GUI on my server in the office, while displaying the recorded programs using a Hauppage MediaMVP running the open-source MVPMC (MVP media center) instead of Hauppage’s Windows-based software. The MVP is great because it’s quiet and low-power, boots quickly, and produces a great video image; we use it to watch recorded programs in our bedroom after the kids are in bed. The MVPMC software really gives it a lot of flexibility (more so than Hauppage’s own software), and it’s under steady development to give it even more features. MVPMC also integrates nicely with that other Linux HTPC package (MythTV), but I personally like Freevo’s design much better. I’ve been using Hauppage’s WinTV PVR 150 as the capture card (I use the less expensive 150 OEM MCE edition, as they don’t come with the Windows software, just MCE drivers). The full retail version comes with a remote, which is supported under Linux using the LIRC package.
Main menu
|
TV Guide
|
Movie Browsing
|
|
|
|
Music Browsing
|
Playing Music
|
Image Browsing
|
|
|
|
So, getting on with the story… I noticed that Georg had packaged 1.7.0 for Debian and Ubuntu, so I decided it was time to upgrade from 1.6.3, as 1.7 has some really nice new features. I hit a couple of minor packaging issues, which I figured out and sent Georg an e-mail last night (he had them fixed in the morning! Gotta love Open-Source developers!) I backed up my local_conf.py file, and copied the new local_conf.py.example to local_conf.py, and started restoring my settings from the backup file. Generally, everything worked well, except for some video issues.
This is how Freevo’s IVTV options were configured “out-of-the-box” in the Debian packages I used (IVTV is the open-source driver effort for cards like the WinTV PVR series).
TV_IVTV_OPTIONS = {
'input' : 4,
'resolution' : '720x480',
'aspect' : 3,
'audio_bitmask' : 233,
'bframes' : 3,
'bitrate_mode' : 1,
'bitrate' : 4000000,
'bitrate_peak' : 4000000,
'dnr_mode' : 0,
'dnr_spatial' : 0,
'dnr_temporal' : 0,
'dnr_type' : 0,
'framerate' : 0,
'framespergop' : 15,
'gop_closure' : 1,
'pulldown' : 0,
'stream_type' : 10,
}
Now, in IVTV 0.8, many of the IVTV options are now configured through the command v4l2-ctl, and not ivtvctl as they were in previous versions of the IVTV utilities. As the drivers progress in developement, ivtvctl will go away, as all it’s features get rolled into the v4l (video 4 linux) drivers and utilities
Here are the defaults for the two settings that got me when I upgraded to the 0.8 drivers from the 0.7 ones.
video_aspect (menu) : min=0 max=3 default=1 value=1
video_b_frames (int) : min=0 max=33 step=1 default=2 value=2 flags=update
I needed to set ‘b frames’ to 2 to eliminate some picture jitter I was getting, and I needed to set aspect to 2 to get the aspect ratio back to the expected 4:3 for my TV (3 is 16:9 widescreen, which I don’t have). As the drivers develop and get merged into the v4l project, expect to tweak settings as defaults may change.
Here are the possible aspect ratio choices:
aspect aspect ratio
1 1:1
2 4:3 (normal TV)
3 16:9 (Widescreen)
4 2.21:1
v4l2-ctl -l | more
is a helpful troubleshooting tool that lists all possible controls and their values. It lists what the defaults are as well as what the current value is, so if you run into problems, try setting your values to defaults, then changing one at a time to see if that fixes your problems (or improves the quality, etc.).
I’ll write something more about Freevo in the future (It’s a project I really enjoy using!), but if you have questions or comments, feel free to use the comments on this post to ask away!