dic 17

Bueno, como lo prometido es deuda, estuve trasteando en un script para adaptar imágenes al ipod. El script en cuestión es muy sencillito. Lo único que hace es recorrer el directorio que le indiquemos de forma recursiva, y si encuentra una imagen más alta que ancha (es decir, una imagen vertical), la inclina 90 grados para que se vea mejor en la pantalla del ipod (estamos hablando de un ipod video, con pantalla 4:3).

No hice nada más de conversión de formatos ni tamaño, ni nada por el estilo, porque de eso ya se encarga el tripod, que es un programa muy listo, así que para demás tareas, a bajárselo tocan. En fin, aquí está la obra:

#!/bin/bash



#----------PARAMETROS DE EJECUCION----------
formatos='*.bmp *.BMP *.gif *.GIF *.jpeg *.JPEG *.jpg *.JPG *.png *.PNG'
#-------------------------------------------



#----------FORMATO DE CONVERSION------------
angulo_rotacion='90'
#-------------------------------------------



#-----------FUNCIONES------------------------
function recorrer_directorios {

    for i in $formatos ; do

	if [[ -a $i ]] ; then

	    tamanho=`identify "${i}"`
	
	    #Eliminamos el nombre del fichero de la salida del identify
	    tamanho=${tamanho/"${i}"/}
	    tamanho=`echo $tamanho | cut -d\  -f2`

	    tamanho_h=`echo $tamanho | cut -dx -f1`
	    tamanho_v=`echo $tamanho | cut -dx -f2`

	    if (( $tamanho_v > $tamanho_h )) ; then
		convert "${i}" -rotate $angulo_rotacion "${i}"
		echo "Convertido: $i"
	    else
		echo "No convertido: $i"
	    fi
	fi
	
    done
    
    for i in * ; do
	
	if [[ -d $i ]]  ; then #Si el elemento es un directorio
	    cd "${i}"
	    recorrer_directorios
	    cd ..
	fi  
    done 
}
#-------------------------------------------



echo 'Para poder ejecutar este script'
echo 'es imprescindible tener instalado'
echo 'el pograma de conversion imagemagick.'
echo
echo 'ATENCION: este script eliminara los ficheros'
echo 'originales tras la conversion.'
echo -n 'Desea continuar? (s/n): '

read orden

if [ "$orden" = "s"  ]; then
    echo -n 'Directorio: '
    read directorio

    if [[ -d "${directorio}" ]]  ; then #Si el elemento es un directorio
	cd "${directorio}"
	recorrer_directorios
    else
	echo "Directorio no valido"
    fi
fi

También le hice unos pequeños retoques al script para pasar videos a formato ipod, para evitar que sacara unos cuantos mensajes de error inútiles que no pintaban nada y demás. Aquí está la versión definitiva:

#!/bin/bash



#----------PARAMETROS DE EJECUCION----------
ejecutable='ffmpeg'

formatos='*.asf *.ASF *.asx *.ASX *.avi *.AVI *.flv *.FLV *.m1v *.M1V *.m4v *.M4V *.mov *.MOV *.mp2 *.MP2 *.mpg *.MPG *.mpeg *.MPEG *.mp4 *.MP4 *.ogm *.OGM *.qt *.QT *.ra *.RA *.ram *.RAM *.swf *.SWF *.wmv *.WMV'
#-------------------------------------------



#----------FORMATO DE COMPRESION------------
audio_codec='libfaac'
video_codec='mpeg4'
formato_forzado='mp4'
extension='mpg'

audio_sampling_rate='44100'
audio_bitrate='128kb'
video_bitrate='300kb'

tamanho_pantalla='320x240'
#-------------------------------------------



