Freevo PVR

Manel's picture
Instalando y configurando Freevo (mando inalámbrico + TDT + Teleprograma + Pelis + Musica + Fotos + Mame)

Ha quedado guapo, guapo. Freevo es un PVR desarrollado en Python, a continuación explicaré cómo lo he instaldo y configurado con soporte a:

- TDT.
- Teleprograma.
- Reproducción de pelis.
- Reproducción de música.
- Visionado de Fotos.
- Juegos (MAME).
- Mando inalámbrico para el control de la interfaz.
- Reproducción automática de CDs y DVDs.
- Programador de grabaciones.

01. Instalación de Freevo.

He bajado:

wget http://puzzle.dl.sourceforge.net/sourceforge/freevo/freevo-1.7.0.tar.gz
wget http://kent.dl.sourceforge.net/sourceforge/freevo/kaa-base-0.1.2.tar.gz
wget http://heanet.dl.sourceforge.net/sourceforge/freevo/kaa-imlib2-0.2.0.tar.gz
wget http://switch.dl.sourceforge.net/sourceforge/freevo/kaa-metadata-0.6.0.tar.gz

Ahora a compilar los fuentes:


tar xfvz kaa-base-0.1.2.tar.gz
cd kaa-base-0.1.2/

A la hora de compiar he visto que me hacían falta unos cuantos paquetes, así que lo habitual:

sudo apt-get install python-dev
sudo apt-get install gcc
sudo apt-get install libglibmm-2.4-dev

Seguimos compilando:

sudo python setup.py install

tar xfvz kaa-imlib2-0.2.0.tar.gz
cd kaa-imlib2-0.2.0/

Lo mismo de antes, más dependencias:

sudo apt-get install libimlib2
sudo apt-get install libimlib2-dev

A compilar:

sudo python setup.py install

tar xfvz kaa-metadata-0.6.0.tar.gz
cd kaa-metadata-0.6.0/
sudo python setup.py install

wget http://www.crummy.com/software/BeautifulSoup/download/BeautifulSoup.tar.gz
tar xfvz BeautifulSoup.tar.gz
cd BeautifulSoup-3.0.3/
sudo python setup.py install

Finalmente la compilación de Freevo:

cd freevo-1.7.0/

sudo apt-get install python-elementtree
sudo python setup.py install

cd .freevo/
cp /home/mcebolla/Desktop/freevo-1.7.0/local_conf.py.example .
mv local_conf.py.example local_conf.py
sudo mkdir /var/cache/freevo
sudo chmod 777 /var/cache/freevo/

sudo apt-get install python-pygame
sudo apt-get install python-imaging
sudo apt-get install python-twisted
sudo apt-get install python-mmpython
sudo apt-get install python-pylirc
sudo apt-get install mplayer xine-ui xmltv tvtime

02. TDT.

Mi tarjeta es una WinTV Nova-T USB 2.0

Yo lo he hecho con un 2.6.17-50.

aptitude install build-essential mercurial linux-headers-`uname -r` dvb-utils libxine-extracodecs

hg clone http://linuxtv.org/hg/v4l-dvb

cd v4l-dvb

make
make install

cd /lib/firmware/`uname -r`

wget http://vaasa.wi-bw.tfh-wildau.de/~pboettch/home/files/dvb-usb-dib0700-01.fw


03. Teleprograma.

1. Crear el fichero de canales para mplayer

/usr/share/doc/dvb-utils/examples/scan/dvb-t/es-Collserola > ~/.mplayer/channels.conf

2. Test

mplayer dvb://laSexta

2. El xmltv para freevo.

He hecho un script que he metido en el cron.

#!/bin/sh

/usr/bin/tv_grab_es --output `date +"$HOME/freevo/xmltv/listings_%d%m%Y.xml"` --days 1
rm /tmp/TV.xml
ln -s `date +"$HOME/freevo/xmltv/listings_%d%m%Y.xml"` /tmp/TV.xml

4. Configuracion de freevo

hacer:

freevo tv_grab
freevo tv_grab --query

y obtendremos un esqueleto

TV_CHANNELS = [
    ( '01.elpais.es', 'TVE1', '1' ),
    ( '02.elpais.es', 'La 2 de TVE', '2' ),
    ( '03.elpais.es', 'Antena 3', '3' ),
    ( '04.elpais.es', 'Tele 5', '4' ),
    ( '05.elpais.es', 'Canal Plus', '5' ),
    ( '06.elpais.es', 'Telemadrid', '6' ),
    ( '07.elpais.es', 'TV3', '7' ),
    ( '08.elpais.es', 'Canal 9', '8' ),
    ( '09.elpais.es', 'Canal Sur', '9' ),
    ( '10.elpais.es', 'TVG', '10' ),
    ( '11.elpais.es', 'ETB 1', '11' ),
    ( '12.elpais.es', 'ETB 2', '12' ),
    ( '13.elpais.es', 'Canal Sur 2', '13' ),
    ( '14.elpais.es', 'Canal 33', '14' ),
    ( '15.elpais.es', 'Punt 2', '15' ),
    ( '16.elpais.es', 'Televisi�n Canaria', '16' ),
    ( '17.elpais.es', 'PROGRAMACION DE CASTILLA LA MANCHA TELEVISI�N', '17' ),
    ( '20.elpais.es', 'K3', '20' ),
    ( '21.elpais.es', 'Digital Plus', '21' ),
    ( '22.elpais.es', 'cuatro', '22' ),
    ( '23.elpais.es', 'PROGRAMACION DE CANAL EXTREMADURA', '23' ),
    ( '24.elpais.es', 'LA SEXTA', '24' ) ]

