18 July 2013

Usando RTMPDUMP

El programa rtmpdump permite capturar el código de un site que transmite un stream y luego invocarlo para ver ese stream sin un browser. Imaginemos que tenemos un canal de noticias el cual miramos con un browser. Pero la pantalla está limitada a lo que sale en la web. Sin mencionar las toneladas de publicidad en los frames que la rodean. No sería mejor ver sólo ese stream en un pantalla y ya?

Ahora bien, cómo hacemos que esto funcione? Lo primero es instalar el programa. Si usas Ubuntu y derivados la instrucción es simple:

sudo apt-get install rtmpdump


O busca rtmpdump en el Synaptic o en Ubuntu Software Center. Si no tienes Ubuntu o derivados tendrás que ver cómo se hace en tu distro. Pero Google es tu amigo :)

Si eres paranoico entonces instálalo desde las fuentes:

svn checkout svn://svn.mplayerhq.hu/rtmpdump/trunk rtmpdump
cd rtmpdump
make linux

Antes de correrlo es bueno cerrar todos los browsers. Es lo mejor.

Ahora viene la parte divertida. Abrimos un terminal y le decimos al firewall que dirija todo el tráfico RTMP localmente:

sudo iptables -t nat -A OUTPUT -p tcp --dport 1935 -j REDIRECT

A continuación invocamos el rtmpsrv (parte del paquete rtmpdump)  para que empiece a capturar data:

rtmpsrv

Abrimos el browser de nuestra elección y vamos a la página a capturar. Entonces veran que el video no se muestra pero la pantalla de terminal donde está corriendo el rtmpsrv se llena de data. Cuando vean en ese montón de texto algo que sea rtmp:// le dan a Ctrl-C en el terminal para parar el procesamiento.

No hay que olvidar volver a redireccionar el puerto en el firewall:

sudo iptables -t nat -D OUTPUT -p tcp --dport 1935 -j REDIRECT

Ahora tenemos el string del stream de video (si no lo pronuncian bien entonces es porque no hicieron el cursito de inglés "onlain")

Sólo queda reproducir esto sin un browser. Para ello lo mejor es usar el propio mplayer que viene con Linux.

Quieren ver cómo funciona? Pues veamos... el Cana Vasco, por ejemplo. En un terminal pongan:

rtmpdump -m 200 -r "rtmp://cp70268.live.edgefcs.net/live/" -a "live/" -f "LNX 11,2,202,251" -W "http://www.widih.com/player.swf" -p "http://www.widih.com/watch-tv/74/canal-vasco live tv streaming" -y "eitb-CanalVasco@5519" -v -q -o /tmp/0001.dat &

El programa comenzará a capturar data en background y enviarla a un archivo en /tmp llamado 0001.dat. Ahora en ese mismo terminal invocamos mplayer:

mplayer -really-quiet /tmp/0001.dat

Voilà! Ahora tienen mplayer mostrando el Canal Vasco.

No olviden, al finalizar de ver lo que estén mirando, matar el proceso de rtmpdump con un killall rtmpdump o de lo contrario se quedará capturando en background.

Para complementar esta info pueden visitar


y


Y si quieren usar una aplicación que ya tiene unos cuantos canales incorporados la pueden descargar en


De hecho, es la aplicación que usé al principio. La estudié. Vi cómo manejaba los rtmp. Estudié los rtmp y empecé a capturar mis propios streams. Entre ellos tengo un par de canales de Venezuela, algunos de películas (que lamentablemente cambian cada cierto tiempo) y unos cuantos no aptos para menores. También me hice un programita en Python que me muestra todos mis canales (tanto los de TVenLinux como los que yo agregué) pero aún está en estado alpha y por eso no la comparto. He aquí un pantallazo de mi applicación corriendo


No comments :

Post a Comment

Comparte tu código...