Formatos de media player

modem

Un problema muy común que encontrarnos muchos es que no podemos escuchar, o ver, algunas emisiones de radio o televisión, porque se nos entregan en un meta-fichero generado por los servicios de Win Media -la mayoría de las veces con extensión asx- y luego el stream que contiene está codificados con WM.

En GNU/Linux en general, y en Ubuntu en particular, tenemos un par de alternativas que nos permite oir o ver estos contenidos: Totem y Rhytmbox, con gstreamer, instalados en Ubuntu como gestores de contenidos multimedia por omisión, y una opción algo más rápida mplayer. Si bien tal como viene en los repositorios para Ubuntu 7.04 no sirve, pues le faltan algunos codecs. Veamos como solucionar el problemilla …

mplayer

En primer lugar obviamente tenemos que instalar mplayer desde el Gestor de Paquetes Synaptic. Tenemos dos alternativas el paquete mplayer o mplayer-nogui. La única diferencia es que el primero incluye un front-end que hace más cómodo -y agradable- su uso.

En segundo lugar hemos de acudir al sitio de mplayer y bajarnos el último paquete de codecs desde aquí.

Hay varias versiones según el sistema operativo y según el número de codecs que contiene el paquete. El nombre del fichero está compuesto por “essential” o “all” seguido de la fecha del paquete en formato ISO (aaaa-mm-dd), aunque sin los guiones. En nuestro caso el paquete más reciente y completo para Ubuntu/i386 a descargar sería: all-20071007.tar.bz2 .

Hemos de descomprimir el contenido en un directorio donde busque mplayer al arrancar. Este directorio hemos de crearlo pues no existe:

sudo mkdir /usr/local/lib/win32

Descomprimimos los codecs en él. Esta operación, como la anterior, hay que hacerla con sudo pues debemos tener privilegios de root para escribir en el subdirectorio lib.

Si lo abrimos desde Firefox con el gestor de archivadores, y lo descomprimimos en nuestro directorio home podríamos hacer:

