Convertir de PDF a JPG

ImageMagick incluye una aplicación de conversión de formatos gráficos estupenda. Entre otros, permite hacer lo que busca el título de este post: convertir de formato PDF a formato JPG. ¿Para qué? Muy útil cuando tu player multimedia no soporta el archivo PDF pero sí el JPG… Basta con hacer lo siguiente:

$ convert fichero.pdf fichero.jpg

En los foros de Ubuntu me encuentro con un script que hace lo que quiero para una carpeta completa:

for file in `ls *.pdf`
do
convert $file `echo $file | sed 's/.pdf$/.jpg/'`
done

Ahora hay que ajustar la salida para que los JPG sean legibles sin necesidad de microscopio 😉

Extraer información de codecs de un vídeo

Tienes un fichero .AVI y no sabes exactamente el codec que han usado para la parte del vídeo (DivX, Xvid3, Xvid4, MJPEG, …) ni para la parte del audio (PCM, MPEG, AC3…) . ¿Cómo obtener esa información? Una buena utilidad para esta tarea es mediainfo. Entre otros datos, nos mostrará los siguientes:

* General: título, autor, director, album, track, fecha, duración….
* Video: codec, aspect, fps, bitrate…
* Audio: codec, sample rate, canales, idioma, bitrate…
* Text: idioma de subtítulos
* Capítulo: número y listado de capítulos

El uso es desde la línea de comandos:


$ mediainfo nombreDelVideo.avi

Java Cache Viewer: dónde se esconden los jnlp

Como dice más o menos la Wikipedia, Java Web Start es un framework desarrollado por Sun Microsystems quer permite iniciar directamente desde el navegador aplicaciones Java preparadas específicamente (siguen el protocolo Java Network Launching Protocol – JNLP – ). A diferencia de los applets Java, las aplicaciones Web Start no se ejecutan dentro el navegador, por lo que las duras restricciones de seguridad del sandbox de los applets no se aplican en este caso (aunque este nivel de seguridad también puede configurarse para las aplicaciones JNLP).

Dicho lo anterior a modo de introducción, ayer mismo necesité ejecutar una aplicación Web Start, en concreto iRiverter. Es una mini aplicación Java que permite convertir, a golpe de ratón, un archivo de vídeo .AVI al formato necesario para distintos players de vídeo (en concreto, también para Creative Zen, mi nueva «mascota»). Todo muy bonito y muy bien, pero hoy, cuando he querido ejecutarla de nuevo, me ha surgido la duda. ¿Tengo que estar conectado a Internet para ejecutarla? ¿descargarla otra vez y volver a ejecutarla? No tiene mucho sentido. Además, seguro que está cacheada. Y efectivamente, la gente de SUN lo pensó muy bien. Y no sólo eso, sino que nos permite ver todas las aplicaciones JNLP que hemos descargado, ejecutarlas offline y si queremos, hasta crear un icono de acceso directo a la aplicación cacheada en local. ¿Cómo? Yo lo he hecho a través del Java Cache Viewer, pero seguro que hay alguna otra opción mejor (espero comentarios).


$ /opt/jdk1.6.0_10/bin/ControlPanel

Pulsamos ahora, dentro de la sección «Temporary Internet Files» en el botón «View…».
Se abrirá el «Java Cache Viewer». En el imagen vemos que tengo disponible iRiver, la aplicación que me interesa (y que descargué ayer).

Ahora, con el botón derecho sobre iRiver:

Vemos que tenemos la opción de ejecutar la aplicación Offline, y también de instalar un acceso directo (con icono correcto) en el escritorio. +1 para Java Web Start…

Adobe AIR en Linux

Adobe AIR es un entorno de ejecución multi-plataforma que permite construir y ejecutar aplicaciones RIA (Rich Internet Applications) usando Adobe Flash, Adobe Flex, HTML, o Ajax, que pueden ser ejecutadas desde el navegador o bien como aplicaciones locales (sin navegador) en el escritorio. Cada día se está oyendo hablar más de aplicaciones AIR, y teniendo la posibilidad de probarlas en Linux, creo que es interesante aprender a hacerlo. Vamos a instalar el entorno y a continuación una aplicación, a través de un ejemplo paso a paso.

