Páginas

Mostrando entradas con la etiqueta DLNA. Mostrar todas las entradas
Mostrando entradas con la etiqueta DLNA. Mostrar todas las entradas

lunes, 24 de febrero de 2014

A vueltas con el servidor miniDLNA : Actualizando fácilmente su contenido

No hace mucho que escribí sobre este mismo tema, sobre el modo de transformar mi plataforma Ubuntu en un servidor DLNA (ver Viendo películas de tu plataforma Ubuntu en el monitor de televisión en este mismo blog). Parece que hubo un cierto interés en el asunto, tanto como que uno de los amables lectores me sugirió que hablase sobre una utilidad que facilita la labor de actualización de los contenidos del servidor miniDLNA. En eso va a consistir esta entrada, en actualizar la base de datos asociada al miniDLNA, sin tener que refrescar el método utilizado, que por cierto era algo pedestre.

Primera solución

 Esta primera opción que voy a exponer es la estoy utilizando en la actualidad. Es muy sencilla y a cualquiera se le hubiera podido ocurrir. Nos crearemos un fichero de órdenes, o shell-script, que ejecutaremos desde un terminal, cada vez que queramos actualizar la base de datos del miniDLNA.Sin ser muy original, a este fichero lo he llamado minidlna.sh, situándolo en mi carpeta personal.
user1@user-desktop:~$ cd $HOME
user1@user-desktop:~$ touch minidlna.sh
user1@user-desktop:~$ ls minidlna.sh
minidlna.sh
user1@user-desktop:~$
Lo siguiente que vamos a hacer es editar el fichero recién creado dejándolo como se muestra en la siguiente imagen
La primera línea borra la base de datos, la segunda regenera la base de datos, actualizándola con el contenido que encuentre en las carpetas definidas en el fichero de configuración de miniDLNA, y finalmente, reiniciamos el servidor. Guardamos el fichero y le asignamos permisos de ejecución (x) a todos los usuarios (a).
user1@user-desktop:~$ chmod x+a minidlna.sh
user1@user-desktop:~$ ls -la minidlna.sh
-rwxrwxr-x 1 user1 user 146 feb 24 08:41 minidlna.sh
Ejecutamos minidlna.sh desde un terminal y desde donde se encuentra el fichero de órdenes, que hemos considerado que fuera nuestra carpeta personal:
user1@user-desktop:~$ ./minidlna.sh
[sudo] password for user: 
 * Restarting DLNA/UPnP-AV media server minidlna                         [ OK ] 
user1@user-desktop:~$
Y al finalizar la ejecución de minidlna.sh tendremos actualizada la base de datos asociada.
Como podemos ver, el procedimiento es sencillo y rápido. Pero aún puede ser más sencillo y rápido si lo dejamos accesible en el área de indicadores de la barra de menús, tal y como vamos a mostrar en el siguiente apartado.

Indicador miniDLNA en barra de menús

Lo primero que vamos a realizar será bajarnos el fichero que contiene la aplicación del indicador miniDLNA, utilizando la instrucción wget desde un terminal.
wget https://launchpad.net/minidlna-ai/trunk/initial/+download/minidlna-ai-0.0.2.tar.gz
Sería conveniente comprobar que lo que nos bajamos es la última versión, por lo que no estaría de más buscar en Google por las versiones existentes ('launchpad minidlna-ai'), o yendo directamente a https://launchpad.net/minidlna-ai donde podremos bajarnos la versión más reciente.
Una vez descargado, creamos una carpeta cualquiera, descomprimimos desde la carpeta el fichero descargado y vemos los ficheros que aparecen en la carpeta:
user1@user-desktop:~$ mkdir minidlna
user1@user-desktop:~$ cd minidlna
user1@user-desktop:~/minidlna$ tar -zxvf  ../minidlna-ai-0.0.2.tar.gz  
readme
minidlna-ai.desktop
minidlna-ai24-red.svg
minidlna-ai24-off.svg
minidlna-ai24.svg
minidlna-ai.py
default.conf
user1@user-desktop:~/minidlna$ ls -la
total 76
drwxr-xr-x   2 user1 user  4096 feb 24 12:08 .
drwxr-xr-x 205 user1 user 12288 feb 24 12:07 ..
-rw-r--r--   1 user1 user  2345 ago 13  2012 default.conf
-rw-r--r--   1 user1 user 10892 ago 13  2012 minidlna-ai24-off.svg
-rw-r--r--   1 user1 user 10891 ago 13  2012 minidlna-ai24-red.svg
-rw-r--r--   1 user1 user 12311 ago 14  2012 minidlna-ai24.svg
-rwxr-xr-x   1 user1 user   308 ago 13  2012 minidlna-ai.desktop
-rwxr-xr-x   1 user1 user  5606 ene 25  2013 minidlna-ai.py
-rw-r--r--   1 user1 user  2310 ene 27  2013 readme
user1@user-desktop:~/minidlna$
En el fichero readme vienen las instrucciones, en inglés, para instalar el indicador minidlna. Lo vamos a seguir, comentando paso a paso lo que debemos hacer.

