QtVerTV 0.1, Front-end para Sopcast en Qt

QtVerTV

Hace tiempo os hablé de VerTV, un script que había creado Albert que permitía ver eventos deportivos a través del cliente Sopcast. Para la interfaz gráfica, él utilizaba zenity, un programa pequeño que permitía mostrar cuadros de diálogo de GTK+ a través de la línea de comandos.

Dado que no tengo especial predilección por las librerías GTK+, decidí hacer otra interfaz para el script de Albert, pero hecha en Qt4 (Como dato adicional, decir que el entorno de escritorio GNOME está basado en librerías GTK+ mientras que KDE está basado en las Qt). Hacer esta interfaz en Qt permitiría un mejor manejo, ya que es más versátil que Zenity pero tendría el problema de que habría que aprender a programar (al menos un poco) en Qt4 y C++.

Y como podéis apreciar por el título, la interfaz ha sido por fin desarrollada. Me ha costado alrededor de un mes hacerla. Me he basado en un ejemplo que viene en la documentación de Qt4 para ahorrarme escribir cosas que ya estaban hechas (esto es lo que mola del SL).

_____________________________

Descripción

Os dejo unas capturas del funcionamiento general del programa:

Tiene un gran parecido con el script de Albert (normal, ya que me he basado en él). Explico resumidamente el funcionamiento del programa:

  1. Muestra una pantalla de bienvenida.
    • Si tenemos alguna preferencia guardada podremos utilizar el botón para eliminarla.
    • Si no disponemos del cliente de Sopcast nos mostrará un mensaje de error.
  2. Muestra una pantalla de elección del reproductor.
    • Si tenemos algún reproductor por defecto esta pantalla es omitida.
  3. Muestra una pantalla para introducir la URL.
  4. Reproduce la URL introducida con el reproductor seleccionado.

_____________________________

Instalación

Aviso que esta versión está en desarrollo y que puede que le falten algunas cosillas todavía. Pero la he testeado un poco y de momento funciona bien. Realizaremos la instalación de momento manualmente hasta que yo (o algún valiente/valienta) haga los ficheros .deb y .rpm (sí chicos, esto es una indirecta).

Instalación por terminal

Abrimos un terminal y nos situamos en el escritorio:

cd Escritorio

Descargamos el archivo que contiene al cliente de sopcast y el frontend:

wget http://sinwindows.es/qtvertv-0.1.tar.bz2

Lo descomprimimos:

tar -jxvf qtvertv-0.1.tar.bz2

Creamos la carpeta necesaria y copiamos el cliente:

sudo mkdir /usr/bin/sp-auth

sudo cp sp-sc-auth /usr/bin/sp-auth/

Eliminamos el archivo comprimido:

rm -f qtvertv-0.1.tar.bz2

Ahora sólo tenemos que ir al escritorio y hacer doble click sobre el archivo qtvertv.

Instalación gráfica

Descargamos este archivo y lo descomprimimos (Botón derecho y después Extraer aquí). Pulsamos Alt+F2 (Ejecutar…) y escribimos gksudo nautilus, esto nos abrirá un explorador como root. Dentro de ese explorador vamos a /usr/bin y creamos una carpeta llamada sp-auth. Dentro de la carpeta que hemos creado al descomprimir habrá un archivo llamado sp-sc-auth, lo copiamos como root y lo pegamos en la carpeta que acabamos de crear. Ahora sólo tenemos que pulsar dos veces en el archivo qtvertv para ejecutarlo.

_____________________________

Uso del programa

No hay que ser una lumbrera para usar el programa. Simplemente lo ejecutamos y seleccionamos un reproductor (recomiendo mplayer o VLC). En la parte URL podemos pulsar en el botón para ir a la web de la página RojaDirecta (desde aquí les agradezco que me permitieran poner ese enlace) y allí seleccionar el evento que queremos ver. Al pulsar sobre él se nos ofrecerán una serie de métodos para verlo. Con este programa podemos ver todos los eventos mediante SopCast. Aquí os dejo una captura con lo que estoy diciendo:

