¿Cómo aplica este comando de terminal ffmpeg -i $f -ac 2 -codec:a libmp3lame -b:a 48k -ar 24000 -write_xing 0 $f_converted;
a cada archivo en un directorio? ($ f es el nombre del archivo y $ f_converted es el nombre convertido)
Respuesta
¿Demasiados anuncios?Por qué AppleScript o Automator cuando esto puede hacerse sólo en la Terminal? Son todos los archivos en la misma carpeta? ¿A qué tipo de archivo se ha convertido, de su extensión, e.g .mp4?
Si todos los archivos se encuentran en la misma carpeta y sólo los archivos de destino, a continuación, en la Terminal, utilice los siguientes comandos:
cd /path/to/target_files
for f in *.*; do echo ffmpeg -i "$f" -ac 2 -codec:a libmp3lame -b:a 48k -ar 24000 -write_xing 0 "${f%.*}"_converted"${f##*.}"; done
Nota: El para qué comando se ha intencional echo
de comandos para ejecutar una vez para ver lo que el resultado de la forma de la línea de comandos como se va a mirar para ver si se parece correcta. Ejecutar una segunda vez sin el echo
comando para hacer el procesamiento real. Si el tipo de archivo de destino (por ejemplo) .mp4, usted puede cambiar *.*
a *.mp4
o *.[mM][pP]4
, donde el segundo se ocupa de ambos .mp4 y .MP4.
Si usted está utilizando, por ejemplo, de Automator con algunas Buscador de acciones para conseguir el objetivo de archivos, a continuación, ejecute esta en Ejecutar el Shell Script de acción, a continuación, establezca el Pase de entrada: a como argumentos y utilice las siguientes opciones para el comando:
for f in "$@"
do
ffmpeg -i "$f" -ac 2 -codec:a libmp3lame -b:a 48k -ar 24000 -write_xing 0 "${f%.*}"_converted"${f##*.}"
done
-
"${f%.*}"
expande a solo el nombre de archivo de la porción, sin la extensión de archivo. -
"${f##*.}"
expande sólo a la extensión de la porción, sin el nombre de archivo de la parte.