Un día quería pasar unos vídeos FLV a fotrmato MP3, dichos vídeos los había descargado de YouTube. Bueno, busqué rápidamente programas que hicieran esa conversión usando Linux, resulta que no encontré ningún programa que conviertiera todos los vídeos uno tras otro contenidos en una carpeta.
De tal manera que, decidí crear mi script, para solucionar este problema. Cuando usamos Linux, sabemos que la consola siempre es una opción para terminar lo que empezamos, siempre y cuando no sea para ver vídeos.
Bueno, el script que creé es el siguiente, ojo, no olviden que se necesita tener instalado ffmpeg para que el script funcione:
#!/bin/bash
# convertir .flv a .mp3 recursivamente
# LiNuXiToS- Fernando Merino
# carpeta = ruta de la carpeta que contiene los archivos a convertir
# archivo = variale para obtener los nombres de los archivos
# noantarch = variable que contiene el nombre anterior del archivo
# nonuearch = variable con el nuevo nombre del archivo
if [ -z $1 ];then echo Ingrese directorio destino; exit 0;fi
find "$1" -depth -name '*' | while read archivo ; do
carpeta=$(dirname "$archivo")
noantarch=$(basename "$archivo")
nonuearch=$(basename "${archivo%.[Ff][Ll][Vv]}")
if [ "$noantarch" != "$nonuearch" ]; then
ffmpeg -i "$carpeta/$noantarch" -ab 320k "$carpeta/$nonuearch.mp3" </dev/null
#rm "$carpeta/$noantarch"
fi
done
Copiar y pegar el texto en un archivo de videoAmp3.sh aplicar permisos de ejecución como se muestra:
Ventajas del script:
http://stackoverflow.com/questions/10083498/bash-script-to-convert-all-flv-file-in-a-directory-to-mp3
http://stackoverflow.com/questions/19562785/handbrakecli-bash-script-convert-all-videos-in-a-folder
http://stackoverflow.com/questions/10083498/bash-script-to-convert-all-flv-file-in-a-directory-to-mp3#21363118
#!/bin/bash
# convertir .flv a .mp3 recursivamente
# LiNuXiToS- Fernando Merino
# carpeta = ruta de la carpeta que contiene los archivos a convertir
# archivo = variale para obtener los nombres de los archivos
# noantarch = variable que contiene el nombre anterior del archivo
# nonuearch = variable con el nuevo nombre del archivo
if [ -z $1 ];then echo Ingrese directorio destino; exit 0;fi
find "$1" -depth -name '*' | while read archivo ; do
carpeta=$(dirname "$archivo")
noantarch=$(basename "$archivo")
nonuearch=$(basename "${archivo%.[Ff][Ll][Vv]}")
if [ "$noantarch" != "$nonuearch" ]; then
ffmpeg -i "$carpeta/$noantarch" -ab 320k "$carpeta/$nonuearch.mp3" </dev/null
#rm "$carpeta/$noantarch"
fi
done
Copiar y pegar el texto en un archivo de videoAmp3.sh aplicar permisos de ejecución como se muestra:
chmod +x videoAmp3.sh
Ejecución: ir al directorio en el que está el archivo videoAmp3.sh./videoAmp3.sh /ruta-de-la-carpeta-contenedora-de-los-videos
ejemplo:
./videoAmp3.sh ~/Vídeos/videoclips
Ventajas del script:
- Conversión rápida ya que no necesita interfaz gráfica
- Compatibilidad con distros Linux
- Funciona con archivos soportados por ffmpeg
- Funciona con archivo con nombres con espacios
- Si en la carpeta hay varios tipos de videos, por ejemplo, mp4, avi, flv, wma, ect., es necesario modificar la instrucción que dice nonuearch=$(basename "${archivo%.[Ff][Ll][Vv]}") en la parte de [Ff][Ll][Vv] es para la extensión del archivo original, es decir, uniendo esas tres letras se encuentran las combinaciones posibles de por ejemplo del formato .flv, si fuera para mp4, entonces quedaría [Mm][Pp][4] y así sucesivamente.
- Necesario modificar al tipo de archivo al que se obtendrá de salida, es más que obvio esta instrucción. En la línea ffmpeg -i "$carpeta/$noantarch" -ab 320k "$carpeta/$nonuearch.mp3" </dev/null es necesario indicar el tipo de archivo de salida, por ejemplo a wma.
ffmpeg -formats
Y les desplegará la lista con los formatos compatibles. Y eso es todo.http://stackoverflow.com/questions/10083498/bash-script-to-convert-all-flv-file-in-a-directory-to-mp3
http://stackoverflow.com/questions/19562785/handbrakecli-bash-script-convert-all-videos-in-a-folder
http://stackoverflow.com/questions/10083498/bash-script-to-convert-all-flv-file-in-a-directory-to-mp3#21363118
0 comments:
Publicar un comentario