Este fin de semana estuve en mi casa con el nuevo celular de mi esposa, un Sony Ericsson K550i y me pidió que le hiciera un ringtone de una canción que le gustaba. El problema fue que no tenía ningún software para edición de audio como Audacity en mi laptop de casa en la que tenía instalado tan solo ubuntu más los codecs para ver películas y escuchar música.
Y el problema mayor, no tengo Internet en casa para hacer un super “sudo apt-get install …” por lo que tuve que sentarme un tiempito a revisar que podía hacer con lo que tenía.
Leí un poco de la ayuda de ffmpeg, mplayer, mencoder pero todos estos los podía usar para la edición de video en su mayoría, hasta que me tope con un comando muy simpático de las librerías de gstreamer el gst-launch-0.10 el cual hace muchas cosas, pero lo que más me gusto es que se podía hacer una lista de comandos al estilo de pipes de unix, pero para ese comando específico usando signos de admiración (!) para concatenar entrada y salida de audio, decodificación y codificación de archivos.
Al final terminé haciendo un pequeño script que permitía crear un ringtone en formato MP3 desde cualquier formato de entrada, tan solo indicando desde que punto de la canción y por cuanto tiempo querías tu ringtone, el cual comparto a continuación:
#!/bin/bash
# autor: marcelinux
# uso : ring.sh archivo_cancion desde duracion
if [ "$#" -ne "3" ] ; then
echo “uso: “
echo “ring.sh archivo_cancion hh:mm:ss nn “
echo “ archivo_cancion sin espacios en el nombre “
echo “ hh:mm:ss hora, minuto y segundo desde donde comienza “
echo “ nn número de segundos del ringtone “
exit
fi
# transformar una cancion en ringtone
TEMP_WAV=/tmp/ring.wav
CUTT_WAV=/tmp/cut.wav
# primero se transforma la canción a wav parámetro 1
gst-launch-0.10 filesrc location=“$1“ ! decodebin ! audioconvert ! audioresample ! wavenc ! filesink location=$TEMP_WAV
# transformar el .wav a otro .wav con el contenido del ringtone (desde, y duracion) parámetro 2 y 3
ffmpeg -t 20 -ss “$2“ -i $TEMP_WAV $CUTT_WAV
# transformar el ringtone a mp3
gst-launch-0.10 filesrc location=$CUTT_WAV ! wavparse ! audioconvert ! lame ! filesink location=“$1_ring.mp3“
rm $TEMP_WAV
rm $CUTT_WAV
echo “se ha creado el ringtone : $1_ring.mp3“
Copialo en tu editor favorito como texto, y para ejecutarlo le das permisos chmod u+x ring.sh y al llamarlo se le debe pasar 3 parámetros:
path_cancion desde duración
donde:
- path_cancion es la ruta del archivo de entrada
- desde está en formato HH:MM:SS desde donde se comenzará el ringtone
- duración que es el tiempo en segundos que tendrá el ringtone
Este script generará en la misma carpeta del archivo canción, un archivo con sufijo _ring.mp3
Si lo desean en otro formato habría que consultar las opciones de gst-launch.
Esto es algo bueno del mundo linux, sin tener muchas herramientas gráficas puedes hacer cosas funcionales (eso sí leyendo mucho).. jeje
Archivado bajo:Cons, linux , celulares, linux, mp3, ringtones
interesante aporte muy buen trabajo!