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

Acabo de comstackr 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, se ejecuta 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, un comando similar ejecutado como shell-script en un servicio de Automator falla:

 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 comstackción precomstackda de ffmpeg en mi sistema ubicado en:

 /Applications/Scriptlets/ 

Y mi shell-script de Automator tenía la ruta completa (/ Applications / Scriptlets / ffmpeg) en lugar de solo ffmpeg; y funcionó bien. Sin embargo, hoy decidí comstackr una copia nueva de ffmpeg usando MacPorts y eliminé la versión anterior de mi carpeta de Aplicaciones / Scriptlets. Ahora, este ffmpeg funciona bien en Terminal, pero da un error cada vez que bash 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 las puede encontrar.

Intente expandir su script para incluir la ruta absoluta o completa al ffmpeg que 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, ingrese su perfil de Terminal.app usando el enfoque de esta pregunta, ¿ Mi flujo de trabajo del automatizador falla porque no puede encontrar el comando git dentro del comando ‘Ejecutar el script de shell’? Necesito ayuda