Para poder acceder a los contenidos multimedia (fotos, música, vídeos, etc) que tengo en el mediacenter, desde otros ordenadores/dispositivos de la casa, voy a instalar un servidor DLNA. Después de probar varios me decidí por serviio, tiene una versión gratuita bastante completa, no necesita interfaz gráfica y tiene muy pocos requisitos hardware para funcionar.
Al ser un programa hecho en java es necesario tener instalado en el equipo el runtime de java, para comprobarlo sólo hay que ejecutar la orden "java" desde un terminal, sino lo tenemos instalado nos va a sugerir como hacerlo, que sería con esta instrucción:
sudo apt-get install default-jre
Una vez comprobado que tengo la máquina virtual java instalada, me descargo la versión de serviio para linux y la descomprimo con el siguiente comando:
tar -xvzf serviio-1.1-linux.tar.gz
Y me genera la carpeta "serviio-1.1", ahora muevo todo el contenido de esta carpeta a la siguiente ruta del sistema /usr/share/serviio con el siguiente comando:
sudo mv serviio-1.1/* /usr/share/serviio
A continuación creo el fichero de configuración (/etc/default/serviio) del servicio con el siguiente contenido (hay que cambiar "username" por el usuario que utilicemos por defecto:
#########################################################Después creo el fichero que va a arrancar el servicio (/etc/init.d/serviio) con el siguiente contenido:
#- Daemon Script Configuration for Serviio Media Server
#- By Ian Laird
#- /etc/default/serviio
#########################################################
NAME="Serviio Media Server"
DAEMON="/usr/share/serviio/bin/serviio.sh" ## Update this to point at serviio_root/bin/serviio.sh
SERVICE_ACCOUNT="username" ## change to an appropriate username, DON'T RUN UNDER ROOT!
#!/bin/bashLo hago ejecutable y lo añado al guión de entrada con los siguientes comandos:
#
#########################################################
#- Daemon script for Serviio media server
#- By Ian Laird; converted for Debian by Jacob Lundbergand edited by Jopie
#- /etc/init.d/serviio
#########################################################
#
### BEGIN INIT INFO
# Provides: serviio
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/stop serviio media server
# Description: The Serviio media server makes your media available to
# all kinds of networked devices.
### END INIT INFO
. /lib/lsb/init-functions
if [ -f /etc/default/rcS ]; then
. /etc/default/rcS
fi
DAEMON_STOP=" -stop"
NAME="$(basename $0)"
PIDFILE="/var/run/serviiod.pid"
TIMEOUT=10
if [ -f /etc/default/serviio ]; then
. /etc/default/serviio
fi
[ -x "$DAEMON" ] || exit 0
running() {
if [ "x$1" == "x" ]; then
echo 0
return 1
fi
PS=$(ps h -p $(echo $1 | sed -r 's/[\t \n]+/ -p /') | wc -l)
echo $PS
if [ $PS -gt 0 ]; then
return 0
else
return 1
fi
}
start() {
log_daemon_msg "Starting Serviio media server daemon" "$NAME"
start-stop-daemon --start -q -b -p "$PIDFILE" -m -c "${SERVICE_ACCOUNT}" -x "${DAEMON}"
log_end_msg $?
}
stop() {
log_daemon_msg "Stopping Serviio media server daemon" "$NAME"
if [ -r "$PIDFILE" ]; then
PIDS=$(pstree -p $(<"$PIDFILE") | awk -F'[\(\)]' '/^[A-Za-z0-9]/ { print $2" "$4; }')
if running "$PIDS" > /dev/null; then
"${DAEMON}" "${DAEMON_STOP}"
for PID in $PIDS; do
if running $PID > /dev/null; then
kill -TERM $PID
fi
done
fi
COUNTDOWN=$TIMEOUT
while let COUNTDOWN--; do
if ! running "$PIDS" > /dev/null; then
break
fi
if [ $COUNTDOWN -eq 0 ]; then
for PID in $PIDS; do
if running $PID > /dev/null; then
kill -KILL $PID
fi
done
else
echo -n .
sleep 1
fi
done
fi
if running "$PIDS" > /dev/null; then
log_end_msg 1
else
rm -f "$PIDFILE"
log_end_msg $?
fi
}
status() {
echo -n "$NAME should be"
if [ -r "$PIDFILE" ]; then
echo -n " up with primary PID $(<"$PIDFILE")"
PIDS=$(pstree -p $(<"$PIDFILE") | awk -F'[\(\)]' '/^[A-Za-z0-9]/ { print $2" "$4; }')
RUNNING=$(running "$PIDS")
if [[ $RUNNING && $RUNNING -gt 0 ]]; then
echo -n " and $RUNNING processes are running."
else
echo -n " but it is not running."
fi
else
echo -n " stopped."
fi
echo
}
case "${1:-}" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
log_success_msg "Usage: /etc/init.d/$NAME {start|stop|restart|status}"
exit 1
;;
esac
exit 0
sudo chmod 755 /etc/init.d/serviio
sudo update-rc.d serviio defaults
Un detalle importante para terminar la configuración: Para que serviio reconozca caracteres especiales y no se rompa a la hora de indexar los contenidos es necesario que editemos el fichero que arranca el programa, que en mi caso sería así:
sudo nano /usr/share/serviio/bin/serviio.sh
Y añadimos las dos líneas que aparecen en negrita a continuación, quedando el final del fichero como se indica aquí:
# Execute the JVM in the foregroundTambién es necesario instalar los codecs ffmpeg si no los tenemos instalados, en caso contrario no indexará las películas. Para ello basta con ejecutar la siguiente orden:
LANG=es_ES.UTF-8
export LANG
"$JAVA" -Xmx512M -Xms20M -XX:+UseParNewGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFr$
sudo apt-get install ffmpegHecho esto podemos arrancar el servidor con el comando: /etc/init.d/serviio start
Después la forma más fácil de configurar serviio es mediante la consola gráfica, para ello desde el escritorio de Lubuntu ejecuto el comando siguiente:
/usr/share/serviio/bin/serviio-console.sh
Si habeis seguido los pasos os saldrá una ventana como ésta, que se puede poner en castellano en la pestaña "Console settings", desde ella podemos añadir las carpetas con los contenidos que queremos compartir en la pestaña "Library", es cuestión de ir mirando porque todo es bastante intuitivo de configurar:
Con esto ya podemos consumir contenidos multimedia mediante cualquier cliente DLNA para windows, linux, mac, IOS o Android que tengamos en casa. Para finalizar este post tan largo, recomendar algunas aplicaciones gratuitas para Android muy interesantes relacionadas con serviio y DLNA:
- ServiiDroid: Es como la consola de serviio pero en tu dispositivo Android.
- ServiiGo: Para consumir contenidos multimedia del servidor serviio en el dispositivo Android.
- Skifta: Permite consumir contenidos multimedia de un servidor DLNA en el propio dispositivo o enviar el contenido directamente a otro cliente DLNA.
No hay comentarios:
Publicar un comentario