sudo cp /home/yo/all-20071007/* /usr/local/lib/win32

Probando

El comando para lanzar los streams:

mplayer -playlist http://lo.que.sea.com/loquesea.asx

o si nos dirigimos al flujo directamente:

mplayer mms://lo.que.sea.com/loquesea

O gmplayer si queremos lanzar el modo gráfico.

Ahora no queda más que probarlo con un enlace de audio y uno de TV por ejemplo:

[mplayer Audio]

En el ejemplo de la TV vemos que el vídeo es WM9 pero el Audio es DivX, otras veces los dos son WM9.

[mplayer Video]

Una página para probar puede ser la de NASA TV.

Diagnóstico y Problemas

La versión de línea de comandos -o la versión gráfica lanzada desde un terminal- ofrece una gran cantidad de información, como vemos en las capturas de pantalla de más arriba. Si tienes problemas, lanzar los streams desde la línea de comandos y atender a los mensajes de autodiagnóstico, ayudará. El programa analiza la conexión y te hace sugerencias sobre los ajustes/parámetros que hay que indicarle a mplayer para resolver algunos problemas.

Información completa sobre opciones y formatos soportados en el manual de mplayer (en Español).

Versión gráfica

La versión gráfica me dio algunos pequeños problemas a la hora de detectar el driver para la pantalla y tuve que desactivar la opción Stop XScreenSaver. Accede a Preferencias y haz lo ajustes oportunos.

Vídeo y ordenadores lentos

Si el vídeo te aparece des-sincronizado con el sonido, y se ve a saltos, añade estos parámetros a la línea de comando o ajustalos en Preferencias.

-lavdopts lowres=1:fast:skiploopfilter=all -ni -cache 8192

Couldn’t resolve name for AF_INET6

Este mensaje de error te aparecerá al hacer la conexión ya que mplayer trata de conectar con el protocolo IPv6 todavía escasamente implantado. Simplemente ignóralo. O bien si te molesta mucho desactiva IPv6:

  • sudo gedit /etc/modprobe.d/aliases
  • Cambia la línea alias net-pf-10 ipv6 por alias net-pf-10 off ipv6
  • Reinicia Ubuntu

Totem y Rhytmbox

Totem es el visor de vídeo y Rhytmbox el gestor de audios. Los dos usan los mismos codecs que hemos instalados para mplayer, a través de gstreamer, pero hemos de instalar un plugin adicional: gstreamer0.10-ffmpeg.

A partir de la versión 2.20 de Gnome se simplifica la instalación de estos plugins y codecs restringidos desde Totem y Firefox, automatizandola mediante un asistente. Lo aquí relatado lo es para la versión 2.18.

Después de instalarlo lo registraramos para asegurarnos, (Hay que instalar gstreamer-tools para usar los siguientes comandos):

sudo gst-register ffmpeg

gst-register ya no es necesario en las últimas versiones de gstreamer. basta con hacer gst-inspect

Ahora podemos comprobar lo realizado:

gst-inspect | grep Windows

Que nos devolverá una salida como esta:

 ffmpeg: ffdec_wmav2: FFMPEG Windows Media Audio v8/9 decoder
 ffmpeg: ffdec_wmav1: FFMPEG Windows Media Audio v7 decoder
 ffmpeg: ffdec_wmv3: FFMPEG Windows Media Video v9 decoder
 ffmpeg: ffdec_wmv2: FFMPEG Windows Media Video v8 decoder
 ffmpeg: ffdec_wmv1: FFMPEG Windows Media Video v7 decoder
 ffmpeg: ffenc_wmv2: FFMPEG Windows Media Video v8 encoder
 ffmpeg: ffenc_wmv1: FFMPEG Windows Media Video v7 encoder

También podemos usar los drivers que hemos instalado para mplayer:

sudo apt-get install gstreamer0.10-pitfdll

Hacer los siguientes enlaces para que encuentre los plugins (no tengo muy claro en que directorio los busca):

ln -s /usr/local/lib/win32 /usr/lib/win32
ln -s /usr/local/lib/win32 /usr/local/lib/codecs
ln -s /usr/local/lib/win32 /usr/lib/codecs

Ahora registramos con gst-inspect pitfdll y examinamos:


Plugin Details:
Name: pitfdll
Description: DLL-loader elements
Filename: /usr/lib/gstreamer-0.10/libpitfdll.so
Version: 0.9.1.1
License: GPL
Source module: pitfdll
Binary package: PitfDLL
Origin URL: http://ronald.bitfreak.net/pitfdll/

qtadec_bin: quicktime binary audio decoder
dmodec_wmspdmodv1: DMO wmspdmod decoder version 1
dmodec_wmadmodv3: DMO wmadmod decoder version 3
dmodec_wmadmodv2: DMO wmadmod decoder version 2
dmodec_wmadmodv1: DMO wmadmod decoder version 1
dmodec_wmvdmodv3: DMO wmvdmod decoder version 3
dmodec_wmvdmodv2: DMO wmvdmod decoder version 2
dmodec_wmvdmodv1: DMO wmvdmod decoder version 1
dmodec_wmv9dmodv3: DMO wmv9dmod decoder version 3
dshowdec_ir41_32v4: DS ir41_32 decoder version 4
dshowdec_ir50_32v5: DS ir50_32 decoder version 5

11 features:
+-- 11 elements

Si no aparece la lista de codecs anterior:
Borramos el registro de gstreamer (*.xml) que se encuentra en $HOME/.gstreamer-0.10/ y vuelve a crearlo con gst-inspect

A partir de ahora podremos ver vídeos y escuchar audios incrustados en páginas Webs sin lanzar aplicación independiente alguna. Sin embargo habría que hacer alguna observación al respecto:

Mientras que Rhytmbox, y el plugin incrustado de Firefox, se convierten en la mejor ópcion para los audios,Totem bajo mi punto de vista, no lo es para los vídeos. Resulta algo lento,especialmente el plugin para Firefox. Y Si tú ordenador no es de “última generación” se nota bastante. Por lo que yo, en este caso, optaría por el uso de mplayer en su lugar siempre que nos sea posible conocer el enlace a la fuente de vídeo.

Aunque el objeto de este post es referido a los formatos de media player recordar que para soportar el máximo número de formatos con gstreamer, y por lo tanto desde Totem y Rhytmbox, hay que instalar los paquetes de plugins adicionales aquí indicados.