#-----------FUNCIONES------------------------
function recorrer_directorios {

    mkdir procesados
    mkdir salida
    echo ' '

    for i in $formatos ; do

	if [[ -a $i ]] ; then

	    #Comprimimos el fichero de video pasandolo a un fichero temporal sin extension de video para no alterar el funcionamiento del bucle
	    $ejecutable -i "${i}" -acodec $audio_codec -ar $audio_sampling_rate -ab $audio_bitrate -vcodec $video_codec -b $video_bitrate -s $tamanho_pantalla -f $formato_forzado "${i}".tmp
	
	    #Si el tamanho de la salida es 0 por culpa del audio, recomprimimos
	    tamanhotemp=`ls -l $directorio/"${i}".tmp`
	    tamanho=`echo $tamanhotemp | cut -d\  -f5`

	    if [ "$tamanho" = "0" ] ; then

		rm "${i}".tmp
		$ejecutable -i "${i}" -vcodec $video_codec -b $video_bitrate -s $tamanho_pantalla -f $formato_forzado "${i}".tmp
	    fi

	    #Pasamos el fichero a comprimir al directorio de procesados y el fichero comprimido al directorio de salida, con la extension definitiva
	    mv "${i}" procesados
	    mv "${i}".tmp salida/"${i}".$extension
	fi
    done
    
    #Eliminamos los directorios temporales para no alterar el bucle
    mv salida/* .
    rm -fr salida
    rm -fr procesados
    
    for i in * ; do
	
	if [[ -d $i ]]  ; then #Si el elemento es un directorio
	    cd "${i}"
	    recorrer_directorios
	    cd ..
	fi  
    done 
}
#-------------------------------------------



echo 'Para poder ejecutar este script'
echo 'es imprescindible tener instalado'
echo 'el pograma de conversion ffmpeg.'
echo 'Se recomienda comprobar su correcto'
echo 'funcionamiento con el comando:'
echo 'ffmpeg -i fichero -acodec libfaac -ar 44100 -ab 128kb -vcodec mpeg4 -b 300kb -s 320x240 -f mp4 fichero_salida'
echo 'En caso de error, es imprescindible'
echo 'ajustar los parametros adecuados del ffmpeg'
echo 'en el script.'
echo
echo 'ATENCION: este script eliminara los ficheros'
echo 'originales tras la conversion.'
echo -n 'Desea continuar? (s/n): '

read orden

if [ "$orden" = "s"  ]; then
    echo -n 'Directorio: '
    read directorio

    if [[ -d "${directorio}" ]]  ; then #Si el elemento es un directorio
	cd "${directorio}"
	recorrer_directorios
    else
	echo "Directorio no valido"
    fi
fi

Ahora lo que más molaría sería que alguien además de yo mismo los usase xD. Si encontráis algún error, o alguna cosilla que se pudiese mejorar, no dudéis en decírmelo, y se hará lo que se pueda.

dic 16

Hace un tiempo hice un script en bash para cambiar el formato a una serie de videos para poder reproducirlos en el ipod. Era un script muy sencillo, tal que así:

#!/bin/bash
mkdir procesados
mkdir salida
for i in [ *.asf *.avi *.mov *.mp2 *.mpg *.mpeg *.ram *.swf *.wmv ] ; do
ID1=$i
ID2=`echo $i | cut -d. -f1`
ffmpeg -i “${ID1}” -acodec libfaac -vcodec libxvid -b 300kb -s 320×240 -f mp4 “${ID2}”.tmp
mv “${ID1}” procesados
mv “${ID2}”.tmp salida/”${ID2}”.mpg
done

Sin embargo, y debido a la cantidad de carencias que tiene, me decidí a mejorarlo. Le puse unas cuantas variables para que sea más fácil ajustar parámetros, ahora recorre directorios de forma recursiva y alguna paridilla más. Ésto último me costó un poco hacerlo, que me tuvieron que echar una mano en el foro de teleco :P . Bueno, aquí os dejo el resultado de mi procrastinación:

#!/bin/bash



#----------PARAMETROS DE EJECUCION----------
ejecutable='ffmpeg'

formatos='*.asf *.ASF *.asx *.ASX *.avi *.AVI *.flv *.FLV *.m1v *.M1V *.m4v *.M4V *.mov *.MOV *.mp2 *.MP2 *.mpg *.MPG *.mpeg *.MPEG *.mp4 *.MP4 *.ogm *.OGM *.qt *.QT *.ra *.RA *.ram *.RAM *.swf *.SWF *.wmv *.WMV'
#-------------------------------------------



#----------FORMATO DE COMPRESION------------
audio_codec='libfaac'
video_codec='mpeg4'
formato_forzado='mp4'
extension='mpg'

audio_sampling_rate='44100'
audio_bitrate='128kb'
video_bitrate='300kb'

tamanho_pantalla='320x240'
#-------------------------------------------



#-----------FUNCIONES------------------------
function recorrer_directorios {

    mkdir procesados
    mkdir salida
    echo ' '

    for i in $formatos ; do

	#Nos hacemos con el nombre sin extension
	ID=$i
	
	#Comprimimos el fichero de video pasandolo a un fichero temporal sin extension de video para no alterar el funcionamiento del bucle
	$ejecutable -i "${ID}" -acodec $audio_codec -ar $audio_sampling_rate -ab $audio_bitrate -vcodec $video_codec -b $video_bitrate -s $tamanho_pantalla -f $formato_forzado "${ID}".tmp
	
	#Si el tamanho de la salida es 0 por culpa del audio, recomprimimos
	tamanhotemp=`ls -l $directorio/"${ID}".tmp`
	tamanho=`echo $tamanhotemp | cut -d\  -f5`

	if [ "$tamanho" = "0" ] ; then

	    rm "${ID}".tmp
	    $ejecutable -i "${ID}" -vcodec $video_codec -b $video_bitrate -s $tamanho_pantalla -f $formato_forzado "${ID}".tmp
	fi

	#Pasamos el fichero a comprimir al directorio de procesados y el fichero comprimido al directorio de salida, con la extension definitiva
	mv "${ID}" procesados
	mv "${ID}".tmp salida/"${ID}".$extension

    done
    
    mv salida/* .
    rm -fr salida
    rm -fr procesados
    
    for i in * ; do
	
	echo $i

	if [[ -d $i ]]  ; then #Si el elemento es un directorio
	    cd "${i}"
	    recorrer_directorios
	    cd ..
	fi  
    done 
}
#-------------------------------------------



echo 'Para poder ejecutar este script'
echo 'es imprescindible tener instalado'
echo 'el pograma de conversion ffmpeg.'
echo 'Se recomienda comprobar su correcto'
echo 'funcionamiento con el comando:'
echo 'ffmpeg -i fichero -acodec libfaac -ar 44100 -ab 128kb -vcodec mpeg4 -b 300kb -s 320x240 -f mp4 fichero_salida'
echo 'En caso de error, es imprescindible'
echo 'ajustar los parametros adecuados del ffmpeg'
echo 'en el script.'
echo
echo 'ATENCION: este script eliminara los ficheros'
echo 'originales tras la conversion.'
echo -n 'Desea continuar? (s/n): '

read orden

if [ "$orden" = "s"  ]; then
    echo -n 'Directorio: '
    read directorio
    cd $directorio

    recorrer_directorios
fi

Al mediodía, cuando termine de currar, haré uno para pasar las fotos a formato ipod. Lo que tengo en mente es, además de convertir el tamaño, inclinar las que sean más altas que anchas, para verlas más grandes en la pantalla del cacharro. Al tener este script ya terminado, el de las imágenes será coser y cantar. Ya lo veréis por aquí puesto.

sep 11

Bueno, tras un tiempo utilizando el iPod, creo que ya tengo una opinión bastante depurada en cuanto al reproductor de apple. Para los que estéis un poco desconectados, me habían tocado un iPod shuffle y un iPod video 80GB en un concurso hace unos meses, y desde entonces me dediqué a hacer experimentos diversos para comprobar qué podía y qué no podía hacer con ellos (siempre en el sentido de las cosas usuales; no probé linux en el ipod ni le metí ninguno de esos programas para cambiar el interfaz).

Antes de nada decir que el soporte para los que utilizamos Linux es peor que deficiente. Está más que claro que apple intenta barrer para casa con este cacharro y que la gente se pase a mac+macOS, porque si no, no me lo explico. Los pocos programas que hay por norma general funcionan bastante mal, pero bueno, eso ya lo había comentado. Pasamos al despotrique.

El iPod es un buen reproductor en el sentido de que reproduce las cosas bien, pero tiene MUCHOS inconvenientes. Para empezar, los formatos. No reproduce wma, no reproduce ogg, no reproduce nada que no sea mp3, aac o wav. En cuanto a video, no reproduce prácticamente nada. Solamente mov y mp4, y aún así el mp4 con muchísimas limitaciones. Además reproduciento video la batería vuela (nada que no sepáis). Dura muchísimo más la batería de la Nintendo DS reproduciendo a 2 pantallas que la del ipod reproduciendo a una sola (siempre con el brillo al mínimo, claro). En fin, el disco duro es lo que tiene, es un fagocitador de batería. Por otro lado, con esta basurilla no funciona el drag and drop. Si queremos meter algo, cualquier tipo de contenido, a la fuerza tenemos que pasar por software que edite la base de datos. Si no, el cacharro no sabe qué es lo que tiene metido.

En cuanto a reproducción, la reproducción es correcta en lo poco que soporta y una vez que nos volvimos locos para meterlo dentro. La calidad de los mp3 es impecable, los videos se ven perfectamente y las fotografías también. La verdad es que la pantalla tiene una calidad asombrosa para su tamaño, y presenta más resolución de la que pueda parecer (320×240, que en ese tamaño es muy aceptable).

Y ahora vamos a prestar un poco de ayuda a los atormentados usuarios de linux que os estéis volviendo locos con esta cosa. Para introducir canciones en el iPod, nada más sencillo que usar el amarok. Está perfectamente preparado para la tarea y no da ningún problema. Con las fotografías, la cosa está un poco más complicada. Hay un programa llamado Gpixpod que funciona de una forma bastante sencilla y es relativamente fácil ponerlo a andar. Sin embargo tiene una gran limitación. Si metemos en el iPod una gran cantidad de imágenes (del orden de 3 gigas) tarda exageradamente a la hora de leer la base de datos (del orden de hora y media). Para solucionar esto tenemos que activar la opción de crear las previsualizaciones en el equipo y no en el ipod. Esto hace que se cree una réplica de lo que mete en el iPod en nuestro disco duro (no sé por qué), así que estaremos ocupando en el ordenador 3 gigas de forma totalmente estúpida. La alternativa a este programa tan desastroso es el tripod. Es un programa realmente sencillo que funciona sin problemas, pero a mí me costó instalarlo debido a que me daba un buen montón de errores. Ahora no puedo ayudaros con ésto porque no recuerdo qué problemas me daba, pero podéis ir apañándoos si tiráis de google a cada error. Con 3 o 4, el programa está instalado xD.

Y ahora vamos a la parte dolorosa, el video. Para meter los videos en el iPod, un programa muy sencillo de utilizar es el gtkPod. Los videos se meten como si fuesen canciones y no dan ningún tipo de problema. El problema viene a la hora de convertir los videos para que funcionen en el iPod. Por más que busqué no encontré nada que funcionase, así que me curré un pequeño script que a más de uno le solucionará la vida. Para que funcione, tenéis que instalar el ffmpeg con soporte para xvid y aac. Para eso, vais a la página de ffmpeg e instaláis la versión SVN

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

Una vez hecho ésto, compiláis el programa con soporte para xvid y aac. Para eso, podéis ver las opciones disponibles con ./configure –help. Creo que para el soporte para esas dos, era algo así como ./configure –include-libxvid –include-libfaac. En cualquier caso, verificadlo.
Una vez compilado e instalado, lo único que tenéis que hacer es meter todos los videos que queráis convertir en el mismo directorio. El script crea 2 directorios, procesados y salida, e introduce los videos originales en “procesados” y los aptos para el iPod en “salida”. Hay un pequeño número de videos con el que da error y el fichero de salida es de 0 bytes. Es debido a algún tipo de compatibilidad con el formato original del video, pero bueno, pasa con muy pocos y no parece algo fácil de solucionar, así que preferí dejarlo así. Para dudas, consultas, insultos y mejoras del scirpt, ya sabéis dónde estoy.


#!/bin/bash
mkdir procesados
mkdir salida
for i in [ *.asf *.avi *.mov *.mp2 *.mpg *.mpeg *.ram *.swf *.wmv ] ; do
ID1=$i
ID2=`echo $i | cut -d. -f1`
ffmpeg -i "${ID1}" -acodec libfaac -vcodec libxvid -b 300kb -s 320x240 -f mp4 "${ID2}".tmp
mv "${ID1}" procesados
mv "${ID2}".tmp salida/"${ID2}".mpg
done

ago 08

Desde hace una semana, Sparkster (o Parkito xD) es iSparkster, y todo gracias al buen hacer de los chicos de YaTV.

Os pongo en antecedentes: desde el 1 de junio hasta el 1 de julio, en YaTV se estuvo desarrollando un concurso cuyos premios eran un ipod shuffle y un ipod 80GB. La página es una de éstas que últimamente tanto abundan de streaming de video, tipo youtube. Los premios se daban de la siguiente forma: un iPod shuffle al que más vídeos subiese en un día y un iPod 80GB al mejor vídeo de cada semana (podéis ver todavía las bases del concurso en esta página).

A mí me avisó mi colega The Rider la última semana del concurso, por lo que me pilló un poco por los pelos. El día que me avisó me puse a recopilar vídeos como un loco, y el día siguiente me dediqué a subirlos a la paginilla. Al final todo resultó como él decía, fácil, sencillo y para toda la familia. Un par de días después del día en el que me puse a subir los videos ya aparecí en la lista de ganadores del ipod shuffle.

Aquí no quedó la cosa. El 2 de julio se publicaba el ganador del último premio, el ipod de 80 gigas para el mejor vídeo de la última semana, y para enorme sorpresa mía, mi nombre apareció como ganador del mismo (todavía se puede consultar la lista de ganadores en esta página). Lo que tengo es curiosidad por saber por qué vídeo me lo dieron, ya que no figura en ningún sitio, y es una duda que me atormenta xD.

Lo irónico de todo este asunto es que cuando me compré la Nintendo DS estuve un par de semanas intentando decidirme entre la DS y el iPod shuffle, decantándome por la primera, y ahora tengo las dos cosas (más una extra :P ). Quizás si me hubiese decidido por el iPod, no habría concursado y no habría ganado nada.

Por otro lado diré que los iPod, tanto uno como el otro, me decepcionaron (y mucho). A la hora de reproducir ambos hacen lo que deben hacer y como deben hacerlo, sin problemas, pero a la hora de gestionar el contenido, es una pesadilla. El iTunes, más que un programa, parece una broma pesada, y como no uso windows prácticamente para nada, me veo obligado a buscar alternativas en Linux (y algunas no son mucho mejores). Para gestionar la música, la mejor alternativa que encontré es el Amarok, que le da mil vueltas al iTunes, además, y para vídeos en el iPod tocho, utilizo el gtkpod, que tampoco está mal. Lo que me trajo (y me trae) de cabeza es meter fotos en el iPod tocho. El programa que utilizo es el gpixpod, pero a base de un castigo a elegir entre dos: que tarde hora y media en leer la base de datos del ipod o que se haga una copia en el disco duro que ocupa 3 gigas y medio.

En definitiva, estoy muy contento por haber ganado estos dos reproductores, pero bastante decepcionado por los reproductores en sí. Me alegro de tenerlos y los utilizo, pero no habría pagado por ellos :P .

Mis nuevos nenés