Como podéis ver se nos ofrecen un montón de formas de verlo. Nosotros queremos verlo por SopCast así que pulsamos con el botón derecho en donde dice SopCast y pulsamos en Copiar la ruta del enlace. Si os falla un enlace puede que no funcione, probad con otro si lo hubiera.

Una vez hayamos copiado la ruta vamos al programa y la pegamos en el cuadro correspondiente. Cuando esté todo listo pulsa en Siguiente y comenzará a funcionar.

Antes de poder ver el vídeo debe almacenar algo de información, así que la barra de progreso es, simplemente, un retardo de 15 segundos para que el sistema tenga tiempo de almacenar información. Bajar ese tiempo puede influir negativamente en el vídeo e incluso que no se vea. Una vez termine la reproducción el programa mostrará un pequeño mensaje y podréis cerrarlo.

Aquí os dejo unas capturas con el programa funcionando con los 3 reproductores (mplayer, VLC y totem):

Como dato curioso, podéis ver que en la captura con VLC (la del medio) en el terminal me dice que mi ordenador es muy lento. ¡Como si no lo supiera!

_____________________________

Notas adicionales

Sobre el código fuente

El código fuente lo podéis descargar desde aquí. La licencia de el código es GPL (que es la misma que la que llevaba el ejemplo en el que me basé). Como podréis ver, el código ocupa muy poco (5,6 Kbs el comprimido).

Para compilarlo sólo tenéis que hacer en un terminal:

qmake -project

qmake

make

Fallos conocidos

  • Aunque la URL está en blanco se puede pulsar en siguiente y la reproducción intenta comenzar.
    • Se solucionará en futuras versiones.
  • Si se ha terminado de reproducir un vídeo y se pulsa en Atrás, se puede introducir una nueva URL pero no aparece la barra de carga, aunque el vídeo sí funciona.
    • Se solucionará en futuras versiones.
  • En el título del ejecutable dice que la versión es la 1.0, cuando es la 0.1.
    • Soy demasiado vago como para compilar el código con ese cambio. En las versiones siguientes se corregirá.
  • El botón para reiniciar las preferencias es gigante, al igual que el botón para ir a RojaDirecta.
    • No puedo hacer nada con eso. El que asigna el tamaño de los botones es el propio programa. Se puede hacer el botón más pequeño, pero me obligaría a reconfigurar toda la interfaz, y por eso, de momento, se quedará así.
  • Mientras está reproduciendo la ventana de QtVerTV se queda como si no respondiera.
    • Esto ocurre porque llamo al programa desde la línea de comandos con la función system. Si ejecutara el reproductor como una aplicación externa se solucionaría este problema, aunque aparecerían otros. Ya se verá que se hace con esto.

Fallos y comentarios

Cualquier problema que tengáis con el programa podéis añadir un comentario a la entrada y se os solucionará en cuanto se pueda (si se puede, claro). No se responderán temas relacionados con el programa por mail.

_____________________________

Nada más

Un saludo

Acerca de Alejandro

Usuario de linux y estudiante de Física. Jugador/entrenador de baloncesto, aprecio cualquier cosa científica/tecnológica interesante.

