jueves, 26 de abril de 2012

[Guía] Como usar vdr-sxfe en otro pc que no sea el mismo que tiene VDR

Bueno, en este post intentaré explicaros como envío la salida de mi yaVDR (o cualquier otro VDR) por sxfe a mi sobremesa o a mi portatil de una manera facil y rápida, para acceder sin interfaz web ni nada incómodo, incluso pudiendo usarse de servidor X totalmente distinto con diferentes pantallas.

Lo primero es tener un VDR funcionando con repositorios de donde bajarnos los plugins y instalarlos o, si no queremos instalar los binarios que os bajais de los repos, una web con los sources actualizados de los plugins más usados. Yo voy a basar mi guía en un servidor yaVDR (Ubuntu + VDR + muchas mods) y un cliente Ubuntu con XFCE muy modificado (mi sobremesa).

Si tenemos yaVDR podemos saltarnos el paso de insalar el plugin xineliboutput de VDR, que es el que nos da la salida hacia el cliente, ya podemos saltarnos este paso, ya que la distro trae este plugin instalado.
Si no tenemos el plugin instalado instalamos vdr-plugin-xineliboutput , que en un Debian, Ubuntu o cualquiera otra distro con apt-get sería:
"
sudo apt-get install vdr-plugin-xineliboutput
"
Despues de esto vamos a la configuración del plugin (normalmente en /etc/vdr/plugins) y editamos el fichero plugin.xineliboutput.conf . Para ello ejecutamos en un terminal:

"
sudo gedit /etc/vdr/plugins/plugin.xineliboutput.conf
"
Llegados a este paso vemos la configuración del inicio de este plugin, pero nos fijamos en la última linea, que deve ser algo así:
"
 --remote=127.0.0.1:37890
"
Esta linea lo que hace es "bindear" este servidor al puerto 37890 de la ip 127.0.0.1 (localhost).  Esto nos vale si queremos a sxfe de cliente para nuestro servidor (para ver el VDR en el mismo equipo que arrancamos el VDR), pero si queremos hacerlo en otro ordenador este plugin no escuchará sus peticiones y no nos dejará. Entonces cambiamos esa linea y la dejamos así:
"
--remote=37890
"
De esta manera indicamos el puerto que queremos usar para el servidor pero no bindeamos el servidor a ninguna IP, por lo que escuchará en 0.0.0.0 , en todos los interfaces de red, etc.
Despues de esto vamos a configurar el límite tambien en otro fichero, que indica que rangos de ips van a poder acceder, porque de esta manera el servidor escuchará las peticiones de nuestro cliente, pero al detectar que no están en ese rango le denegará la conexión. Este fichero es /etc/vdr/plugins/xineliboutput/allowed_hosts.conf , por lo que haremos un
"
sudo gedit /etc/vdr/plugins/xineliboutput/allowed_hosts.conf
"
y editamos este fichero, pero... como lo editamos?  Veamos el fichero y analizémoslo (parte de él):
"
127.0.0.1             # always accept localhost
#192.168.100.0/24     # any host on the local net
#204.152.189.113      # a specific host
#0.0.0.0/0            # any host on any net (USE THIS WITH CARE!)
"
Tenemos cuatro lineas que ejemplifican:
- 127.0.0.1: Es la opción que está habilitada (descomentada) normalmente. Indica que solo localhost (el propio ordenador) se podrá conectar al servidor.
- #192.168.100.0/24: Es un ejemplo de como permitir a todos los equipos de una red local, pero sin salida a otros rangos.
- #204.152.189.113: De esta manera solo se nos permite la conexión desde esa misma IP, un solo equipo.
- #0.0.0.0/0: Todas las IP, todos los rangos, usar con cuidado! jeje

Yo, como tengo un firewall con este puerto cerrado, habilité el 0.0.0.0/0 para que así me pueda conectar desde cualquier equipo, pero que no puedan gorronear desde fuera porque hay un firewall capando este puerto. Para eso borré el # de delante de 0.0.0.0/0 (descomenté la linea), por lo que quedaría así:
"
#127.0.0.1             # always accept localhost
#192.168.100.0/24     # any host on the local net
#204.152.189.113      # a specific host
0.0.0.0/0            # any host on any net (USE THIS WITH CARE!)
"
(También comenté 127.0.0.1, para que quedase el fichero más ordenadico (soy muy delicado yo, si xD)).
Despues de esto el servidor está preparado, solo nos queda reiniciar VDR para reiniciar los plugins. Para esto cogemos el terminal y hacemos:
"
sudo service vdr restart
"
Tardará un ratito, y reiniciará VDR, recargado todos los ficheros de configuración.

Después de esto tenemos que preparar el cliente, que es tan facil como instalar el programa y ejecutarlo con las opciones correctas. En una distribución con el paquete xineliboutput-sxfe  en las repos lo instalamos. Como ejemplo usamos un equipo con Ubuntu, en el que hacemos esto en una terminal:
"
sudo apt-get install xineliboutput-sxfe
"
Aceptamos la instalación y esperamos a que instale todo lo que necesite. Después de esto está todo preparado para arrancar, por lo que hacemos un lanzador (o abrimos en terminal o ejecutamos con ALT+F2) y ponemos de comando...:
"
vdr-sxfe *.*.*.*:37890
"
(Donde *.*.*.* es la IP del PC con VDR en nuestra red). Por ejemplo, en mi caso mi ordenador con yaVDR es 192.168.1.101, por lo que quedaría así:
"
vdr-sxfe 192.168.1.101:37890
"

Si tenemos el puerto 37890 ocupado o queremos cambiarlo aposta solo tenemos que hacerlo cuando modificamos /etc/vdr/plugins/plugin.xineliboutput.conf y cambiar ahora el puerto en esta línea.

Se nos abrirá una ventana cliente con lo que VDR esté mostrando en ese momento, y, si tenemos configurado VDR para controlarse con el teclado, podremos manejarlo como siempre desde esta ventana.
Si ejecutamos la línea en un terminal nos dará toda la información interesante del cliente, y si tenemos problemas puede ayudarnos (modo verbose).
Un ejemplo de mi VDR con un canal en Astra 19.2E desencriptándose con vdr-plugin-sc vía cardsharing con CCcam:
 
Espero que esto os valga de algo, un saludo y muchas gracias!