[Tip] MPlayer embebido

MPlayer embebido

MPlayer embebido

MPlayer es mi reproductor de medios favoritos. Soporta prácticamente todos los codecs conocidos. Casi siempre lo ejecuto desde la línea de comandos mediante “mplayer“. Ubuntu instala tanto el reproductor como el frontend GUI de MPlayer, gmplayer.

Trabajando con sistemas empotrados es fácil encontrarse en la situación de tener que reproducir vídeo/audio tarde o temprano. Probablemente se necesite reproducir dentro de una ventana de aplicación.

Soluciones en el mercado hay muchas.  En caso de desarrollar nuestro sistema con Xorg, podemos optar por muchas opciones “libres”. Mis reproductores (“embebibles”) favoritos son GStreamer y MPlayer. Si las restricciones de diseño me lo permiten y el ámbito de reproducción no es muy flexible prefiero usar GStreamer (entre otras cosas por su licencia LGPL). Pero si no puedo usarlo, MPlayer soluciona bien “la papeleta” de forma sencilla.

Unos de los parámetros de ejecución de MPlayer permite reproducir el video en la ventana X que queramos. Basta con especificar el ID de ventana.

Voy a ilustrarlo en el siguiente ejemplo:

  1. Abrimos una shell y lanzamos el xclock en background:
     xclock -geometry 800x600 & 

    Hemos especificado un tamaño de ventana grande donde quepa bien la reproducción.

  2. Necesitamos el ID de ventana, luego ejecutamos xwininfo y hacemos click sobre el reloj:
     xwininfo 

    Aparecerá algo parecido a:
    xwininfo: Please select the window about which you
    would like information by clicking the
    mouse in that window.
    Window id: 0x460000a "xclock"

  3. Ahora sólo necesitamos invocar a MPlayer con la siguiente sintaxis añadiendo el ID de ventana que nos proporcionó xwininfo:
     mplayer -wid  0x460000a <fichero-a-reproducir> 

    Si no tenéis ningún fichero a mano, podéis usar éste:  Big Buck Bunny Trailer

Llegados aquí, ya deberíais estar disfrutando de la reproducción. Si no es el caso, puede deberse a problemas con el Windows Manager (GNOME,KDE,etc). Yo he tenido problemas con Compiz en Ubuntu.

En aplicaciones reales deberéis añadir lógica en vuestro código para obtener el ID de ventana de forma automática. Os dejó un code snippet que puede servir como base.

Espero que con este tip podáis satisfacer un requisito que a priori parece tedioso.

Translate to:English

MenefanteMenéame TwitterTwitter

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: