ffmpeg funciona exactamente como quiero. Estoy seguro de que lo siguiente no es súper limpio pero funciona con una excepción: simplemente añade el .mp4 al nombre del archivo original para que el nuevo nombre del archivo parezca tener dos extensiones.
He pasado días buscando problemas similares en múltiples foros sin ninguna ayuda real. He intentado copiar y pegar sugerencias con diferentes errores. Realmente me gustaría arrastrar un archivo de vídeo a este applet y hacer que se ejecute ffmpeg de la manera que he especificado en la parte del shell con el archivo de salida resultante que se crea en la ubicación del archivo de entrada, pero con una extensión diferente.
He probado la forma "filesString" y la forma "f\" + "{$f%.*}" y por la razón que sea eso no parece hacer nada más que abrir el terminal con el texto del shell. Otras opciones resultan en un mensaje que dice que "NO HAY SALIDA ADECUADA" lo que finalmente he descubierto que significa, "lo que sea que estés haciendo es genial, pero te voy a dar este error hasta que quites los espacios de tu nombre de archivo/carpetas".
Así que:
-
Para soltar un archivo y que se convierta en un archivo con las normas especificadas. (comprobar)
-
Haz que ese archivo de salida vuelva a la carpeta donde vive el archivo de entrada. (comprobar)
-
Pero sólo con la nueva extensión. (falla)
-
Una ventaja sería editar el script de forma que pudiera soltar una carpeta de archivos en el applet y que se convirtieran de uno en uno. Creo que puedo soltar una carpeta en este momento pero entonces se abren múltiples instancias de Terminal y se procesan simultáneamente. Me gustaría que los archivos se procesaran de uno en uno.
on run {input, parameters}
repeat with file_ in input
tell application "System Events"
set inputFilename to name of (get properties of file_)
end tell
set inputFilePath to quoted form of (POSIX path of file_)
set outputFilePath to quoted form of (POSIX path of file_)
tell application "Terminal"
activate
do script "/usr/local/Cellar/ffmpeg/3.0.2/bin/ffmpeg -i " & inputFilePath & " -aspect 4:3 -vf yadif=0:-1:0,scale=720:486 -acodec libfdk_aac -cutoff 20000 -vcodec libx264 -preset medium -pix_fmt yuv420p " & outputFilePath & ".mp4"
end tell
end repeat
return input
end run