XMLTV_FILE = '/home/mcebolla/freevo/TV.xml'

# Hay que meterlo en la configuracion de local_conf.py

04. Servidor de de grabaciones.

TV_RECORD_DIR = '/home/mcebolla/freevo/Grabaciones'

TV_DATEFORMAT = '%e-%b' # Day-Month: 11-Jun
TV_TIMEFORMAT = '%H:%M' # Hour-Minute 14:05
TV_DATETIMEFORMAT = '%A %b %d %I:%M %p' # Thursday September 24 8:54 am

TV_RECORDFILE_MASK = '%%m-%%d %%H:%%M %(progname)s - %(title)s'

TV_RECORD_SERVER_IP = 'localhost'
TV_RECORD_SERVER_PORT = 18002

TV_RECORD_SERVER_UID = 0
TV_RECORD_SERVER_GID = 0

TV_RECORD_PADDING = 0 * 60

WWW_USERS = {
    "xxx" : "xxx"
}


freevo recordserver start

freevo recordserver stop

Script para init.d

"""
#!/bin/sh
/bin/su - freevo -c "freevo recordserver start"
"""

sudo vi /etc/init.d/freevo_recordserver
sudo chmod +x /etc/init.d/freevo_recordserver
cd /etc/rc2.d/
ln -s S99freevo_server ../init.d/freevo_recordserver
sudo ln -s ../init.d/freevo_recordserver S99freevo_server

05. Mando inalámbrico.

JOY_DEV = 1


JOY_CMDS = {
    'up'             : '',
    'down'           : '',
    'left'           : 'LEFT',
    'right'          : 'RIGHT',
    'button 5'       : 'UP',
    'button 7'       : 'DOWN',
    'button 6'       : 'SELECT',
    'button 8'       : 'PLAY',
    'button 9'       : 'EXIT',
    'button 10'      : 'ENTER',
}

06. Generación de previsualizaciones de las películas y caché.

freevo cache --thumbnail --recursive /home/mcebolla/Desktop/VIDEOTECA
freevo cache

Según lo habitual que sea que cambien las pelis se puede o bien poner en un cron lo anterior o bien lanzarlo a mano de vez en cuando, yo lo he puesto en un cron para que se lanzar por las noches.

07. Otras configuraciones.

Pantalla completa cuando arranque.

START_FULLSCREEN_X = 1

Que salir del programa implique hacer un shutdown del sistema.

ENABLE_SHUTDOWN_SYS = 1

Item de Video, Musica y Fotos:

VIDEO_ITEMS = [ ('Videoteca   (en isidoro)', '/home/mcebolla/Desktop/VIDEOTECA'),
                ('Videoteca 2 (en isidoro)', '/home/mcebolla/Desktop/VIDEOTECA2'),
                ('Videoteca 3 (en isidoro)', '/home/mcebolla/Desktop/VIDEOTECA3'),
                ('Pelis en Local', '/home/mcebolla/Desktop/PELIS_LOCAL') ]

AUDIO_ITEMS = [ ('Musica (en isidoro) ', '/home/mcebolla/Desktop/VIDEOTECA/MUSICA'),
                ('Musica (en local)', '/home/mcebolla/Desktop/MUSICA'),
                ('WebRadio', '/home/mcebolla/freevo/fxd/webradio.fxd') ]
        
IMAGE_ITEMS = [ ('Fotos (en isidoro) ', '/home/mcebolla/Desktop/VIDEOTECA/FOTOS')]

Idioma de los DVDs:

DVD_LANG_PREF       = 'es,en,se,no'

Plugins de volumen actual y memoria usada en el sistema:

plugin.activate('idlebar.volume', level=0)
plugin.activate('idlebar.system.procstats',level=20)

08. MAME.

GAMES_ITEMS = [ ('MAME', '/home/mcebolla/Desktop/ROMS/MAME',
                ('MAME', '/usr/games/xmame', '-fullscreen -joytype 1 -joydevname /dev/input/js', '/home/mcebolla/Desktop/ROMS/MAME/SISTEMA/snap', None)) ]

09. Comandos.

He añadido un par de scripts para forzar la expulsión de CDs ó DVDs que se puedan quedar enganchados por cualquier motivo.

Para ello he activado el menú de comandos.

plugin.activate('command', level=45)
COMMANDS_DIR='/home/mcebolla/freevo/commands'

10. Mi local_conf.py.

http://www.libresoftware.com/sw/local_conf.py


Comments

Enviar un comentario nuevo

Security question, designed to stop automated spam bots
El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato