Ich habe gerade meine eigene Kopie von ffmpeg auf meinem System kompiliert und sie befindet sich im folgenden Pfad:
/opt/local/bin/ffmpeg
Wenn ich den folgenden Befehl in Terminal.app ausführe, läuft es reibungslos:
ffmpeg -i /Users/Amit/Documents/input.avi -c:v copy -c:a aac -b:a 384k -strict -2 /Users/Amit/Documents/output.m4v
Ein ähnlicher Befehl, der als Shell-Skript in einem Automator-Dienst ausgeführt wird, schlägt jedoch fehl:
for f in "$@"
do
ffmpeg -i "$f" -c:v copy -c:a aac -b:a 384k -strict -2 "${f%.*}.m4v"
done
Bis jetzt hatte ich einen vorkompilierten Build von ffmpeg auf meinem System unter:
/Applications/Scriptlets/
Und mein Automator-Shell-Skript hatte den vollständigen Pfad (/Applications/Scriptlets/ffmpeg) statt nur ffmpeg; und es hat gut funktioniert. Heute habe ich mich jedoch entschieden, eine neue Kopie von ffmpeg mit MacPorts zu kompilieren und die frühere Version aus meinem Applications/Scriptlets-Ordner entfernt. Jetzt funktioniert dieses ffmpeg gut in Terminal, gibt aber einen Fehler aus, wenn ich versuche, es von einem Shell-Skript innerhalb eines Automator-Workflows auszuführen. Mache ich hier etwas falsch? Bitte helfen Sie!
Das Automator-Skript gibt Ihr Terminal.app-Profil nicht automatisch frei. Pfade zu zusätzlichen Tools werden möglicherweise nicht gefunden, da das Skript von Automator sie nicht finden kann.
Versuchen Sie, Ihr Skript so zu erweitern, dass es den absoluten oder vollständigen Pfad zu dem enthält, das ffmpeg
Sie verwenden möchten:
for f in "$@"
do
/opt/local/bin/ffmpeg -i "$f" -c:v copy -c:a aac -b:a 384k -strict -2 "${f%.*}.m4v"
done
Bringen Sie alternativ Ihr Terminal.app-Profil mit dem Ansatz zu dieser Frage ein. Mein Automator-Workflow schlägt fehl, weil er den Git-Befehl im Befehl „Run Shell Script“ nicht findet? Brauche Hilfe .
Les