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

2

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, 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 compilación precompilada de ffmpeg en mi sistema ubicada 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í compilar 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 intento ejecutarlo desde un script de shell dentro de un flujo de trabajo de Automator. ¿Estoy haciendo algo mal aquí? ¡Por favor ayuda!

    
pregunta TheLearner 15.05.2014 - 13:28

1 respuesta

6

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 secuencia de comandos para incluir la ruta absoluta o completa al ffmpeg que desea utilizar:

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 encuentra el git comando dentro del comando 'Ejecutar shell script'? Necesito ayuda .

    
respondido por el Graham Miln 15.05.2014 - 14:06

Lea otras preguntas en las etiquetas