Jun 26 2010

Media Server desde GNU/Linux para PS3

En este post explicaré cómo montar un media server para poder ver las películas, imágenes y reproducir los contenidos multimedia que tengamos en nuestro PC con GNU/Linux desde un PS3. Esto es particularmente útil para reproducir archivos .avi que tengan subtítulos aparte (.sub, .srt) ya que el PS3 es capaz de reproducir videos .avi pero no cargar los subtítulos, así que ahora sí se podrá usar el PS3 para ver las películas y series con subtítulos

Gracias a un programa llamado ps3mediaserver (Un media server escrito en Java, lo que hace que sea multiplataforma) es muy sencillo llevar a cabo este procedimiento que describiré en estos pasos:

1. Establecer conectividad entre el PS3 y el PC
Esto se puede lograr bien sea con un router (preferiblemente con cable de red dado que por wifi es lenta la transferencia de datos) o conectando el PS3 directamente al PC con una cable de red cruzado y estableciendo IP’s estáticas para ambos dispositivos. El último es mi caso por eso tengo un script adicional al momento de ejecutar PMS para que el proceso de establecer la IP sea automático. Este script se los mostraré con más detalle al final del post.

2. Activar la búsqueda de servidores multimedia en el PS3
En Ajustes-»Ajustes de red»Conexión al servidor multimedia seleccionar la opción activar

3. Preparar el sistema para el uso de PMS
Debemos instalar el JRE, mencoder y ffmpeg lo cual logramos con un

sudo apt-get install ffmpeg mencoder sun-java6-jre

si nuestra distribución es Ubuntu

4. Descargar PMS
Vamos a la página de PMS y en la parte de la derecha vemos el enlace para descargar la versión para GNU/Linux (tgz), lo descargamos y descomprimimos en una carpeta desde la que lo deseemos ejecutar

5. Ejecución PMS
Para ejecutar PMS sólo necesitamos correr un script que encontraremos en la carpeta que nos creó al descomprimir

sh RUTA_PMS/PMS.sh

NOTA: Si la ruta donde tenemos el script tiene espacios (por ej /media/CRIS/Mi/ música/Juegos/PS3/pms-linux-1.10.5), la ejecución nos sacará un error como este:

cd: 24: can't cd to /media/CRIS/Mi/ música/Juegos/PS3/pms-linux-1.10.5
Unable to access jarfile /home/cristianpark/pms.jar

Debemos editar el script PMS.sh de forma que la línea 3 quede así:
#DIRNAME=`dirname $0`

Y la línea 24 quede con la ruta donde va a estar el script, en mi caso:
PMS_HOME=`cd "/media/CRIS/Mi música/Juegos/PS3/pms-linux-1.10.5"; pwd`

Nota: /media/CRIS/Mi\ música/Juegos/PS3/pms-linux-1.10.5/ en mi script es la ruta donde tengo PMS.sh, cada quien debe adaptar esto a su ruta

Hay un link para descargar el script PMS.sh modificado al final del post

6. Configuración carga subtítulos
Para configurar la carga automática de subtítulos .srt y .sub en los videos, debemos seguir los pasos que se muestran en la imagen.

En ajustes de transcodificación-»Motores de Video-»Mencoder seleccionar la opción Autocargar subtítulos *.srt/*.srt con el mismo nombre de archivo

7. Acceder a los archivos desde el PS3
Desde el PS3 por el menú video podremos acceder al Servidor Multimedia y navegar en el sistema de archivos de nuestra distribución. Por ej: / » /media » /CRIS » » /CRIS/Series

OPCIONAL

Automatizar proceso de establecer IP estática en el PC
Como les había mencionado anteriormente, el PS3 lo tengo conectado directamente al PC con un cable cruzado por lo que antes de lanzar PMS debo establecer la IP manualmente (10.0.0.2 para el equipo y tengo configurado el PS3 con 10.0.0.3) por eso creé este sencillo script que establece la IP como root y ejecuta PMS como el usuario que llega como parámetro (para no ejecutarlo como root). Ubicamos este script en la misma carpeta donde está PMS.sh

Este es el contenido del script (Daré un link para descargarlo posteriormente)

#!/bin/sh
# @author Cristian Gómez Alvarez
# @fecha Junio 26 de 2010
#
# @params $1: Nombre del usuario estandard del sistema (para no ejecutar psm como root)
#

## Se establece la dirección IP estática para el PC (El PS3 tiene IP 10.0.0.3)
ifconfig eth0 10.0.0.2 netmask 255.255.255.0 up

# Se ejecuta PMS como usuario estandard
su - $1 -c "sh /media/CRIS/Mi\ música/Juegos/PS3/pms-linux-1.10.5/PMS.sh"

Nota:/media/CRIS/Mi\ música/Juegos/PS3/pms-linux-1.10.5/ en mi script es la ruta donde tengo PMS.sh, cada quien debe adaptar esto a su ruta

Agregar lanzador en el menú (Gnome)
Esta opción es para los que nos gusta hacer las cosas más fáciles cuando se puede y ejecutar PMS desde el menú en Gnome. Para esto:
- Click derecho en el menú y seleccionamos la opción Editar los menús.
- Seleccionar el menú en el que se quiere crear el lanzador (en mi caso Sonido y Video)
- Seleccionar Elemento Nuevo (parte superior derecha) y en la parte donde dice comando ponemos

gksudo sh "/media/CRIS/Mi música/Juegos/PS3/pms-linux-1.10.5/lanzar_pms.sh" nombre_usuario
si necesitamos asignar la IP estática
o
gksudo sh "/media/CRIS/Mi música/Juegos/PS3/pms-linux-1.10.5/PMS.sh" nombre_usuario
si nos conectamos a través de un router

Donde nombre_usuario es el nombre del usuario sin privilegios de root del sistema (con el que se va a ejecutar PMS). En otras palabras el mismo con el que iniciamos sesión regularmente

Nota:/media/CRIS/Mi\ música/Juegos/PS3/pms-linux-1.10.5/ en el lanzador es la ruta donde tengo PMS.sh, cada quien debe adaptar esto a su ruta

El comando de una forma más ortodoxa es

gksudo sh "/media/CRIS/Mi música/Juegos/PS3/pms-linux-1.10.5/lanzar_pms.sh" `whoami`
pero no sé por qué no me funcionó el `whoami`en el lanzador, por lo que decidí poner el nombre del usuario para no crear otro script adicional o complicar más las cosas.

Esta imagen pretende aclarar un poco el proceso de creación del lanzador

Como les había prometido aquí están los scripts que se necesitan en determinados casos:
- PMS.sh modificado: Si la ruta desde la que ejecutamos PMS tiene espacios
- lanzar_pms.sh: Si conectamos el PC directamente al PS3 con un cable cruzado y deseamos automatizar el proceso de asignar IP estática (10.0.0.2 en este caso)

Ahora sólo nos queda disfrutar de una buena película o de nuestra serie favorita desde nuestro PS3 cargando los subtítulos adecuados!!!

Don’t Worry………Be Linux!!!!!