Procedimiento de instalación del indicador miniDLNA

  1. Instalamos el paquete python3-gi, para satisfacer las dependencias del indicador.
  2. Copiamos el contenido de la carpeta en donde hemos descomprimido el archivo descargado en /opt/minidlna-ai/.
  3. Copiamos el fichero minidlna-ai.desktop en la carpeta ~/.config/autostart/ con objeto de que se active en cada sesión de usuario, o en ~/.local/share/applications para acceso desde el escritorio.
  4. detenemos el servicio minidlna, que debe estar ejecutándose como un servicio root.
  5. ejecutamos manualmente el fichero minidlna-ai.py con objeto de que se copie el fichero de configuración existente en ~/.config/minidlna.
  6. Editamos, si es preciso, el fichero ~/.config/minidlna/mindlna.conf con los datos apropiados
media_dir=/path/to/media # ubicación de las carpetas con contenido multimedia
db_dir=/home/<user>/.config/minidlna # ubicación de la base de datos .db
log_dir=/home/<user>/.config/minidlna # ubicación del fichero 'log'
Ni que decir tiene que tendremos que sustituir la etiqueta <user> con el nombre de usuario pertinente.
Resumiendo lo anterior, nos queda como sigue:
 user1@user-desktop:~/minidlna$ sudo apt-get install python3-gi
user1@user-desktop:~/minidlna$ sudo cp *.* /opt/minidlna-ai/
user1@user-desktop:~/minidlna$ cp minidlna-ai.desktop ~/.config/autostart/
user1@user-desktop:~/minidlna$ cp minidlna-ai.desktop ~/.local/share/applications
user1@user-desktop:~/minidlna$ sudo service minidlna stop
user1@user-desktop:~/minidlna$ python minidlna-ai.py 
                  -editamos fichero ~/.config/minidlna/mindlna.conf -
user1@user-desktop:~/minidlna$ sudo service minidlna start
y eso es todo. Reiniciamos el equipo y comprobamos que el indicador minidlna-ui aparece en el área de indicadores de la barra de menús y de que la funcionalidad es la esperada.
En el menú desplegable podemos observar que podemos actualizar la base de datos con nuevo contenido multimedia, desconectar y conectar, así como salir de la aplicación.
Como siempre, aprovecho la ocasión para invitar a los amables lectores a que comenten el artículo, con mejoras, correcciones, sugerencias, etc. así como de nuevas entradas.

Enlaces

- miniDLNA
- minidlna-ai
- Viendo películas de tu plataforma Ubuntu en el monitor de televisión

lunes, 2 de diciembre de 2013

Viendo películas de tu plataforma Ubuntu en el monitor de televisión

Y no solamente películas. También, cualquier contenido multimedia que sea vídeo, imagen o música, incluyendo cualquier tipo de sonido, podrá ser reproducido en un monitor de televisión que 1) disponga de conexión a red local (WiFi o cable) y 2) esté dotado de DLNA (Digital Living Network Alliance).
Hoy en día, un televisor con tales prestaciones no suele ser raro encontrarlo en casa. Estos televisores, también conocidos como Smart TV, no solo vienen equipados con estas facilidades, sino que también puedes conectarles un disco Duro externo, pendrive o cualquier unidad de almacenamiento, a través de los puertos USB con los que suelen venir equipados.
Hoy voy a referirme solamente al modo de compartir el contenido multimedia que tengamos en un ordenador con sistema operativo Ubuntu, en mi caso con la versión 13.10 Saucy Salamander.
Para ello, instalaremos un servidor DLNA, miniDlna, del siguiente modo:
sudo apt-get -y install minidlna
con la opción -y asumimos responder afirmativamente a todas las preguntas que en fase de instalación vayan surgiendo.

Configuración de miniDlna

