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!
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 ffmpeg
desea 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
les