Autores: Jose Manuel Menéndez Calzado, Eduardo Jorge Sández Sáez, Verónica Villanueva Madrileño
Fecha: 18 de mayo de 2007
El objetivo de este trabajo será la instalación y configuración de un programa DVR, Freevo, bajo un sistema operativo Linux.
Un programa DVR básicamente es una grabadora digital de vídeo. El programa que hemos usado, como ya se mencionó, es Freevo. Con este programa podremos ver la TV (gracias a la tarjeta capturadora de TV) y dado que es un jukebox (/VCR/PVR/HTPC/DVR) también podremos almacenar y reproducir de una forma cómoda y sencilla nuestras colecciones de películas, música o imágenes. Además incluye una guía de programación donde muestra los programas que se emitirán. El programa está escrito en Python y es fácil de instalar. Fue desarrollado pensando en su uso bajo un sistema Linux y se halla bajo licencia Open Source. Podemos encontrar más información en la Pagina oficial del programa.
Procesador: AMD Athlon 64, 2000 MHz (10 x 200) 3200+ .
Placa Base: MSI RS480M2/RX480M2 (MS-7093).
Disco duro: Barracuda 7200.7 SATA 200822 capacidad 200GB Seagate
Tarjeta gráfica: Ati RADEON X300 Series Secondary (256 MB).
Tarjeta de sonido: ATI SB400 - AC'97 Audio Controller .
Tarjeta Capturadora de televisión: Pinnacle Studio PCTV.
Sistema Operativo: Ubuntu Linux 6.10.
DVR: Freevo 1.71.
Servidor: Apache 2.0.54-5ubuntu4
Partimos del supuesto de que Ubuntu Linux ya se haya instalado.
Primeramente procedemos a descargar los paquetes que más tarde instalaremos:
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 compilamos las fuentes:
tar xfvz kaa-base-0.1.2.tar.gz
cd kaa-base-0.1.2/
Descargamos además los siguientes paquetes complementarios que vamos a necesitar:
sudo apt-get install python-dev
sudo apt-get install gcc
sudo apt-get install libglibmm-2.4-dev
Compilamos:
sudo python setup.py install
tar xfvz kaa-imlib2-0.2.0.tar.gz
cd kaa-imlib2-0.2.0/
Ahora descargamos e instalamos ciertas dependencias:
sudo apt-get install libimlib2
sudo apt-get install libimlib2-dev
Compilamos:
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
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
Guardamos y volvemos al terminal root,y escribimos
apt-get update
apt-get upgrade
Esto nos sirve para comprobar que esta bien el archivo source.list y actualizar la base de datos de repositorios.
Existen tres archivos fundamentales para la configuración de Freevo:
freevo.conf
freevo_config.py
local_conf.py
El primero de ellos, freevo.conf, contiene información básica sobre el sistema, como rutas a los programas importantes, la resolución de tu pantalla y otras cosas. Este archivo será generado por el comando freevo setup. En el sistema podría estar en /etc/freevo/freevo.conf.
El segundo, freevo_config.py es donde se almacenan los parámetros por defecto. Este archivo estará probablemente en /usr/share/freevo. No se debe modificar este archivo.
Si deseas cambiar cualquier cosa en la configuración de Freevo, tendremos para ello, el tercer archivo de los mencionados anteriormente, el local_conf.py . Las cosas en local_conf.py sobrescribirán los parámetros por defecto del freevo_config.py.
Habitualmente, el local_conf.py , se podrá encontrar en tu directorio, en el directorio de .freevo .Si no es el caso usted debería buscar un archivo de ejemplo de local_conf.py en su instalación freevo y copiarlo a ~/.freevo/local_conf.py.
Una vez generados los archivos anteriores podemos hacer una configuración básica de nuestro freevo para satisfacer nuestras necesidades. Para ello abrimos local_conf.py con un editor de texto, y echamos una mirada a lo que queremos cambiar. El archivo está bien comentado, y para la mayor parte de cosas hay ejemplos.
Las variables que más se suelen modificar son:
VIDEO_ITEMS: Directorios donde están tus películas
AUDIO_ITEMS: Directorios donde están tus archivos audio
IMAGE_ITEMS: Directorios donde están tus imágenes
También es necesario comprobar la sección del mplayer para especificar el dispositivo audio y el parámetro especial para el mplayer.
Si no se desea utilizar algunas partes de freevo, se pueden quitar fácilmente del menú principal:
plugin.remove('tv')
plugin.remove('audio')
plugin.remove('video')
plugin.remove('image')
En local_conf.py usted puede dar varios niveles de volumen a Freevo para los diferentes medios .
Si usted presiona VOL + y VOL- el nivel de volumen se modifica en un 5 %. Se puede modificar fácilmente el volumen en su local_conf.py mediante
EVENTS['global']['VOL+'] = Event('MIXER_VOLUP', arg=2)
EVENTS['global']['VOL-'] = Event('MIXER_VOLDOWN', arg=2)
Por el momento tenemos tres diferentes skins a elegir. Podemos ir al menú donde se puede la piel presionando Display en el menú principal. De esta forma seleccionamos el skin que más nos guste. Pero se debe de saber que existen características que no están implementadas en todas las pieles. Freevo además te da la posibilidad de crear tu propio skin.
Además usted puede elegir una imagen para mostrar en el menú, añadiendo una imagen a la carpeta cover.jpg o cover.png
Las carpetas individuales pueden estar protegidas por una contraseña, añadiendo un archivo de texto llamado ".password" . Este archivo debería contener la contraseña de acceso sin cifrar. Obviamente, tiene una protección muy limitada pero permite trabajar
TV: Configurar las tarjetas análogas o digitales para utilizar en Freevo
Película: Configurar el menú video
Audio: Configurar el menú audio
Imagen: Configurar el menú de la imagen
Hay dos áreas principales que deben ser configuradas para el empleo correcto de TV en freevo. XMLTV es un componente vital que proporciona la guía de televisión y debe ser configurado correctamente antes de seguir más adelante. La segunda parte de la configuración se realizará en sus archivos de preferencias freevo.conf y local_conf.py.
El XMLTV puede descargarse fácilmente desde internet ,así que nos centraremos en explicar sólo la segunda parte de la configuración.
Para configurar la TV en freevo y tenemos que corregir las preferencias de usuario. Freevo usa el mplayer para reproducir TV por defecto. Sin embargo el tvtime proporciona infinitamente más cuadros que dan mayor calidad al usar filtros tomados del dscaler.
Vamos a ejecutar la orden freevo conf para crear un archivo freevo.conf. Hay determinadas secciones dentro de él que debemos de comprobar que están correctas, como son 'chanlist' y 'tv'. Por ejemplo para España:
chanlist = europe-west
tv = pal
TV_CHANNELS = [('01.elpais.es', 'TVE1', '41'),
('02.elpais.es', 'TVE2', '31'),
('03.elpais.es', 'Antena 3', '34'),
('22.elpais.es', 'cuatro', '47'),
('04.elpais.es', 'Telecinco', '27'),
('07.elpais.es', 'TV3', '44'),
('8', 'Localia', '50'),
('24.elpais.es', 'La Sexta', '63'),]
Lo primero sera elegir la aplicación mediante la cual vamos a ver la televisión, si usasemos el mplayer no necesitaríamos cambiar nada. Si vamos a usar el tvtime pondremos lo siguiente :
plugin.remove('tv.mplayer')
plugin.activate('tv.tvtime')
Una vez elegido lo anterior, necesitamos configurar la sección de TV_Channels.
TV_CHANNELS = [ ( 'xmltvid', 'freevodisplayname', 'tvchannel' ) ]
Podemos decirle a freevo donde debería de buscar la película que queramos reproducir.
VIDEO_ITEMS = [ ('action movies', '/files/movies/action'),
('funny stuff', '/files/movies/comedy') ]
Podemos usar mplayer o xine para ver las películas. El reproductor por defecto es el mplayer, pero podemos cambiar esto con la variable VIDEO_PREFERED_PLAYER = 'xine' en nuestra config local. También usted probablemente tendrá que instalar libdvdcss, esto es dejado(abandonado) al usuario para entender(calcular).
Podremos escoger los formatos de compresión que queramos reproducir con MPLAYER.
VIDEO_MPLAYER_SUFFIX = [ 'avi', 'mpg', 'mpeg', 'wmv', 'bin', 'rm',
'divx', 'ogm', 'vob', 'asf', 'm2v', 'm2p',
'mp4', 'viv', 'nuv', 'mov', 'iso',
'nsv', 'mkv' ]
Para reproducir un archivo avi, nos valdrá con escribir mplayer MOVIE.AVI pero el mplayer tiene muchas más opciones avanzadas que podrían sernos útiles.
Este comando te mostrará que salidas de video el mplayer ha compilado, se cree que el mejor es xv o xvmc porque es más rápido que los otros, pero depende de tu dispositivo video.
mplayer -vo help
Esta orden muestra las salidas de audio que el mplayer ha compilado.
mplayer -ao help
Un ejemplo:
mplayer Piratas_de_Silicon_Valley.avi -vo xv -ao alsa
lsa:device=hw=X.X donde X.X es la tarjeta y el dispositivo hardware (por defecto 0.0 si tienes una única tarjeta)
aspect 4/3, nos da una resolución 4:3
Otro ejemplo:
mplayer MOVIE.avi -vo xvmc -ao alsa:device=hw=1.0 -aspect 4/3
Freevo es capaz de reproducir una gran cantidad de formatos de audio, los más importante son probablemente mp3 y ogg. EL reproductor que usa por defecto es el mplayer pero se puede modificar en el local_conf.py.
La lista AUDIO_SUFFIX dice que archivos, freevo debería tratar como audio y con PLAYLIST_SUFFIX usted determina que archivos deberían ser tratados como playlists. Además debemos de decir a freevo, donde buscar archivos de audio:
AUDIO_ITEMS = [ ('music', '/place/of/your/music'),
('more music', '/place/of/more/music')]
Freevo también es capaz de reproducer cd´s de audio. Elegimos dentro del menú, el cd y el titulo de la canción que queramos reproducir.
Aquí no tenemos mucho que bconfigurar. Tendremos que decirle a freevo donde buscar las imágenes, por ejemplo :
Image_ITEMS = [ ('My Holiday Pictures',
'/files/pictures/holiday'),
('Family Pictures',
'/files/pictures/family') ]
La lista de sufijos que con las que se emparejan las imágenes sería :.
IMAGE_SUFFIX = [ 'jpg','gif','png', 'jpeg','bmp','tiff','psd' ]
Para que el visualizador de la imagen soporte archivos slideshow:
IMAGE_SSHOW_SUFFIX = [ 'ssr' ]
Podremos escoger el efecto de mezcla entre dos imágenes. Los posibles valores son:
-> Ninguno: ninguna mezcla
-> -1 efecto arbitrario
-> 0 mezcla de alfa
-> 1 limpian el efecto
IMAGEVIEWER_BLEND_MODE = -1
Y podemos escoger si queremos que freevo trate sus directorios de imagen como slideshows implícito.
DIRECTORY_CREATE_PLAYLIST=['image']
Si presionamos NEXT o PREV mientras vemos una de las imágenes del directorio, freevo mostrará la siguiente imágen o la anterior del directorio.
Puedes también seleccionar el tiempo que tarda freevo en mostrar la siguiente imagen , de la siguiente forma.
IMAGEVIEWER_DURATION = 2
Por defecto esta variable está a 0, esto significa que tendrás que presionar NEXT para continuar con el visionado de las siguientes imágenes.
Para poder grabar, debemos configurar lo siguiente:
TV_RECORD_DIR = '/home/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
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 ', '/home/Desktop/VIDEOTECA'), ('Videoteca 2 ', '/home/Desktop/VIDEOTECA2'), ('Videoteca 3 ', '/home/Desktop/VIDEOTECA3'), ('Pelis ', '/home/Desktop/PELIS_LOCAL') ]
AUDIO_ITEMS = [ ('Musica ', '/home/Desktop/VIDEOTECA/MUSICA'), ('Musica ', '/home/Desktop/MUSICA'), ('WebRadio', '/home/freevo/fxd/webradio.fxd') ]
IMAGE_ITEMS = [ ('Fotos ', '/home/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)
http://perlbox.org/?p=10 : Manual de instalación de Freevo en Ubuntu
http://www.ubuntu.com :Pagina oficial de Ubuntu Linux
http://guia-ubuntu.org : Guia no-oficial de Ubuntu Linux
http://freevo.sourceforge.net/ :Pagina oficial de Freevo
Freevo es un programa completo que presenta numerosas funcionalidades. Gracias a ello podemos convertir nuestro ordenador en un centro de ocio completo en el que incluso podremos realizar grabaciones digitales de la TV. El programa, además, fue desarrollado para Linux, pensando en aquellas personas que por cualquier motivo desestimen el uso de Windows. La instalación y configuración en sí no es difícil dado que han buscado acercarse a un público no necesariamente experto en el uso de Linux.Sin embargo es bien cierto que se requiere conocimientos medios en cuanto al funcionamiento, en este caso, de Ubuntu para la instalación de paquetes y demás elementos precisos.