Mar 6, 2012

Configurar Mozplugger para incrustar SMPlayer en Firefox

Resulta que a día de hoy todavía existen algunas paginas web que incrustan videos usando las etiquetas <object> y <embed>, así como también existen complementos para Firefox que nos permiten reemplazar objetos Flash de audio y video por un objeto incrustado en una etiqueta <object> o <embed>.

Los usuarios de GNU/Linux y de Firefox utilizan Mozplugger para poder reproducir este tipo de contenidos.

El problema con Mozplugger es que en muchos sistemas está configurado para usar MPlayer como reproductor por defecto, y el problema que esto acarrea es que MPlayer no trae controles para manipular la reproducción de video, como pausar, avanzar y retroceder, controlar el volumen, etc.. En otras palabras, MPlayer incrustado en Firefox, sólo se limita a reproducir el video y nada más.

Yo desde hace un tiempo atras, he adoptado a SMPlayer como mi reproductor por defecto, y ahora quiero usarlo para reproducir contenido incrustado en la web en lugar de MPlayer. Y en este tutorial veremos como se hace.

Primero comenzamos abriendo el archivo de configuración de Mozplugger:

su -c 'nano /etc/mozpluggerrc'

Luego buscamos la linea que dice ### Helpers y antes de ### MPlayer agregamos las lineas:

### SMPlayer

# Aquí definimos el comando que usaremos para reproducir los archivos multimedia.
#
# $1 corresponde al primer parámetro de la función.
#
# Y enviamos toda la salida por consola a /dev/null
define(SMP_CMD, [smplayer $1 </dev/null])

# Aquí definiremos los parametros que utilizará el reproductor multimedia cuando
# se encuentre incrustado dentro del navegador.
#
# Con swallow forzamos la incrustación del reproductor dentro de la ventana del
# navegador, si el reproductor no tiene una opción para tal fin.
#
# -minigui y -fullscreen son opciones propias de SMPlayer, usamos una interfaz
# reducida de SMPlayer y hacemos que el video ocupe toda el área que le corresponde.
#
# $1 es la url del video.
define(SMP_EMBED, [embed needs_xembed noisy autostart nokill ignore_errors fill swallow(SMPlayer): SMP_CMD(-minigui -fullscreen $1)])

# Aquí definiremos los parámetros que utilizará el reproductor multimedia cuando
# sea llamado desde Firefox pero no sea incrustado en el mismo.
#
# $1 es la url del video.
define(SMP_NOEMBED, [noembed noisy nokill ignore_errors: SMP_CMD($1)])

# Por ultimo definimos el comando completo que usaremos para reproducir los
# archivos incrustados.
define(SMP_STREAM,[stream SMP_EMBED("$file")
                   stream SMP_NOEMBED("$file")])

Quedando mas o menos así:

###################
### m4 macros   ###
###################

changequote([,])

### Helpers

### SMPlayer

define(SMP_CMD, [smplayer $1 </dev/null])
define(SMP_EMBED, [embed needs_xembed noisy autostart nokill ignore_errors fill swallow(SMPlayer): SMP_CMD(-minigui -fullscreen $1)])
define(SMP_NOEMBED, [noembed noisy nokill ignore_errors: SMP_CMD($1)])

define(SMP_STREAM,[stream SMP_EMBED("$file")
                   stream SMP_NOEMBED("$file")])

### MPlayer

define(MP_CMD,[mplayer -really-quiet -nojoystick -nofs -zoom -vo xv,x11 -ao esd,alsa,oss,arts,null -osdlevel 0 $1 </dev/null])

define(MP_EMBED,[embed noisy ignore_errors: MP_CMD(-xy $width -wid $window $1)])

define(MP_NOEMBED,[noembed noisy ignore_errors maxaspect swallow(MPlayer): MP_CMD($1)])

Ahora colocaremos la linea SMP_STREAM() al principio de cada linea que contenga las lineas MP_VIDEO_STREAM() y/o MP_AUDIO_STREAM(), quedando mas o menos algo así:

###################
### Video       ###
###################

video/mpeg:mpeg,mpg,mpe:MPEG animation
video/x-mpeg:mpeg,mpg,mpe:MPEG animation
video/x-mpeg2:mpv2,mp2ve:MPEG2 animation
        SMP_STREAM()
        MP_VIDEO_STREAM()
        TM_VIDEO_STREAM()
        nokill noisy: xine -pq "$file"
        loop: mtvp -l -W$window "$file"
        : mtvp -W$window "$file"
        loop: xanim +Av100 -Zr +W$window +q +f "$file"
        : xanim +Av100 -Zr +W$window +q +Ze +f "$file"

Pueden probar el resultado final con cualquiera de estos enlaces:

No comments:

Post a Comment