Cliente de Streaming Octoshape en GNU/Linux
January 25th, 2008 by BusindreOctoshape, para los que aun no la conozcan, es una empresa que se encarga de ofrecer soluciones de streaming profesional de una forma rentable a las compañías y empresas que lo soliciten, ya sean canales de radio, canales de TV o eventos puntuales que requieran de emisiones vía TV como pueden ser la UEFA, Eurovisión o los World Sport Games. Su servicio se basa en el pago de 1 € al mes por usuario que conecte al streaming, garantizándole al mismo un mínimo de 200 Kb/s dedicados. Tiene opciones de filtro por localización geográfica y permite el cobro por visualización de lo clientes de la empresa que contrate los servicios de stream a Octoshape.
Como curiosidad decir que fue Octoshape la encargada pasar la emisión del evento "Electronic Sports World Cup 2007" celebrado en Francia al famoso canal chino "Games TV" (Con una conexión de 2 Mbits/s), el cual lo distribuía entre sus espectadores chinos a través de su habitual medio de redifusión televisiva, sin tener que realizar esto mediante conexiones satélite que es mucho más caro lógicamente, siendo la solución del streaming mucho más económica y exitosa, de hecho nadie se dio cuenta de que esa emisión televisiva procedía realmente de Internet ya que con 2Mb/s la calidad de imagen alcanzada en relación al retardo es más que suficiente.
Conociendo a que se dedica la compañía Octoshape vamos a ver como poder visualizar sus streaming en nuestro GNU/Linux, el cliente lógicamente es gratuito ya que cuantos más clientes estén conectados a un determinado streaming más beneficios adquieren por medio de la empresa que haya solicitado el servicio de dicho streaming, ya sea un canal de TV, radio o un evento como el "Tour de Francia". El cliente Octoshape es un programa (Denominado plug-in) que NO esta bajo licencia GPL y que en principio tiene una licencia demasiado restrictiva, pero eso no quita que esté empezando a ser algo muy usado en Internet y podemos requerir de su uso en algún momento, por eso enseñaremos a utilizarlo en GNU/Linux, que como veremos no tiene misterio ninguno.
Como comentábamos anteriormente, Octoshape tiene una gran acogida entre empresas que ofrecen un servicio de radio y televisión vía Internet, que a su vez es algo que está en pleno apogeo, en el caso de televisiones de habla hispana que ofrecen este tipo de streaming encontramos entre las más destacables a "Rtve", que englobaría varias radios y canales de televisión, "Aragón Televisión" y "Extremadura TV". En lo relativo a las radios, tiene una buena lista de emisoras disponibles que son de gran interés y con el tiempo irá creciendo, para ver un listado de lo que Octoshape nos ofrece podemos visitar este link). Vamos a ver como usarlo.
Dependencias:
Java 5 o superior, de Sun
libstdc++.so.6
Reproductor que soporte http
NOTA: Realmente sino tenemos libstdc++.so.6, podemos engañar a Octoshape para poder usarlo, eso si, puede ser posible que para terminar la visualización del streaming sea pertinente matar el proceso (kill / killall) para finalizar la aplicación.
Descargar Octoshape: http://www.octoshape.com/files/octosetup-linux_i386.bin
Como USUARIO ejecutamos los siguientes comandos:
$ chmod u+x octosetup-linux_i386.bin
$ ./octosetup-linux_i386.bin
Leemos la licencia y si queremos la aceptamos. De aceptarla se generara una descompresión y podemos ver el directorio "octoshape/" donde encontraremos el binario (Cliente de streaming) y la configuración en forma de fichero "setup.xml"
Octoshape puede funcionar sobre cualquier reproductor para el streaming que sea "http-enabled media player", esto quiere decir que tenga la posibilidad de usar el protolo http para la recepción de información (Video / Audio). Como sabemos la mayoría de aplicaciones para el streaming consiste en llevar a un puerto de nuestro pc la corriente de datos por medio de procolo (p2p), a la que el reproductor luego conecta mediante http para mostrarnos la imagen y el sonido.
Configurar Octoshape (setup.xml):
Lo primero es localizar el fichero libjvm.so en nuestro sistema, para ello debemos tener instalado java en nuestro GNU/Linux, ya sea Jre O Jdk.
$ locate libjvm.so
/opt/jdk1.5.0_07/jre/lib/i386/client/libjvm.so
/opt/jdk1.5.0_07/jre/lib/i386/server/libjvm.so
/usr/lib/jre1.5.0_04/lib/i386/client/libjvm.so
/usr/lib/jre1.5.0_04/lib/i386/server/libjvm.so
Luego tenemos que ver que reproductor usar, por defecto usara Mplayer, pero como vimos es posible indicarle cualquier reproductor que soporte http: Xine, mplayer, vlc, xmms, etc... y derivados
Añadimos pues las lineas pertinentes, como muestra el ejemplo:
-
<e JavaExec="/opt/jdk1.5.0_07/jre/lib/i386/client/libjvm.so"
-
PlayerExec="xmms $url"/>
NOTA: En este caso usamos Xmms, por lo que no podremos ver vídeo (Siempre se puede añadir un plugin), debemos tener en cuenta las limitaciones de los reproductores.
Una vez configurado correctamente solos nos queda usarlo:
$ ./OctoshapeClient -url:*****
Siendo ***** una dirección de streaming: "WEG.looped800" , "ESPANA.tveinternational", "ESPANA.canal24horas" ,..
Captura de octoshape en acción
Errores y soluciones
./OctoshapeClient: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
./OctoshapeClient: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4' not found (required by ./OctoshapeClient)
./OctoshapeClient: /usr/lib/libstdc++.so.6: version `CXXABI_1.3' not found (required by ./OctoshapeClient)
Estos errores se deben a que no tenemos la VERSIÓN 6 de libstdc++ (Dependencia obligatoria) en nuestro sistema, de encontrar ese fichero en /usr/lib y se nos muestre el error, posiblemente sea debido a un enlace a otra versión de libstdc++ que NO es la 6 realmente. Esto sucede porque en algún momento del pasado creamos dicho enlace para correr alguna aplicación, pero realmente no tenemos instalada la versión 6 en nuestro GNU/Linux, que es la que pide Octoshape. EL archivo /usr/lib/libstdc++.so.6 suele ser un enlace, con el comando ls -lt podremos ver a donde apunta, ejemplo:
$ ls -l /usr/lib/libstdc++.so.6
/usr/lib/libstdc++.so.6 -> libstdc++.so.5.0.8*
NOTA: Como vemos libstdc++.so.6 no hace referencia a la versión 6, sino a la 5.0.8*, este link se pudo crear en el pasado debido a que es un apaño para ciertas aplicaciones que no funcionan sino se encuentra el fichero /usr/lib/libstdc++.so.6. El crear este enlace se realiza por norma en distros con cierta antigüedad que quieren correr aplicaciones que requieren libstdc++.so.6 para funcionar, ya que así han sido compiladas, cuando por norma puede que funcionen con la versión que tenemos instalada (Más antigua).
La solución (De andar por casa), como comentábamos, es descargarse este fichero y ponerlo en /usr/lib/ (Si ya hay un enlace con ese nombre, o bien le cambiamos el nombre o bien lo borramos) y con esto no debería de dar problemas, ya que Octoshape la usará y nos permitirá poder disfrutar el streaming, pero es posible que al intentar cerrar Octoshape se quede colgada la aplicación, en ese caso debamos matar el proceso mediante el comando kill. Una vez usado, es recomendable volver a dejar como estaba el directorio "/usr/lib" anteriormente.
"Could not create semaphore"
Este error se debe a haber ejecutado "octosetup-linux_i386.bin" como root, debe ser como USUARIO.
Posted in Linux |
April 29th, 2008 at 1:33 pm
Hola,
He descubierto el octoshape hace poco. Comparto que se ve bien pero al estar basados en Europa dudo mucho que este software tenga exito, al menos mientras insistan en cobrar UN EURO por conexion. Esto los pone inmediatamente fuera del alcance de los paises de sudamerica, por caso.
Otra gracia que no entiendo es eso de restringir la señal de TVE internacional a direcciones IP de España. Joder, para que quiere alguien dentro de España ver la señal INTERNACIONAL? No es una contradiccion?.
En fin, espero que "mas temprano que tarde" surjan soluciones basadas en la tecnologia bittorrent y Ogg Theora para hacer lo mismo que octoshape y con software libre.
Por ultimo me permito hacerte un comentario. Dices:
"La solución es descargarse este fichero y ponerlo en /usr/lib/, con ello no debería de dar problemas, pero es posible que al intentar cerrar Octoshape se quede colgada la aplicación, en ese caso debemos matarla mediante el comando kill."
No es recomendable dar un archivo binario y decirle al usuario que "lo ponga aqui o alli" ya que no sabes que version de Linux estará corriendo. Al menos aclara "esto es solo para Mandriva version x.y.z".
Yo no tuve problemas de cuelque ni tuve que matar el proceso. Simplemente con Ctrl-C se termina el mplayer y listo.
En cuanto a la libreria en cuestion, fue cuestion de hacer
apt-get install libstdc+++ libstdc++-compat
A proposito, uso Fedora Core 6.
Saludos desde Argentina
FC
April 29th, 2008 at 2:11 pm
Te explico, porque creo que no lo entendiste bien. No depende de la versión de la distro, si muestra el error que comento, es que no tienes una versión de libstdc++ apropiada (Que viene por defecto instalada en la distro o en los repositorios de la misma) y la solución principal sería instalarla y reemplazar la que se tiene, pero claro, cambiar la versión de libstdc++ por la que pide Octoshape, puede causar varios problemas en la distro, ya que como sabes es una dependencia importante. Por eso facilitamos ese archivo, el cual con ubicarlo correctamente nos permitirá usar la aplicación sin necesidad de actualizar el sistema, pero claro, como algo temporal,.. es un mero apaño. De todas formas esto solo sucederá en distros antiguas, actualmente se usan versiones libstdc++ compatibles con Octoshape, como es tu caso.
No damos una solución a que no se tenga instalada libstdc++, sino a como hacer funcionar Octoshape sin la VERSION pertinente de esas librerías. Nosotros facilitemos ese fichero, que lógicamente es binario claro, (.so). Simplemente, si NO se tiene la versión correspondiente de libstdc++ , con ese "hack" podremos usarlo decentemente pero con la posibilidad de que se pueda producir un cuelgue del programa (No permita ser cerrado mediante Cntrl + C), un riesgo sin muchas consecuencias. Es simplemente un arreglo de andar por casa pero que puede ayudar a poder usar este programa de streaming sin tener que actualizar esas librerías.
Sin duda esperar que en un futuro podamos disfrutar de aplicaciones libres para ese tipo de fines, pero es complicado, ya que suelen estar ligados a contratos con los propios canales que retransmiten y se necesita cierta infraestructura para poderlo realizar.
Un saludo y espero a ver aclarado un poco tu comentario.