ffmpeg trabajando desde la línea de comando en Terminal pero no en un script de shell de Automator.

Acabo de compilar mi propia copia de ffmpeg en mi sistema y se encuentra en la siguiente ruta:

/opt/local/bin/ffmpeg

Cuando ejecuto el siguiente comando en Terminal.app, funciona sin problemas:

ffmpeg -i /Users/Amit/Documents/input.avi -c:v copy -c:a aac -b:a 384k -strict -2 /Users/Amit/Documents/output.m4v

Sin embargo, falla un comando similar que se ejecuta como un script de shell en un servicio de Automator:

for f in "$@"
do
    ffmpeg -i "$f" -c:v copy -c:a aac -b:a 384k -strict -2 "${f%.*}.m4v"
done

Hasta ahora, tenía una compilación precompilada de ffmpeg en mi sistema ubicada en:

/Applications/Scriptlets/

Y mi script de shell de Automator tenía la ruta completa (/Aplicaciones/Scriptlets/ffmpeg) en lugar de solo ffmpeg; y funcionó bien. Sin embargo, hoy decidí compilar una copia nueva de ffmpeg usando MacPorts y eliminé la versión anterior de mi carpeta Aplicaciones/Scriptlets. Ahora, este ffmpeg funciona bien en la Terminal, pero da un error cada vez que intento ejecutarlo desde un script de shell dentro de un flujo de trabajo de Automator. ¿Estoy haciendo algo mal aquí? ¡Por favor ayuda!

¿En qué tipo de proyecto estás trabajando?

Respuestas (1)

El script de Automator no comparte automáticamente su perfil de Terminal.app. Es posible que no se encuentren rutas a herramientas adicionales porque el script de Automator no puede encontrarlas.

Intente expandir su secuencia de comandos para incluir la ruta absoluta o completa a la que ffmpegdesea usar:

for f in "$@"
do
    /opt/local/bin/ffmpeg -i "$f" -c:v copy -c:a aac -b:a 384k -strict -2 "${f%.*}.m4v"
done

Alternativamente, traiga su perfil de Terminal.app usando el enfoque de esta pregunta, My Automator Workflow falla porque no puede encontrar el comando git dentro del comando 'Ejecutar script de Shell'. Necesito ayuda