Lo primero es descargar el runtime de la página principal de Adobe AIR para Linux . A continuación, debemos darle permisos de ejecución al archivo.

$ chmod a+x adobeair_linux_a1_033108.bin

Y finalmente instalar:

$ sudo ./adobeair_linux_a1_033108.bin

Se creará un acceso directo en el menú Aplicaciones/Otros/Adobe Air.

Ahora podemos añadir al sistema aplicaciones AIR de forma muy sencilla. Por ejemplo, instalaremos Adobe AIRTube (una pequeña aplicación para descargar – y previsualizar – vídeos FLV de YouTube al escritorio). Obtendremos AirTube desde aquí. Lo guardaremos en el Escritorio. Para comenzar su instalación basta con hacer doble click sobre el archivo. Se abrirá la siguiente ventana:

Pulsamos en Install, y a continuación:

indicamos que queremos accesos directos a la aplicación y que el directorio de instalación sea /opt . Ahora es como en Windows (Siguiente/Siguiente/Siguiente). Nos pedirá password de administración (nuestro password si somos sudoers) y listo. Se lanzará la siguiente ventana (chromeless):

Desde ahí, arrastramos la URL de cualquier vídeo al widget AirTube y comenzará la descarga al pulsar el botoncito de la derecha (triángulo blanco), con barra de progreso incluída. El fichero caerá en el escritorio y se visualizará en el propio Airtube.

ffmpeg, codecs, libmp3lame, libxvid y otras hierbas

Quiero convertir un video descargado de YouTube a formato AVI (xvid, mp3). Lo primero: eso de mp3 es tabú para el conversor ffmpeg que viene de serie en Ubuntu. Hay que instalar el ffmpeg-sin-miedos del repositorio Medibuntu.

Una vez hecho, pasemos a la conversión:


$ ffmpeg -i pocoyo_bed_time.flv -s 320×240 -r 24 -acodec libmp3lame -vcodec libxvid -vtag XVID -f avi -qscale 3 -g 300 -deinterlace -ab 56k -ar 24000 -async 1 pocoyo_bed_time.avi

….
Unknown codec ‘libmp3lame’

Vaya por dios. ¿No hay soporte libmp3lame en ffmpeg? Pero ¿no era eso lo que precisamente aportaba la versión de Medibuntu?

Veamos:


juanan@morton:~/Desktop/zen$ ffmpeg -version
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
configuration: –enable-gpl –enable-pp –enable-swscaler –enable-pthreads –enable-libvorbis –enable-libtheora –enable-libogg –enable-libgsm –enable-dc1394 –disable-debug –enable-libmp3lame –enable-libfaadbin –enable-libfaad –enable-libfaac –enable-xvid –enable-x264 –enable-liba52 –enable-amr_nb –enable-amr_wb –enable-shared –prefix=/usr
libavutil version: 1d.49.3.0
libavcodec version: 1d.51.38.0
libavformat version: 1d.51.10.0
built on Jul 29 2008 18:21:25, gcc: 4.2.3 (Ubuntu 4.2.3-2ubuntu7)
ffmpeg SVN-rUNKNOWN
libavutil 3212032
libavcodec 3352064
libavformat 3344896

Pues en el configure se ve claramente –enable-libmp3lame .
¿Qué ocurre? Que nos quieren volver locos con los nombres 🙂 Para averiguar el nombre del encoder necesario, hay que realizar el conjuro mágico:


$ ffmpeg -formats | grep -i mp3

juanan@morton:~/Desktop/zen$ ffmpeg -i pocoyo_bed_time.flv -s 320×240 -r 24 -acodec mp3 -vcodec libxvid -vtag XVID -f avi -qscale 3 -g 300 -deinterlace -ab 56k -ar 24000 -async 1 pocoyo_bed_time.avi

Unknown codec ‘libxvid’

El error es otro… y ya sabéis cómo resolver. La orden final correcta sería:

$ ffmpeg -i pocoyo_bed_time.flv -s 320x240 -r 24 -acodec mp3 -vcodec xvid -vtag XVID -f avi -qscale 3 -g 300 -deinterlace -ab 56k -ar 24000 -async 1 pocoyo_bed_time.avi