Si no surge ningún problema, el servidor se habrá instalado perfectamente, y será el momento de proceder a configurarlo, indicándole dónde se encuentra el contenido multimedia, de qué modo será identificado en el televisor, etc.
Para ello, abrimos y editamos el fichero de configuración, minidlna.conf ubicado en /etc, en modo privilegiado:
gksu gedit /etc/minidlna.conf
modificando y/o añadiendo las líneas que se muestran a continuación en negrita:
.
.
.
# Path to the directory you want scanned for media files.
#
# This option can be specified more than once if you want multiple directories
# scanned.
#
# If you want to restrict a media_dir to a specific content type, you can
# prepend the directory name with a letter representing the type (A, P or V),
# followed by a comma, as so:
#   * "A" for audio    (eg. media_dir=A,/var/lib/minidlna/music)
#   * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
#   * "V" for video    (eg. media_dir=V,/var/lib/minidlna/videos)
#
# WARNING: After changing this option, you need to rebuild the database. Either
#          run minidlna with the '-R' option, or delete the 'files.db' file
#          from the db_dir directory (see below).
#          On Debian, you can run, as root, 'service minidlna force-reload' instead.
media_dir=V,/myDLNAshares
.
.
.
# Name that the DLNA server presents to clients.
friendly_name=Ubuntu 13.10
.
.
.
# Automatic discovery of new files in the media_dir directory.
inotify=yes
.
.
.
# Path to the MiniSSDPd socket, for MiniSSDPd support.
#minissdpdsocket=/run/minissdpd.sock 
En principio, solo se requiere alterar tres líneas del fichero de configuración.

media_dir

Con este parámetro indicaremos al servidor miniDlna el tipo y la ubicación del contenido multimedia (en este caso, el contenido es vídeo y está situado en /myDLNAshares). Podemos poner tantas líneas como carpetas lleguemos a tener , y queramos compartir, con contenido multimedia.
En vez de tener varias líneas con el parámetro media_dir, es mejor crear en la carpeta que se indique, y que podemos crear ex profeso para este servidor, enlaces simbólicos a las carpetas donde realmente se ubiquen los contenidos multimedia. De este modo, tendremos clasificado y estructurado el contenido multimedia que se muestre por el televisor, por las carpetas físicas que tenemos en el PC. Si no lo hacemos así, se funden todas las películas en un solo listado, sin diferenciar si las tenemos agrupadas por películas, documentales, series, etc.
user1@user-desktop:~/Videos$ ls -la myDLNAshares/
total 52
drwxr-xr-x  2 user1 user  4096 dic  1 10:01 .
drwxr-xr-x 24 user1 user 45056 dic  2 18:54 ..
lrwxrwxrwx  1 user1 user    36 dic  1 10:00 Documentales -> /home/user1/Videos/Documentales
lrwxrwxrwx  1 user1 user    33 dic  1 10:01 Peliculas -> /home/user1/Videos/Peliculas
lrwxrwxrwx  1 user1 user    16 dic  1 10:01 Peliculas1 -> /disco_datos/Peliculas
lrwxrwxrwx  1 user1 user    30 dic  1 10:01 Series -> /home/user1/Videos/Series
user1@user-desktop:~/Videos$ 
Así, podemos observar que en la carpeta que nos hemos creado, myDLNAshares/, dentro de nuestra carpeta /home/user1/Videos, hemos creado 4 enlaces simbólicos a las carpetas en donde se encuentran realmente mis contenidos multimedia. Aunque podemos crear tantos como tengamos y queramos compartir.
Si tuviese otro tipo de contenido multimedia, por ejemplo, de música, me crearía en el fichero de configuración una nueva línea con el parámetro media_dir, indicando el tipo 'A' y la ubicación del contenido de audio. Y procedería de la misma manera, creando enlaces simbólicos a las carpetas que podrían corresponder a álbumes de música.
El uso de enlaces simbólicos facilita la labor de mantenimiento de la aplicación. Siempre nos será más fácil crearnos un enlace simbólico que editar el fichero de configuración.

friendly_name

Lo que pongamos a continuación es lo que aparecerá en nuestro televisor.
Yo he puesto Ubuntu 13.10.

inotify

Con este parámetro a 'yes' indicaremos al servidor que compruebe si hay nuevo contenido multimedia en las carpetas indicadas en media_dir.

Últimos pasos

Después de todos estos cambios, vamos a indicarle al servidor que los tenga en cuenta, ejecutando en un terminal las siguientes instrucciones:
sudo rm -f /var/lib/minidlna/files.db
sudo minidlna -R
sudo service minidlna restart
Con la primera línea, borramos la base de datos actual, con la segunda, la regeneramos y con la últimas reiniciamos el servidor miniDlna.

Lo que vemos en el televisor

Esto es lo que podemos ver cuando accedemos desde el televisor. Las imágenes no son de (muy) buena calidad, pero entiendo quepodrán dar una idea del procedimiento a seguir.
 

(continuación)

Esta entrada ha sido ampliada posteriormente en A vueltas con el servidor miniDLNA : Actualizando fácilmente su contenido.

Enlaces

- ReadyMedia
- Ubuntu 12.10 Media Server – HowTo – using miniDLNA
- DLNA
- Smart TV