Publicado el 12 octubre , 2008 en Creaciones, Internet, Miscelánea, Programas, Sonido y Vídeo. Añade a favoritos el enlace permanente. 8 comentarios.

  1. Umn, interesante, tal vez me anime a hacer otro frontend en PyGTK+ basándome en tu script y el de albert 😉

    Respecto a la GPL, debo asumir que es la GPLv3?

  2. Por cierto cuando intento acceder a tu web me pega un error muy molón de PHP.

  3. Joe si que te lo curras 😉 a ver si saco un pelin de tiempo y hago el deb

    Saludos!

  4. Como te comenté en cuanto lo tengas que funcione me lo dices y te hago el rpm y el deb si quieres 🙂

  5. Calma pueblo. Dentro de poco hablaré con vos, si su a su merced le place.

  6. Te lo curraste tio!de escadalo..ahora eso…alberthj….el .deb..xD!

  7. Buenas,

    Necesito algo de ayuda. Llevo varios dias peleandome con la aplicacion pero no consigo reproducir nada.

    Al intentar usar vlc tengo esta info
    jose@jose-laptop:~/Aplicacions/sopcast$ ./qtvertv
    VLC media player 0.9.9a Grishenko
    [00000001] main libvlc debug: VLC media player – version 0.9.9a Grishenko – (c) 1996-2009 the VideoLAN team
    [00000001] main libvlc debug: libvlc was configured with ./configure ‘–build=i486-linux-gnu’ ‘–enable-maintainer-mode’ ‘–enable-release’ ‘–prefix=/usr’ ‘–enable-libtool’ ‘–enable-fast-install’ ‘–with-binary-version=2ubuntu1’ ‘–disable-update-check’ ‘–disable-gnome’ ‘–disable-gtk’ ‘–disable-familiar’ ‘–disable-fb’ ‘–enable-ggi’ ‘–enable-sdl’ ‘–enable-esd’ ‘–enable-mad’ ‘–enable-jack’ ‘–enable-pulse’ ‘–enable-lirc’ ‘–enable-a52’ ‘–enable-aa’ ‘–enable-dvbpsi’ ‘–enable-mozilla’ ‘–with-mozilla-pkg=libxul-plugin’ ‘–disable-kde’ ‘–enable-mp4’ ‘–enable-dvb’ ‘–disable-satellite’ ‘–enable-ogg’ ‘–enable-vorbis’ ‘–enable-shout’ ‘–enable-qt4’ ‘–disable-slp’ ‘–enable-flac’ ‘–disable-skins’ ‘–disable-basic-skins’ ‘–enable-skins2’ ‘–enable-freetype’ ‘–enable-mkv’ ‘–enable-speex’ ‘–enable-caca’ ‘–enable-live555’ ‘–enable-libmpeg2’ ‘–enable-fribidi’ ‘–enable-cdio’ ‘–enable-mod’ ‘–enable-theora’ ‘–enable-modplug’ ‘–enable-dvdnav’ ‘–enable-gnutls’ ‘–enable-ffmpeg’ ‘–enable-ncurses’ ‘–enable-smb’ ‘–disable-gnomevfs’ ‘–enable-bonjour’ ‘–enable-mpc’ ‘–enable-vcd’ ‘–enable-vcdx’ ‘–enable-notify’ ‘–enable-twolame’ ‘–enable-faad’ ‘–disable-zvbi’ ‘–enable-telx’ ‘–enable-mediacontrol-bindings’ ‘–disable-atmo’ ‘–enable-taglib’ ‘–enable-libass’ ‘–enable-libdca’ ‘–enable-realrtsp’ ‘–disable-dv’ ‘–enable-x264’ ‘–enable-alsa’ ‘–enable-v4l’ ‘–enable-v4l2’ ‘–enable-pvr’ ‘–enable-svgalib’ ‘–enable-dvd’ ‘–without-dvdcss’ ‘build_alias=i486-linux-gnu’ ‘CFLAGS=-g -O2’ ‘LDFLAGS=-Wl,–as-needed’ ‘CPPFLAGS=’ ‘CXXFLAGS=-g -O2’
    [00000001] main libvlc debug: translation test: code is «es»
    [00000001] main libvlc: Ejecutar vlc con el interfaz por defecto. Usa ‘cvlc’ para usar vlc sin interfaz.

    Y aqui se queda esperando sin reproducir nada.

    Si uso mplayer, me aparece lo siguiente:

    jose@jose-laptop:~/Aplicacions/sopcast$ ./qtvertv
    mplayer: could not connect to socket
    mplayer: No such file or directory
    Failed to open LIRC support. You will not be able to use your remote control.
    Couldn’t resolve name for AF_INET6: localhost
    nop_streaming_read error : Resource temporarily unavailable
    ASF: No video stream found.
    No stream found.

    Os pego mi /etc/hosts

    #127.0.0.1 localhost
    127.0.0.1 jose-laptop

    # The following lines are desirable for IPv6 capable hosts
    ::1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts
    /etc/hosts (END)

    Gracias.

Replica a dakota Cancelar la respuesta