ffmpeg che funziona dalla riga di comando in Terminale ma non in uno script di shell di Automator!

2

Ho appena compilato la mia copia di ffmpeg sul mio sistema e si trova nel seguente percorso:

/opt/local/bin/ffmpeg

Quando eseguo il seguente comando in Terminal.app, gira liscio:

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

Tuttavia, un comando simile eseguito come script di shell in un servizio di Automator fallisce:

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

Fino ad ora, ho avuto una build precompilata di ffmpeg sul mio sistema che si trova in:

/Applications/Scriptlets/

E il mio script di shell di Automator aveva il percorso completo (/ Applications / Scriptlets / ffmpeg) invece di solo ffmpeg; e ha funzionato bene. Tuttavia, oggi ho deciso di compilare una nuova copia di ffmpeg usando MacPorts e rimosso la versione precedente dalla mia cartella Applications / Scriptlets. Ora, questo ffmpeg funziona bene in Terminal ma dà un errore ogni volta che cerco di eseguirlo da uno script di shell all'interno di un flusso di lavoro di Automator. Sto facendo qualcosa di sbagliato qui? Per favore aiuto!

    
posta TheLearner 15.05.2014 - 13:28
fonte

1 risposta

6

Lo script Automator non condivide automaticamente il tuo profilo Terminal.app. Non è possibile trovare percorsi per strumenti aggiuntivi perché lo script di Automator non è in grado di trovarli.

Prova ad espandere lo script per includere il percorso assoluto o completo per ffmpeg che desideri utilizzare:

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

In alternativa, inserisci il tuo profilo Terminal.app utilizzando l'approccio a questa domanda, Il mio flusso di lavoro di Automator fallisce perché non riesce a trovare il git comando all'interno del comando 'Esegui script shell'? Hai bisogno di aiuto .

    
risposta data 15.05.2014 - 14:06
fonte

Leggi altre domande sui tag