Datos personales

miércoles, 27 de julio de 2011

Crear vídeo a partir de imagen JPG y de sonido MP3

Imaginemos que tenemos un MP3 de 1:53 de duración que queremos convertir en vídeo para, por ejemplo, poder subirlo a Youtube:

En primer lugar, creamos 113 fotogramas (a 1 fotograma/segundo, tenemos 1:53 de vídeo) mediante enlaces simbólicos a la imagen original. Para ello ejecutamos el siguiente bucle:

$ while (( cuenta < 113 )); do \
ln -s imagen.jpg frame$cuenta.jpg; \
cuenta=$((cuenta+1)); \
done


Para terminar, usamos mencoder para unir vídeo y audio:

$ mencoder "mf://frame*.jpg" -mf fps=1 -o salida.avi -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -audiofile sonido.mp3

Necesitaremos el repositorio debian-multimedia para disponer del paquete mencoder. En otra entrada del blog muestro la información necesaria para configurar dicho repositorio.

NOTA: Seguramente podemos evitar la chapuza de los enlaces simbólicos programando un script para Avidemux. Queda como ejercicio para más adelante.

domingo, 24 de julio de 2011

Compartir ficheros multimedia entre Debian y Playstation 3

Para compartir ficheros multimedia entre Debian y Playstation 3 necesitamos un servidor UPnP.

En Debian (Squeeze) tenemos dos: gmediaserver y mediatomb. Estos son servidores UPnP dedicados y seguramente hay programas de escritorio que incorporan también esta funcionalidad.

En este artículo vamos a ver como usar gmediaserver, un servidor minimalista que no dispone de interfaz gráfica ni de capacidades de transcodificación.

(NOTA: El desarrollo de gmediaserver está bastante estancado y, por otra parte, no parece que permita servir ficheros AVI. Por ello, en estos momentos estoy usando mediatomb).

Instalamos y lo arrancamos en modo "verbose" y con el perfil de compatibilidad para Playstation 3:

$ sudo aptitude install gmediaserver
$ gmediaserver --profile ps3 -v4 /media/Iomega_HDD


Si todo ha ido bien, veremos en la PS3 que en los menús de música, fotos y vídeo aparecerá una nueva entrada "GMediaServer on nombre_servidor"

Para que gmediaserver arranque al inicio del sistema, deberemos hacer los ajustes correspondientes en /etc/default/gmediaserver.

Referencias y lecturas adicionales:
  • http://www.gnu.org/software/gmediaserver/
  • http://www.makeuseof.com/tag/using-your-linux-computer-as-a-upnp-av-server-part-3/
  • http://gizmodo.com/5096103/a-complete-guide-to-playing-video-files-on-your-ps3-xbox-360-or-wii

    Acceso a chat de Facebook desde clientes de mensajería instantánea

    En la edición de Agosto de 2011 de LinuxJournal mencionan de pasada cómo acceder al servicio de chat de Facebook desde clientes de mensajería instantánea. Vamos a entrar en detalles y ver como configurar Pidgin, por ejemplo.

    En primer lugar, necesitamos saber nuestro identificador de usuario en Facebook. Para ello, tenemos dos opciones:
    1. Escoger un nombre de usuario "amigable" en http://www.facebook.com/username/
    2. Colocar el ratón encima del enlace "Perfil". Verás algo similar a http://www.facebook.com/profile.php?id=1234567890123456. Anota el número que aparece ahí.
    Seguidamente, configuraremos en Pidgin una cuenta de mensajería instantánea del tipo XMPP, conectada al dominio chat.facebook.com.

    Estos son los ajustes principales:


    Una vez creada la cuenta, Pidgin mostrará tus contactos de Facebook organizados según los grupos que hayas definido en tu perfil.

    Actualización: Como indican en los comentarios, existe un plugin (pidgin-facebookchat) que, además de dar acceso al servicio de chat, permite establecer tu estado en Facebook, buscar amigos, etc. Este plugin está disponible en los repositorios de Debian.

    lunes, 18 de julio de 2011

    GConf: Instalación de accesos directos a nivel de sistema

    Si queremos instalar de forma obligatoria un acceso directo a una carpeta compartida a todos los usuarios que inicien sesión en el sistema, podemos crear el siguiente fichero /tmp/share.xml:


     <gconfentryfile>
      <entrylist base="/desktop/gnome/connected_servers/ubuntu">
        <entry>
          <key>display_name</key>
          <value>
            <string>Recurso compartido</string>
          </value>
        </entry>
        <entry>
          <key>icon</key>
          <value>
            <string>gnome-fs-ssh</string>
          </value>
        </entry>
        <entry>
          <key>uri</key>
          <value>
            <string>ssh://192.168.0.254/tmp</string>
          </value>
        </entry>
      </entrylist>
    </gconfentryfile>



    y usar la utilidad gconftool-2 de esta forma:


    $ gconftool-2 --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory/   --load /tmp/share.xml


    También se puede usar la base de datos por defecto (defaults), en lugar de la obligatoria (mandatory):


    $ gconftool-2; --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults/ --load /tmp/share.xml


    NOTA: Esta forma de invocar el comando asume que el demonio gconfd está ejecutándose. Si no es el caso, hay que usar la opción --direct para acceder directamente a los ficheros.

    Para ejecutar estos comandos de forma remota y no interactiva, puede ser un incordio que los datos de conexión estén en un fichero XML. Para sortear ese problema se pueden cargar claves de esta forma:


    $ gconftool-2 \
    --config-source xml:readwrite:/etc/gconf/gconf.xml.defaults/ \
    --type string \
    --set /desktop/gnome/connected_servers/ubuntu/display_name "Recurso compartido" \
    --type string --set /desktop/gnome/connected_servers/ubuntu/icon "gnome-fs-ssh" \
    --type string \
    --set /desktop/gnome/connected_servers/ubuntu/uri "ssh://192.168.1.254/tmp"