Cómo Visualizar una Transmisión de Audio y Video en el Raspberry Pi
En éste tutorial veremos cómo lograr visualizar una transmisión (streaming) de audio y video con el Raspberry Pi. Primero veremos cómo hacer para ver una transmisión de un canal por internet a través del protocolo rtmp, luego configuraremos una transmisión desde una computadora de escritorio para también recibirla en el Raspberry Pi. El sistema operativo que utilizaremos es Raspbian.
Usaremos dos reproductores, VLC y Omxplayer, el primero funciona en un entorno gráfico y el segundo en una línea de comandos. Es importante para no tener problemas con el omxplayer que actualicemos tanto el firmware del Raspberry Pi como el Omxplayer a la última versión disponible.
Actualizando el Firmware del Raspberry Pi a la última versión
Para actualizar el firmware del Raspberry Pi en raspbian hay que instalar el paquete "rpi-update" que actualiza el firmware:
- sudo apt-get update
- sudo apt-get install
- rpi-update sudo rpi-update
Una vez terminada la actualización, reiniciamos el Raspberry Pi:
- sudo reboot
Actualizando la versión de Omxplayer
Es necesario actualizar el omxplayer a la última versión, y lamentablemente no está en los repositorios. Así que la descargaremos de http://omxplayer.sconde.net/ que tiene compiladas las últimas versiones estables, en éste momento es la "0.3.1~git20130903~40bf71e". Si cuando lees ésto es otra, sólo reemplaza la nueva versión en los comandos que están a continuación.
- wget http://omxplayer.sconde.net/builds/omxplayer_0.3.1~git20130903~40bf71e_armhf.deb
- sudo dpkg -i omxplayer_0.3.1~git20130903~40bf71e_armhf.deb
Recibiendo una Transmisión de Internet
En internet son comunes las transmisiones con el protocolo RTMP (Real Time Messaging Protocol / Protocolo de Mensajería en Tiempo Real). Son generalmente utilizadas para transmitir contenido en vivo, es decir noticias, torneos de juegos, etc. Para poder verlos con el Raspberry Pi tenemos que hacer lo siguiente:
1. Instalar lo paquetes necesarios
- "rtmpdump" es una herramienta que permite recibir las transmisiones RTMP
- "python-pip" es un gestor de paquetes de python, lo necesitamos para instalar el siguiente paquete
- "livestreamer" es una herramienta que lleva las transmisiones de diferentes servicios (Dailymotion, Livestream, Twitch/Justin.tv, YouTube live, UStream) a un reproductor de video
- sudo apt-get update
- sudo apt-get install rtmpdump python-pip
- sudo pip install livestreamer
2. Viendo Transmisiones
Para poder ver una transmisión usamos el comando livestreamer en los siguientes formatos:
- livestreamer -np "omxplayer -o hdmi" <ruta-de-la-transmisión> <calidad>
- livestreamer -np "omxplayer -o local" <ruta-de-la-transmisión> <calidad>
El primero es en caso que quisieras que el sonido salga por el cable HDMI, esto es cuando conectes el RaspberryPi a un televisor. El segundo es para que el audio salga por el jack de audio analógico que puede ser cuando conectes el RaspberryPi a un monitor que no tenga parlantes y los tengas que conectar aparte.
Por ejemplo puedes probar las siguientes transmisiones pero no necesariamente estén activas cuando leas ésto, he tratado de buscar unas que estén al aire el mayor tiempo posible:
- livestreamer -np "omxplayer -o hdmi" justin.tv/thegeekgroup best
- livestreamer -np "omxplayer -o hdmi" ustream.tv/nasahdtv 360p
Como no necesariamente van a estar activas puedes entrar a cualquiera de los proveedores de canales:
Simplemente hay que copiar la ruta del explorador de internet (firefox, chrome, safari o internet explorer). No es necesario copiar la ruta completa, podemos omitir el "http://www". Si la ruta fuera "http://www.dailymotion.com/video/xmehe4_millenium-tv_videogames" bastaría con copiar "dailymotion.com/video/xmehe4_millenium-tv_videogames". Pero igual ambas funcionan.
Con respecto a la calidad, hay muchos valores posibles pero no todos están disponibles siempre, sin embargo los que generalmente siempre están son "worst" (peor/mínima) y "best" (mejor/máxima). Otras posibles son "low"(baja), "medium"(media), "high"(alta), "240p", "360p", "480p", "mobile_high" y "mobile_low". El problema con "best" es que muchas veces la velocidad de nuestra conexión no es suficiente y el video se va a ver entrecortado. Así que hay que probar, mejor siempre es empezar con "medium" o "360p" si estuvieran disponibles. De todos modos si no lo estuvieran livestreamer te lo indica y te dice cuales si están disponibles para la transmisión que le has pedido.
3. Usando Twitchscript (Opcional)
Twitchscript es un script para acceder con facilidad a twitch.tv para ver transmisiones de juegos en línea a través de la línea de comandos. El script usa livestreamer y lo modificamos para que pudiera configurarse también la calidad ya que por defecto no había la opción y estaba configurada como máxima. Si bien el Raspberry Pi puede reproducir hasta la máxima calidad, el cuello de botella va a ser la velocidad de tu conexión de internet y puede que se vea entrecortada la imagen si la calidad es muy alta, ya que requeriría una conexión veloz. El script original se puede descargar de la siguiente forma:
- wget https://raw.github.com/schmodd/twitchscript/master/twitchscript.py
Nuestra versión modificada añade la opción de configurar la calidad, hemos configurado que el reproductor sea omxplayer, tiene los comentarios y la interfaz traducidos. La puedes descargar de nuestro repositorio en github o escribiendo desde el Raspberry Pi:
- wget https://raw.github.com/parurope/twitchscript/master/twitchscript.py
3.1. Modificar la Configuración del script
Vamos a partir de la línea 68 en donde se encuentra la configuración, puedes cambiar los parámetros pero en general el que te interesa cambiar es el de la calidad, el parámetro "quality", por defecto lo hemos puesto en "medium" pero si quieres más calidad o tienes problemas con tu velocidad de conexión a internet puedes cambiarla, los valores prosibles son "low"(baja), "medium"(media), "high"(alta) y "best"(máxima). En el raspberry pi podemos abrirlo escribiendo:
- nano twitchscript.py
Luego de modificarlo, para grabar aprietas Ctrl+O y enter. Para salir del editor Ctrl+X.
3.2. Asignar permiso de ejecución y correr el script
- chmod +x twitchscript.py
- ./twitchscript.py
Acá puedes seleccionar el juego y el canal/transmisión que quieras ver. Una vez que está corriendo la transmisión puedes usar los comandos del omxplayer. En este caso cuando quieras salir presionas la letra "q" y regresarás al menú. Para salir del script escoges el número 0 y enter.
Generando nuestra propia Transmisión y Recibiéndola en el Raspberry Pi
Para generar nuestra propia transmisión desde nuestra PC la forma más fácil es utilizar VLC. Si no lo tienes en tu computadora lo puedes descargar de http://www.videolan.org/vlc/. (Ésta parte se entiende mejor viendo el video)
Una vez instalado el programa vas a "Medio">>"Emitir...". Acá hay varias opciones, podemos emitir un video existente, un video, un disco (DVD, Cd de audio o VCD/SVCD), otra transmisión ya existente en la red o el video capturado por un dispositivo de entrada (webcam o escritorio).
En nuestro caso transmitiremos un video que tenemos grabado en la computadora, así que vamos a la pestaña "Archivo" y presionamos el botón "Añadir". Ahí buscamos el archivo que queremos reproducir, lo seleccionamos, apretamos "Abrir" y luego "Emitir".
Se abre un diálogo en donde ya está seleccionada la fuente de la transmisión, que es el archivo que habíamos seleccionado. Presionamos "Siguiente", en "nuevo destino" escogemos http y presionamos añadir. Luego escogemos el puerto y la ruta en que queremos que se vea la transmisión. Esto es para que la transmisión esté en http://<IP de la computadora>:<puerto>/<ruta>.
En nuestro caso escogeremos el puerto de la bestia 6666 (un seis más para que sea más bestia) y la ruta raiz (/) que está por defecto, pero pueden escoger cualquier puerto y cualquier ruta.
Como el video que vamos a reproducir ya está codificado entonces le quitamos el check a "habilitar transcodificación". Ésta opción nos interesaría si es que fueramos a transmitir por ejemplo el escritorio o algo que estemo grabando en ese momento. Ésto es importante porque el chip de video del Raspberry Pi no decodifica todos los formatos de video que haya, de preferencia que sea mpeg4 o h.264. Luego apretamos "Siguiente" y en ésta parte del diálogo que sigue no es necesario llenar nada más así que apretamos "Emitir" y La aplicación empezará a emitir el video.
En el Raspberry Pi utilizamos el omxplayer para recibir la transmisión, con el simple comando:
- omxplayer -o hdmi <protocolo>://<direccionIP>:<puerto>
En nuestro caso:
- omxplayer -o hdmi http://192.168.1.20:6666
Esperamos unos segundos y empezaremos a ver la transmisión. Ojo, las transmisiones son "en vivo", es decir que no las puedes pausar, es como que veas un canal de televisión.
Código:
# acá incluimos en resumen todos los comandos que hay que ejecutar
# Actualizamos el firmware del Raspberry Pi
sudo apt-get update
sudo apt-get install rpi-update
sudo rpi-update
sudo reboot
# Actualizamos a la última versión del Omxplayer
wget http://omxplayer.sconde.net/builds/omxplayer_0.3.1~git20130903~40bf71e_armhf.deb
sudo dpkg -i omxplayer_0.3.1~git20130903~40bf71e_armhf.deb
#Recibiendo una transmisión de Internet
sudo apt-get update
sudo apt-get install rtmpdump python-pip
sudo pip install livestreamer
# usando Twitchscript para ver juegos en linea
wget https://raw.github.com/parurope/twitchscript/master/twitchscript.py
chmod +x twitchscript.py
./twitchscript.py
#Recibiendo nuestra transmisión en el raspberry pi
omxplayer -o hdmi http://192.168.1.20:6666
# Actualizamos el firmware del Raspberry Pi
sudo apt-get update
sudo apt-get install rpi-update
sudo rpi-update
sudo reboot
# Actualizamos a la última versión del Omxplayer
wget http://omxplayer.sconde.net/builds/omxplayer_0.3.1~git20130903~40bf71e_armhf.deb
sudo dpkg -i omxplayer_0.3.1~git20130903~40bf71e_armhf.deb
#Recibiendo una transmisión de Internet
sudo apt-get update
sudo apt-get install rtmpdump python-pip
sudo pip install livestreamer
# usando Twitchscript para ver juegos en linea
wget https://raw.github.com/parurope/twitchscript/master/twitchscript.py
chmod +x twitchscript.py
./twitchscript.py
#Recibiendo nuestra transmisión en el raspberry pi
omxplayer -o hdmi http://192.168.1.20:6666
0 comentarios:
Publicar un comentario