[Index] [TitleIndex] [WordIndex

Please add new questions (and possibly answers) here if something is missing!

Contents

  1. How do I...?
    1. How do I play (S)VCDs?
    2. How do I play CD audio disks?
    3. How do I set up XMLTV to get TV listings?
    4. How do I prevent Freevo from joining multiple episodes of a TV series together into one giant "mega episode"?
    5. How do I use freevo with my dxr3 hardware mpeg decoder?
    6. How do I program freevo/mplayer to make custom skips in a movie with a remote control? / How do I re-map remote buttons to custom events?
    7. How do I use DMA audio to play or capture sound via the PCI bus?
    8. How do I disable an item in the main menu, i.e. if I don't have a TV card?
    9. How to make Freevo remember the last volume level set after shutting down the program
    10. How do I get it to put out video on my video card that also has a video output?
    11. How can I set a resolution other than 800x600, 768x576 or 640x480?
    12. How do I make Freevo appear as a session in Redhat 9's session list, or in GDM?
  2. Hardware / OS issues
    1. I have an old computer with a processor less than 400 Mhz, will it be able to do all functions in Freevo?
    2. I'm using distribution X will that work with freevo?
    3. I'm running Freevo on a Matrox G400 in framebuffer mode. Why is the screen "squeezed together" horizontally. I have black bars about 1" (3 cm) on either side of the TV screen!
    4. My G400's TV Out is really dim, can I fix that?
    5. What is the recommended hardware (video out and in) when putting a box together from scratch?
    6. What kind of TV-in card should I buy?
    7. Does Freevo support multiple simultaneous TV inputs? Can I record 2 things at once or watch TV while recording on another channel?
    8. I have a "Windows" handicap... Any plans for a windows version?? (ducks ;-)
    9. My media files are on a Windows share and I would like to use them
    10. What is the minimum hardware I should get for a low-power media set-top box, using mini-itx?
    11. Does Freevo support using the mouse?
    12. Is there an easy to follow dvb-s setup together with freevo howto available somewhere ?
  3. Errors / crashes
    1. I'm getting an error when trying to run Freevo web server. It says: "ImportError: cannot import name app"
    2. When running setup i get: Inconsistency detected by ld.so: rtld.c: 1175: dl_main: Assertion `_rtld_local._dl_rtld_map.l_prev->l_next == _rtld_local._dl_rtld_map.l_next' failed!
    3. I downloaded Freevo and tried running it, but it crashes with [some exception]. What version of Python does Freevo require?
    4. I'm getting an error when trying to run Freevo. It says: "ImportError: No module named utils"
    5. I'm getting an error when trying to run Freevo. It says: "ImportError: No module named pygame.locals"
    6. I'm getting an error when trying to run Freevo. It says: "IndexError: string index out of range"
    7. /dev/dsp doesn't work under KDE, it complains that the sound device is busy.
    8. I get and error about libpng.so.3 trying to start freevo setup
    9. Pygame Error Message: font module not available
    10. XMLTV Error / tv_grab_na: check postal/zip code or www site
    11. Render failed, skipping : surfarray module not available error message
  4. PS3-specific issues
    1. When starting freevo on PS3 it says: pygame.error: No video mode large enough for
    2. I have installed freevo on PS3 why does movie play backs look pixalated/choppy?
    3. I have a PS3 and installed freevo what kind of settings should I use?
  5. TV issues
    1. Why can't I get any sound when I'm watching TV?
    2. Why are the TV programs I've recorded totally silent?
    3. Why is the audio out of sync for watching TV, but working ok everywhere else?
    4. Why is that my scheduled recordings never actually record?
    5. Why do my programs I've scheduled for recording keep recording for ever?
  6. Other problems/troubleshooting
    1. Why are all my songs played twice?
    2. When I insert a DVD Freevo doesn't recognize / can't play it
    3. Freevo cannot be started without a mouse in the Framebuffer mode
    4. Why does my screen keep going blank?
    5. I updated my channel listings in freevo_config.py but they don't update in freevo
    6. dxr3 cards and recorded TV show is jumping/flickering
    7. Why can't I navigate using the DVD menu
    8. I upgraded Mplayer and now I can't play movie or music files!
    9. Can't watch tv using the tvtime plugin with tvtime 0.9.15
    10. When I run fullscreen video playback (through xine or mplayer) the playback application does not respond to key commands or the application responds to its own native key commands and not Freevo's key commands
    11. Mplayer is responding to both Freevo key commands and its own key commands
    12. Mplayer cannot be controlled using the normal keys
    13. The black borders are shown at the bottom of the video (not above and below the video) when viewing movies with MPlayer from fullscreen freevo
    14. Mplayer only shows a blank screen or there are fullscreen problems
    15. I configured the movie directory like this: DIR_MOVIES = [ ('Movies on /data', '/data') ] and now freevo does not start anymore. What is wrong?
    16. My VCDs all have the same chapter menu. The first VCD I tried seemed to get a correct chapter menu, but every one after that shows the same number of chapters and chapter timings as the first one.
  7. Skins
    1. What tools or methods are available for designers to be able to quickly preview their work when designing new skins for Freevo?

How do I...?

How do I play (S)VCDs?

Make sure local_conf.py is properly setup (MPLAYER_ARGS_VCD). Test the same commandline from the shell to make sure it can be played. Use "VCD" in Freevo to play it. You need to use the Freevo function for opening and closing the tray to mount the disk.

How do I play CD audio disks?

Freevo should autodetect your CD devices depending on the structure of your /etc/fstab. If it doesn't find one, add an entry like this to your local_conf.

 ROM_DRIVES = [ ('/mnt/cdrom','/dev/cdrom','CD')] 

If you have problems with stuttering audio, make sure you have your hdparm settings set up correctly. I had to do the following to get acceptable audio playing on my machine:

 hdparm -d1 -a8 -u1 -c1 /dev/cdrom 

How do I set up XMLTV to get TV listings?

Please see the Configuration and XMLTV

How do I prevent Freevo from joining multiple episodes of a TV series together into one giant "mega episode"?

Set VIDEO_AUTOJOIN = 0 in your local_conf.py config file.

How do I use freevo with my dxr3 hardware mpeg decoder?

You can use SDL with a DXR3 patch. But most people report problems with that. So right now, the DXR3 is unsupported by Freevo.

How do I program freevo/mplayer to make custom skips in a movie with a remote control? / How do I re-map remote buttons to custom events?

This description applies to freevo version >1.3.2 (full release) To make mplayer skip 10 minutes forward and backward in a movie for example we have to modify local_conf.py:

EVENTS['video']['PREV'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='seek -600')
EVENTS['video']['NEXT'] = Event(VIDEO_SEND_MPLAYER_CMD, arg='seek 600')

That way we let freevo know what to send to mplayer to do what we want and assign the commands to the names PREV and NEXT. Now, we need to modify /etc/freevo/lircrc to use the commands PREV and NEXT. Example:

begin
    prog = freevo
    button = 7
    config = PREV
end
begin
    prog = freevo
    button = 9
    config = NEXT
end

With these two sections we assign the buttons "7" to skip 10 minutes backward and "9" to skip 10 minutes forward.

See http://www.mplayerhq.hu/DOCS/tech/slave.txt for a list of mplayer commands, or run mplayer -input cmdlist.

How do I use DMA audio to play or capture sound via the PCI bus?

For watching tv in linux using a tv-tuner card the most common way of getting the tv sound input is by using a short audio cable that connects on one end to the tv card and the other end to the line-in jack on a sound card. This way there is always audio data being pumped to the sound card's line-in. Any programs used to play or record this audio must be configured to get the stream from the line-in channel of the sound card's DSP resource (ie: /dev/dsp0).

The btaudio kernel module provides an alternate method of recording or playing sound from bt878 tv-tuner cards directly via the PCI bus, bypassing the sound card input and potentially results in better A/V sync. This is termed 'DMA Audio'.

For tv-tuner cards using other chipsets (e.g., Phillips SAA7134, Conextant cx88) there are equivalent capabilities available.

(SAA7134-based cards do not need any additional kernel modules, an insmod option 'oss=1' will enable the DMA audio capture capability.)=deprecated SAA7134-based cards since kernel-2.6.16 there is a new module called saa7134-alsa or saa7134-oss, more information at: http://linuxtv.org/v4lwiki/index.php/Saa7134_devices_(saa713x). This maps the DMA audio to the next available /dev/dsp? device (and may reorder the device numbering if the sound card module is loaded after the saa7134 module has loaded). It is advisable to load the saa7134 module only after the sound card modules are loaded to avoid this problem, as well as to specify the device number using mixer_nr and dsp_nr options. Go to http://bytesex.org for more information.

Note that SAA7130-based cards do not have this capability and can only capture audio via the sound-card.

From the linux kernel documentation:

    Audio DMA support for bt878 based grabber boards.  As you might have
    already noticed, bt878 is listed with two functions in /proc/pci.
    Function 0 does the video stuff (bt848 compatible), function 1 does
    the same for audio data.  This is a driver for the audio part of
    the chip.  If you say 'Y' here you get a oss-compatible dsp device
    where you can record from.

Please also read Documentation/sound/btaudio from the linux kernel source! It has some valuable information.

So, if you think your tv card has this capability then try it out. You will probably have to build your own kernel / this module yourself but may be lucky enough to have it included in your linux distribution. There is another module that is called tvmixer which provides access to the sound mixer capabilities of these cards as well. Both of these modules can be found in the sound section of the linux kernel configuration.

Once you have these modules compiled it is time to try them out. The btaudio module has some important options. If you read 'Documentation/sound/btaudio from the linux kernel source' you will see that btaudio may provide access to both a digital and analog audio source. My tv card is capable of 16 bit stereo sound so I use the digital one. For the record I am using an ATI TV-Wonder (regular edition) as my tv card. Btaudio also has a 'rate' option which defaults to 32kHz so you will most likely not need to change this option but you should be aware of it.

To load btaudio I do the following:

# modprobe btaudio analog=0 digital=1

If I then type 'dmesg' to display the kernel messages I see:

btaudio: driver version 0.7 loaded [digital]
PCI: Found IRQ 5 for device 00:0b.1
PCI: Sharing IRQ 5 with 00:01.1
PCI: Sharing IRQ 5 with 00:0b.0
btaudio: Bt878 (rev 17) at 00:0b.1, irq: 5, latency: 32, mmio: 0xe9026000
btaudio: using card config "default"
btaudio: registered device dsp1 [digital]

For tvmixer (needed by btaudio only, not necessary for saa7134-based cards) you probably do not need to use any options so simply:

# modprobe tvmixer

Likewise:

i2c-core.o: driver tv card mixer driver registered.
tvmixer: debug: MSP3445G-B8
tvmixer: MSP3445G-B8 (bt848 #0) registered with minor 16
tvmixer: debug: Philips NTSC_M (MK2)

Ok, with any luck you now have these modules loaded. It is time to try them out. If you have a silly audio patch cable going from your tv card to your sound card remove now because you won't be needing it! But first please read caveat below.

Not all programs are capable of capturing audio using DMA audio via the PCI bus. Notably, most TV viewing programs (such as tvtime, mplayer, xawtv 3.x) are not able to use the DMA audio input for live viewing. This situation may change in future as DVB (digital video broadcast) capture cards become more common.

The tvtime FAQ notes a workaround for live TV viewing without the audio patch cable. See http://tvtime.sourceforge.net/help.html#noaudio

Hence, DMA audio capture is currently limited to recording TV programs for later viewing. A few requirements come to mind. You must be able to tell the program to capture at a sample rate equal to what btaudio is providing. The default for btaudio is a rate of 32000 Hz. Most programs will try to capture at a rate of 44100 Hz so if you can't tell them otherwise what you hear will sound like Alvin and the Chipmunks :). For saa7134-based TV-capture cards, the audio rate must be set to 32000 Hz or you won't get any sound!

Also you will need to specify which DSP resource to capture from, and sometimes which channel (line-in). For me the DSP for my digital btaudio device is /dev/dsp1 as shown in the above kernel messages. There are also some other problems that occur when it comes to programs using a btaudio device. Programs use functions called ioctls to control hardware and the btaudio device does not have all of the same functions that an OSS or ALSA driver will provide. Therefore some programs will simply 'break' while attempting to access a btaudio device. Some of the time this can be worked around by patching or editing the source code of the offending program.

Current versions of mencoder (1.0preX) has support for DMA audio. Another program that needs some help is mp1e. There is a quick patch that can be applied to mp1e and it can be found in Aubin's freevo WIP directory, 'freevo/WIP/Aubin/mp1e_btaudio.diff'.

For encoding I am quite fond of the nvrec tools, http://nvrec.sf.net and find that ffmpegrec and divx4rec both work great for use with btaudio. My command lines for each of these programs is as follows:

mp1e:  mp1e -v -m3 -p/dev/dsp1 -r14,100 -S32 -a0 -c/dev/video0 -s640x480  \
            -b3 -o file.mpeg

       key parameters: -p/dev/dsp1, the btaudio device
                       -r14,100, the line and volume %. 14 is line-in
                       -S32, the audio sample rate in kHz.
                       -a0, Audio mode 0 = stereo

ffmpegrec:  ffmpegrec -input Television -norm NTSC -vb 1500 -vq 100 -w 640 \
                      -h 480 -vp 1 -d /dev/dsp1 -r 32000 -b 16 -s -ac mp2 \
                      -ab 128 -ap 1 -ff mpeg -o file.mpeg

       key parameters:  -d /dev/dsp1, the btaudio device
                        -r 32000, the sample rate
                        -b 16, 16-bit sound
                        -s, stereo sound

divx4rec:  divx4rec -d /dev/dsp1 -r 32000 -b 16 -s -ab 128 -input Television \
                    -vb 1400 -vq 100 -w 480 -h 360 -o file.avi

       key parameters:  -d /dev/dsp1, the btaudio device
                        -r 32000, the sample rate
                        -b 16, 16-bit sound
                        -s, stereo sound

mencoder -tv on:driver=v4l:input=0:norm=NTSC:channel=2:chanlist=us-cable:\
width=320:height=240:outfmt=yv12:device=/dev/video0:adevice=/dev/dsp2:\
audiorate=32000:buffersize=64:forceaudio:forcechan=1 -ovc lavc -lavcopts vcodec=mpeg4:\
vbitrate=1200:keyint=30 -oac mp3lame -lameopts br=128:cbr:mode=3 -ffourcc divx \
-o /mnt/video/06-08_07:30_-_Seinfeld.avi
       key parameters:   adevice=/dev/dsp2 - analog btaudio
                         audiorate=32000 - proper sampling rate
                         forceaudio - needed for mencoder to force recording of audio
                         forcechan=1 - try 2 for stereo mode if your capture card supports it

There is since 1.0.0rc2 an equivalent of btaudio for alsa: snd-bt87x module. I use the following /etc/asound.conf:

pcm.emu10k1 {
           type hw
           card 0
        }

        ctl.emu10k1 {
           type hw
           card 0
        }

pcm.bt87x {
           type hw
           card 1
        }

        ctl.bt87x {
           type hw
           card 1
        }

For using mencoder with ALSA, you must specfy the option 'alsa' and as device try 'bt87x' or 'emu10k1'. bt87x doesn't work for me (just like btaudio didn't), but emu10k1 works fine. Not using OSS has the advantage for me that I can record from line-in with volume control muted, hence ENABLING timeshift recording. My record script, this is for a creative labs Soundblaster Live 5.1 :

# use with this VCR_CMD:
# VCR_CMD = ('/usr/local/freevo_data/tvrecord/tvrecord %(channel)s %(seconds)s "%(filename)s"')

CHAN=$1
TIME=$2
NAME=$3

WIDTH=320
HEIGHT=240

MENCODER=/usr/local/bin/mencoder
AMIXER=/usr/bin/amixer

NICE="nice -n -20"

AUDIO="-oac mp3lame -lameopts cbr:br=128:mode=3"
VIDEO="-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1200:keyint=30"
DSP="alsa:adevice=emu10k1"
TV=" -tv driver=v4l:width=$WIDTH:height=$HEIGHT:outfmt=yuy2:input=0:device=/dev/video0:norm=PAL:chanlist=europe-west:channel=$CHAN:$DSP:forceaudio:forcechan=1:buffersize=64"

$AMIXER -q sset Line 87% mute
$AMIXER -q sset Capture 87%
$AMIXER -q cset numid=63 4      # select capture source, 63 is capture source control, 1 = CD and 4 = line
$AMIXER -q cset numid=64 1      # set capture source switch to 1 (= on)
$NICE $MENCODER tv:// $TV $VIDEO $AUDIO -endpos $TIME -ffourcc divx -o  "$NAME.avi"
$AMIXER -q sset Line 87% unmute   # unmute cd again to hear sound when using watching tv after recording

For saa7134-based cards, the command for recording is a bit simpler. The v4lctl program which comes with xawtv is used to set the audio input level, since the saa7134 mixer device is OSS only and aumix doesn't provide sufficient control over the volume.

The following is placed in the /etc/freevo/local_config.py file under the VCR commands section (for freevo 1.5.x). Note that I'm using /dev/dsp1 for my AUDIO_INPUT_DEVICE. I left the mixer settings alone since the default works fine. If you're inclined to change the mixer settings, use 'aumix -d /dev/mixer1 [...] (saa7134 options mixer_nr=1 used to specify mixer number). Note that 'v4lctl volume XX' only affects the analog audio level for input via the audio patch cable into your soundcard, and is not needed for DMA audio recording.

VCR_AUDIO = (':adevice=%s' % AUDIO_INPUT_DEVICE +
             ':audiorate=32000' +         # 44100 for better sound
             ':forceaudio:forcechan=2:amode=1' + # Forced stereo for bug in my driver
             ':buffersize=64')             # 64MB capture buffer, change?


VCR_PRE_REC = ('')
VCR_POST_REC  = ('')

VCR_CMD  = (CONF.mencoder + ' ' +
            'tv:// ' +                      # New mplayer requires this.
            '-tv driver=%s:input=%d' % (TV_DRIVER, TV_INPUT) +
            ':norm=%s' % CONF.tv +
            ':channel=%(channel)s' +        # Filled in by Freevo
            ':chanlist=%s' % CONF.chanlist +
            ':width=%d:height=%d' % (TV_REC_SIZE[0], TV_REC_SIZE[1]) +
            ':outfmt=%s' % TV_REC_OUTFMT +
            ':device=%s' % TV_DEVICE +
            VCR_AUDIO +                     # set above
            ' -ovc lavc -lavcopts ' +       # Mencoder lavcodec video codec
            'vcodec=mpeg4' +                # lavcodec mpeg-4
            ':vbitrate=1200:' +             # Change lower/higher, bitrate
            'keyint=30 ' +                  # Keyframe every 10 secs, change?
            '-oac mp3lame -lameopts ' +     # Use Lame for MP3 encoding, must be enabled in mencoder!
            'br=128:cbr:mode=3 ' +          # MP3 const. bitrate, 128 kbit/s
            '-ffourcc divx ' +              # Force 'divx' ident, better compat.
            '-endpos %(seconds)s ' +        # only mencoder uses this so do it here.
            '-o %(filename)s')              # Filled in by Freevo

If someone has btaudio working with mplayer and/or mencoder please add your information to this document.

The next step is to play the resulting mpeg or avi and see if you get correct sound. If it doesn't work you may get no sound at all or chipmunks sound. Good luck!!

How do I disable an item in the main menu, i.e. if I don't have a TV card?

The latest pre-release of Freevo uses plugins for all kind of things. The tv item is also a plugin, which can be removed by putting plugin.remove(plugin_tv) in your local_config.py.

How to make Freevo remember the last volume level set after shutting down the program

Update as of March 6, 2005 (okay_awright)

If you let Freevo manage the sound volume all by itself, you should have noticed that every time you relaunch the application the sound volume is reset to its default and not to the last setting you made within the GUI. Here is how to fix it.

This workaround requires a few things to work as-is, some slight modifications are needed if you are in any other situation than mine: first I exclusively use ALSA (amixer must be installed), then Freevo is only able to set the first sound card master volume.

If you use some kind of dedicated box running exclusively freevo you can add the piece of script code in one of your initialization script (e.g. alsasound on gentoo or your own home-made one), else you should call this just after Freevo shuts down (e.g. embedding this and your freevo binary call in one shell script you must execute everytime you want to launch Freevo).

Please adapt this script according to your MAJOR_AUDIO_CTRL variable in local_conf.py (e.g. here MAJOR_AUDIO_CTRL = 'VOL' so the code grabs the ALSA Master volume) and your amixer version (especially what 'grep', 'cut' and 'tr' return). You have to experiment a bit before getting what you need.

        ALSA_VOLUME=`/usr/bin/amixer get Master | /bin/grep "Front Left:" | /bin/cut -d " " -f 7 | /bin/tr -d '[%]'`
        if [ $ALSA_VOLUME -ge 0 -o $ALSA_VOLUME -le 100 ]; then
                /bin/sed 's/^DEFAULT_VOLUME.*$/DEFAULT_VOLUME = '$ALSA_VOLUME'\t# Set default volume level/' /etc/freevo/local_conf.py > /tmp/local_conf.py && /bin/mv -f /tmp/local_conf.py /etc/freevo/local_conf.py
        fi

How do I get it to put out video on my video card that also has a video output?

You may want to look at this page http://freevo.sourceforge.net/cgi-bin/moin.cgi/NvidiaPage

or this one http://sourceforge.net/projects/nv-tv-out/

How can I set a resolution other than 800x600, 768x576 or 640x480?

freevo setup --geometry=... only allows 800x600, 768x576 or 640x480 resolution. The resolution can be changed to any other value by editing the freevo.conf file and setting the line  geometry = 1280x1024  to whatever resolution you need. However, while this seems to work without a problem, I am not sure if it breaks anything!

How do I make Freevo appear as a session in Redhat 9's session list, or in GDM?

first you need to cd to /etc/X11/gdm/Sessions. then create a file called Freevo with the contents:

cd /usr/local/freevo
exec ./freevo

you can then select this from the sessions menu when you login.

Hardware / OS issues

I have an old computer with a processor less than 400 Mhz, will it be able to do all functions in Freevo?

No. The core application will work on slower machines, as well as image viewing and MP3 playback. But video/DVD playback and recording requires around 400 MHz, and simultaneous video record and playback requires an even faster machine, especially for higher resolutions. We'd recommend something over 1 Ghz if you want to use that feature when it comes out (based on the hardware needs of mythtv). If you only want video playback, less than 400 Mhz may be enough, please check the mplayer doc about this (http://www.mplayerhq.hu/DOCS/).

I'm using distribution X will that work with freevo?

Most distributions should work with freevo. See Installation how to install Freevo. There are packages for mant different distributions.

I'm running Freevo on a Matrox G400 in framebuffer mode. Why is the screen "squeezed together" horizontally. I have black bars about 1" (3 cm) on either side of the TV screen!

The SDL library that Freevo uses resets the framebuffer settings. This is fixed by re-running the "fbset" command, which is done using the scripts in matrox_g400/mga_[ntsc|pal]_*. There is an option to run a script like this automatically after startup, see OSD_SDL_EXEC_AFTER_STARTUP in local_conf.py.

My G400's TV Out is really dim, can I fix that?

Yes, see Hardware/G400 for information on adjusting the card's registers for optimum picture quality.

What is the recommended hardware (video out and in) when putting a box together from scratch?

TV Out: Matrox G400, DXR3 / Hollywood+, nVidia (roughly in that order, nvidia does not have very good signal quality) Video In: Any BTTV Based Card will do. IE. Hauppauge WinTV

What kind of TV-in card should I buy?

The simplest answer is any card with v4l or v4l2 drivers. The developers have had good experiences with the BTTV family of cards, produced by Hauppauge and Aver. They are typically the best supported under Linux, though the WinTV PVR cards from Hauppauge are not completely supported yet. Keep an eye on ivtv.sf.net if you're interested in hardware MPEG-2 encoding via those cards. Freevo also supports DVB cards since 1.5.0

Does Freevo support multiple simultaneous TV inputs? Can I record 2 things at once or watch TV while recording on another channel?

No need to duck. This can be answered without shotguns :) .Theoretically the answer is "it should be possible". All main components of Freevo (python, sdl, mplayer) have windows ports in some form or another. SDL and Python for windows is no problem, mplayer & probably some python modules will be much more of a problem. Mplayer will require at least Cygwin, and is far from as mature as its linux version. So somebody with insane patience and good knowledge of freevo, it's components, and the windows opensource ports could do it i think. Even if it would ever run on windows, you would miss out on the community and general knowledge of the freevo user/developper base.

Practically : it's way faster, better, easier and cooler to install linux and run freevo like it was intended to run.

I have a "Windows" handicap... Any plans for a windows version?? (ducks ;-)

My media files are on a Windows share and I would like to use them

I got a new machine and installed Linux and Freevo, but my MP3s and videos are shared on my Windows box and I want to keep them there. How do I get Freevo to connect to the share?

You need to install and configure Samba (sometimes known as SMB). Most Linux distributions support this and come ready out of the box. Check that you have Samba installed and that your kernel has support for the smbfs module. If not, you may need to install Samba and/or recompile the kernel. Next, create a mount point. As root, type in mkdir /mnt/computername where "computername" is the name of the Windows machine. Next, tell your Linux box that the share is available and should be grafted into your filesystem at /mnt/computername by editing (also as root) the file /etc/fstab and appending the following line:

//computername/sharename           /mnt/computername          smbfs    username=toto,password=tutu,owner,user,_netdev         0 0

If the share does not require a username and password, change the "username=blah,password=blah" to "guest". The share should now be automatically mounted next time the machine is booted, or can be manually mounted with mount /mnt/computername

Finally, add the mountpoint to freevo_conf.py to make Freevo aware of it.

Be advised that audio will stream over a Samba share pretty well, but video files might be a little choppy, depending on the speed of your network and how your other machines are using it. It is highly aadvised to upgrade to a fast (100 megabit) ethernet and turn off bandwidth-hogging applications (P2P file sharing) if you will be watching large, high-quality, movies over a file share.

What is the minimum hardware I should get for a low-power media set-top box, using mini-itx?

This is a very hard question. There are 3 main factors here. Your CPU power, how much video acceleration hardware is available and what kind of video capture card you have (if any). The best thing to do is searching the freevo-user mailing list. Freevo users are quite fond of small/silent machines and much of the generally available "minihardware" has been tried & tested. You probably will find an answer there.

The Epia M10000 Mainboard is a good way to start, powerfull, and quiet. It can play DVD's and DivX using software only, but the M10000 features a hardware decoder wich can increase DVD performance further. For a complete guide to set up your Epia box go here EpiaWiki

Does Freevo support using the mouse?

Not offically however there is a patch in the Mouse section

Is there an easy to follow dvb-s setup together with freevo howto available somewhere ?

Errors / crashes

I'm getting an error when trying to run Freevo web server. It says: "ImportError: cannot import name app"

It seems that newer versions of twisted cause this problem. You need to run Twisted-2.4.0 get it at http://tmrc.mit.edu/mirror/twisted/Twisted/2.4/Twisted-2.4.0.tar.bz2

When running setup i get: Inconsistency detected by ld.so: rtld.c: 1175: dl_main: Assertion `_rtld_local._dl_rtld_map.l_prev->l_next == _rtld_local._dl_rtld_map.l_next' failed!

This means that the compiled runtime that is distributed with freevo does not match your system. Unfortuneately since we can not make a runtime that works everywhere users who get this message will have to install freevo dependancies using their distro version of the dependancy packages or install them from source.

I downloaded Freevo and tried running it, but it crashes with [some exception]. What version of Python does Freevo require?

As of Freevo 1.5, the recommended python version is Python 2.3 for providing proper Unicode (non-English language) support.

To run Freevo 1.5.x without the runtime you need a number of additional libraries installed. Just use the runtime unless you want to spend a significant amount of time installing and patching stuff. There's some docs (INSTALL.deps) about doing it, but we put together the runtime just so that people wouldn't have to struggle with it (and us spending too much time answering the same questions over and over)...

I'm getting an error when trying to run Freevo. It says: "ImportError: No module named utils"

You're missing a required library that is required by Freevo.

You need to install Python XML. You should either get the package for your distribution or fetch the upstream version and build it yourself.

You can get it from: http://www.python.org/sigs/xml-sig/

I'm getting an error when trying to run Freevo. It says: "ImportError: No module named pygame.locals"

You're missing a library required for Freevo. Despite it's name, pygame isn't just for games but provides an interface to the SDL layer which Freevo uses to draw the interface. You should either get the package for your distribution or fetch the upstream version and build it yourself.

You can get it from: http://www.pygame.org

I'm getting an error when trying to run Freevo. It says: "IndexError: string index out of range"

If you get in your logfile something like the following trace:

Crash!
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/freevo/main.py",
line 474, in ?
    cachefiles += [ item[1] ] +
util.get_subdirs_recursively(item[1])
  File
"/usr/lib/python2.4/site-packages/freevo/util/fileops.py",
line 281, in get_subdirs_recursively
    os.path.walk(dir, match_files_recursively_helper, all_files)
  File "/usr/lib/python2.4/posixpath.py", line 290, in walk
    func(arg, top, names)
  File
"/usr/lib/python2.4/site-packages/freevo/util/fileops.py",
line 252, in match_files_recursively_helper
    if dirname[dirname.rfind('/'):][1] == '.':
IndexError: string index out of range

Take a look at your configuration file. You might have invalid settings in there. Unfortunately, there is no checking whether the configuration is valid, that is whether the variable types are as they should be - so there is no graceful warning.

The specific trace was because i had the line  IMAGE_ITEMS = None  in my configuration. Changing it to  IMAGE_ITEMS = []  fixed the problem.

/dev/dsp doesn't work under KDE, it complains that the sound device is busy.

Try setting AUDIO_DEVICE in local_conf.py to '/dev/dsp1' instead. You may also find that /dev/dsp is being used by artsdsp (you can find out by typing "fuser -v /dev/dsp", assuming you have fuser installed in your distro). If this is the case, then type "killall -9 artsdsp" and then try running freevo. If freevo then works, then you can choose to either no longer use arts, or see if one of the other sound devices might work for you instead eg "ls /dev/ds*". If you're lucky, your sound card might be able to use a digital interface to talk to the video capture card - you can find out which by typing "dmesg|grep dsp" - note that even if you do see a digital device, it might not work with your sound card.

I get and error about libpng.so.3 trying to start freevo setup

If the error looks similar to:

# ./freevo setup
./runtime/apps/freevo_python: error while loading shared libraries: libpng.so.3: cannot open shared object file: No such file or directory

Then you need to install libpng 3. The problem here is that libSDL is trying to load a library and ignoring our LD_PRELOAD. This will hopefully be fixed by SDL in a future release

Pygame Error Message: font module not available

You did not properly install the libsdl_ttf package prior to installing pygame. Uninstall pygame, install libsdl_ttf and then re-install pygame.

XMLTV Error / tv_grab_na: check postal/zip code or www site

Are you getting the following error message for tv_grab_na? Upgrade to XMLTV 5.23 or higher.

checking provider information for postal/zip code 87123, be patient..
zap2it gave us a page with no service provider options
check postal/zip code or www site (maybe they're down)

Render failed, skipping : surfarray module not available error message

This error appears in the main log, and the text for larger TV listings will not appear. If this happens you are most likely missing the python numeric package. Install it and this error should go away.

PS3-specific issues

When starting freevo on PS3 it says: pygame.error: No video mode large enough for

fbdev isn't really in the geometry specified with ps3-video-mode. You can check this with fbset --info. Set the video-mode with the ps3-video-mode -f force flag. You might want to update the kboot.conf kernel line as well for it to be enabled on next reboot.

I have installed freevo on PS3 why does movie play backs look pixalated/choppy?

The contributed file does not include this required flag for mplayer under PS3. Edit your local_conf.py and add: MPLAYER_SOFTWARE_SCALER = '-sws 0'

Now your playbacks of movies will be significantly clearer/smoother.

I have a PS3 and installed freevo what kind of settings should I use?

Take a look under contrib/ps3 in the extracted source (1.7.0). The 2 files freevo.conf and local_conf.py will be a good starting point. You should copy them to the directory .freevo under your home directory.

TV issues

Why can't I get any sound when I'm watching TV?

For watching tv in linux using a tv-tuner card the most common way of getting the tv sound input is by using a short audio cable that connects on one end to the tv card and the other end to the line-in jack on a sound card. This way there is always audio data being pumped to the sound card's line-in. The most common problem is that the tv-tuner audio output is not connected correctly to the sound card input (usually line-in). Alternatively, the line-in has been muted, or the volume turned all the way down.

Note that freevo upon startup will mute the line-in and set the volume to zero. You should make sure that TV audio is indeed working properly outside of freevo before attempting to debug it within freevo.

In order to verify that tv audio is indeed being received by your sound card, use a mixer program (e.g., aumix, alsactl) and manually unmute and set the volume for the line-in. Then try viewing the TV channel from outside of freevo using either mplayer (you'll need to figure out the command line parameters), tvtime or xawtv / fbtv (for framebuffer mode) and determine if the sound works correctly. Alternatively, connect the tv audio output from the tv-card directly to the speakers (be careful about the volume!) if nothing else seems to be working.

Why are the TV programs I've recorded totally silent?

Now that you've managed to view TV programs correctly from within freevo, the next step is to try and record it. However, a common problem with recordings is that there's video, but the audio is silent. The line-in levels are set to a high value, and everything seems fine, right?

Unfortunately, in order for the recording program to actually record the sound you're hearing so well via the speakers, you also need to set another parameter: the "Capture Input". This is toggled using the space-bar from within the mixer program. In alsamixer, it appears in Red as "CAPTUR" above the audio input that you want to capture ("- - - - - -" otherwise). In aumix, it toggles between a Red "R" (capturing) and a green "P" (not capturing).

You MUST enable the capture input even though you can hear the audio clearly through your speakers.

As an aside, Capture and Muting are two separate things. Mute refers to output to the speakers, while Capture refers to input that's sent to /dev/dsp (or whichever device is used in your system) in order for the audio recording to work. The Level determine the loudness of the audio that's captured or sent to the speakers.

You should try recording manually from the command line to verify that the mixer settings are set correctly before trying to debug it in freevo. The most common problem is that freevo resets the input levels automatically, causing the recording to be silent. Please read the Recordserver section for more details on controlling the mixer input levels for scheduled recordings.

Note: There's a variable in local_config.py "MIXER_CONTROL_ALL" that can be set to zero to prevent freevo from muting and resetting input levels automatically. However, this will cause the tv audio to be heard via the speakers during a recording (which is probably not what you want).

Why is the audio out of sync for watching TV, but working ok everywhere else?

The problem is to do with how mplayer grabs video, versus audio for playing television. Mplayer grabs the video from the TV card and runs it through it's own layer before putting it on the screen, the audio, on the other hand, is passed through a cable from the TV card to your sound card (in most cases) and thus there is a delay, depending on the speed of your machine between the audio, and the video showing up the screen since the video must pass through mplayer first.

A number of solutions for this are being examined; if you have a fast machine, this probably won't occur, but for slower machines, we should have a workaround shortly.

Why is that my scheduled recordings never actually record?

One error that prevents scheduled recordings from actually recording is as follows, check for this in the logfiles in /var/log/freevo/ NOTE: dont bother, add the fix anyways if it doesn't record. the errors sometimes never show up.

 sh: relocation error: ./runtime/dll/libc.so.6: symbol _dl_debug_files, version GLIBC_2.2 not defined in file ld-linux.so.2 with link time reference

The fix for this error is adding the following inside of src/tv/record_daemon.py. Add the following line after "import os".

import os
os.environ['LD_PRELOAD'] =  ''  # Add this line to stop GLIBC_2.X preload errors

Why do my programs I've scheduled for recording keep recording for ever?

What happens is that you set a program to record. The recording starts OK, but when the program ends, the recording never appears to finish.

The problem appears to be caused by the use of Dash as the /bin/sh script, rather than Bash (Ubuntu uses Dash by default since 6.10 to speed up the scripts that run on startup).

When Python (what Freevo is written in) attempts to run an external program, it really executes the application "/bin/sh -c <cmd>". Dash creates two processes to run this application. Bash only creates one process. When the recording finishes, Python will only attempt to end one process. With Dash the second process lives on to continue recording forever (or until your hard drive runs out of space).

To find out whether you are using something other than Bash for your shell scripts

ls -la /bin/sh

To fix this using Debian or Ubuntu, run the following command (this is harmless and will not hurt your setup, apart from making it load a little slower).

sudo dpkg-reconfigure dash

Alternatively you can do the change manually.

sudo rm /bin/sh;
sudo ln -s /bin/bash /bin/sh

Other problems/troubleshooting

Why are all my songs played twice?

This behaviour might occur after a kernel update. That seems to change the output of mplayer and freevo can't detect if the song was played successfully, so it starts playing the same song again, but this time using the xine plugin.

To solve this problem you can remove either the xine or the mplayer audio plugin by adding 'plugin.remove(audio.xine)' or 'plugin.remove(audio.mplayer)' respectively to your local_conf.py. Recompiling mplayer is reported to solve this issue, too.

When I insert a DVD Freevo doesn't recognize / can't play it

As of Freevo version 1.7 the mmpython library has been replaced by kaa.metadata. The most common problem is that libdvddead and libdvdcss have not been installed before installing kaa.metadata. You can check this by running  mminfo [-d2] /dev/<dvd-drive>  and the output will show if the dvd has been correctly detected; if the output shows CD instead of DVD then this is you problem.

In freevo config, your ROM_DRIVES setting will look something like:

 ROM_DRIVES = [ ('/mnt/dvd', '/dev/hdc', 'DVD') ] }

Thats 'mountpoint', 'device name', 'what we call it'. In order for freevo to recognize the dvd it mounts it, looks at the files on it, then unmounts it. It uses the mountpoint that you tell it in ROM_DRIVES to do this.

From the shell type:  mount /mnt/dvd 

Freevo cannot be started without a mouse in the Framebuffer mode

This is a shortcoming in SDL. Try setting the environment variable "SDL_NOMOUSE" to 1 before starting Freevo. A full set of SDL enviroment variables can be found at ftp://ptah.lnf.kth.se/pub/misc/sdl-env-vars

Why does my screen keep going blank?

The Linux kernel has a built in screen blanking routine, which is enabled by default. You can disable the kernel's blanking by using the setterm application.

setterm -blank 0

Freevo also includes a script called 'blanking' in the helpers directory. You can run it like this:

su root -c "./blanking"

from within the Freevo helpers directory. It will disable screen blanking in the kernel for all the virtual terminals.

If you continue having the same problems in X you may find you can fix it with xset

xset s blanking
xset s off
xset -dpms

I updated my channel listings in freevo_config.py but they don't update in freevo

please remove /var/cache/freevo/TV.xml-0.pickled or /tmp/freevo/cache/TV.xml-0.pickled after chaning TV_CHANNELS

dxr3 cards and recorded TV show is jumping/flickering

If your recorded TV show is jumping a little bit up and down, when you are using the dxr3 card as output device, you have to add :norm=4 to MPLAYER_VO_DEV_OPTS in your freevo_config.py. The 4 behind the norm= is for PAL60 output. Other options are: 5 = NTSC 3 = PAL 2 = Autodetect between PAL and PAL60

Why can't I navigate using the DVD menu

The DVD menu navigation requires xine to be installed. Also, not just any xine, one need xine-lib >= 1.0 and xine-ui (Or just called xine) >= 0.9.22.

I upgraded Mplayer and now I can't play movie or music files!

The newer versions of mplayer have replaced the underscore '_' in options with a dash '-'. Change the options in your MPLAYER_ARGS_DEF in freevo_config.py to reflect this (i.e. change '-stop_xscreensaver' to '-stop-xscreensaver'). Talk about nitpicky....

Can't watch tv using the tvtime plugin with tvtime 0.9.15

When you try to watch tv using freevo and tvtime, you get a blank screen for a second and then return to the tv listings. The problem is caused by a command line option (-D) that was removed from the tvtime interface. I believe the plugin developers are aware of the problem. One possible work around is to modify a statement in the tvtime.py file.

command = '%s -D %s -k -I %s -n %s -d %s -f %s -c %s -i %s' % (

You need to remove the "-D %s" and also delete the "outputplugin" parameter.

When I run fullscreen video playback (through xine or mplayer) the playback application does not respond to key commands or the application responds to its own native key commands and not Freevo's key commands

Try explicitly setting the OSD_STOP_WHEN_PLAYING option to 0. It doesn't always default to zero, depending on the video driver you are using. It is quite possible that stopping the Freevo OSD will also stop it from listening for commands and passing them on to the child applications.

Mplayer is responding to both Freevo key commands and its own key commands

For example, if during mplayer video playback you press M and it mutes the audio, then you press M again and the audio comes back, but louder than before. Mplayer is muting and unmuting with the M key, but Freevo is also increasing the volume with the M key.

Try adding ':noinput' to the MPLAYER_VO_DEV_OPTS in your local_config.py file. This will make Mplayer ignore keyboard commands, letting all control come from Freevo. Note that this may only work for DirectFB/DFBMGA video output, but this problem may only occur with them as well.

Mplayer cannot be controlled using the normal keys

Freevo has its' own keybindings. You can see the list of keys if you press 'h' in X11 mode.

The black borders are shown at the bottom of the video (not above and below the video) when viewing movies with MPlayer from fullscreen freevo

I'm running Freevo in 800x600 fullscreen but my desktop has a resolution of 1280x1024. When playing a movie in Mplayer that is scaled and black borders are applied to the video to fit the screen there is only one big black border at the bottom of the screen.

The following steps fixed that problem:

Now when opening a video, resolution is changed back to normal and MPlayer plays centered fullscreen video.

Mplayer only shows a blank screen or there are fullscreen problems

Some windowmangers cause that kind of problems. To avoid it, use Freevo as windowmanger. Start Freevo with the option -fs and you get a new X-Window and the problems should be gone.

This may cause troubles with started application because there is no windowmanager. A different solution is to set MPLAYER_VO_DEV to 'sdl'. Different SDL applications seem to work with sharing fullscreen. Yet another solution is to tell your windowmanager to grab focus on all new windows. <TODO: what are the settings for tvtime, xine, etc. to do that>

Debian doesn't let us start up a new X-server by default from inside X (e.g. from Eterm). To allow that, the file /etc/X11/Xwrapper.config has to contain the following: allowed_users=anybody It must be readable by everybody as well. (to be continued :) )

I configured the movie directory like this: DIR_MOVIES = [ ('Movies on /data', '/data') ] and now freevo does not start anymore. What is wrong?

Use 'Movies on data' instead of 'Movies on /data' otherwise the python interpreter will fail.

My VCDs all have the same chapter menu. The first VCD I tried seemed to get a correct chapter menu, but every one after that shows the same number of chapters and chapter timings as the first one.

If you make your own VCD BINs with GNU VCD Imager and then burn them to CDs using cdrdao it is possible that all of your VCDs will have the same creation date and label. (Apparently the creation date of the BIN file is used by cdrdao and if the BIN file is overwritten rather than created new each time every CD you burn would have the same creation date.) Unfortunately, freevo uses the creation date and label to name files holding metadata about the CD, so it assumes that every CD with the same creation date/time and label is the same CD and it will not bother creating new metadata for it. However, there is a way to work around this. In local_conf.py set MMPYTHON_CREATE_MD5_ID = 1. This will cause the filename of the metadata to include an md5 of the first byte of the disc and should make it more difficult for two CDs to share the same metadata file. It would also be a good idea to delete old BIN files (rather than overlay them) and create unique labels for VCDs that you burn.

Skins

What tools or methods are available for designers to be able to quickly preview their work when designing new skins for Freevo?

Any help in this regard would be appreciated. --KevinWilliams

What I used to do while creating skins for Freevo was to edit the XML file from the skin-folder. While editing your skin you can hence keep Freevo running (X11, windowed) and preview the changes by accessing the skin changer in the Freevo Main menu. This requires you to first change to another skin, and then change it back to the skin which is to be previewed. However, if I remember correctly, this had some problems with regards to updating skin image files without restarting Freevo - as the cached version of the image would be used.


2014-02-15 05:35