Ffmpeg mit Automator Service automatisieren

6

Ich benutze oft ffmpeg aus der Befehlszeile, um Videodateien in zu konvertieren mp4 auf meinem Mac (läuft Mavericks). Beachten Sie jedoch, dass ich meine Videos NICHT neu codiere. Ich ändere nur den Container von einem avi oder ein mkv zu einem mp4 . Der genaue Befehl, den ich auf Terminal ausführte, lautet wie folgt:

/ Benutzer / Amit / Dokumente / Skripts / ffmpeg -i /input.mkv -c: v copy -c: eine Kopie /output.mp4

Wie man sehen kann, erfordert dies viel Tippen (zum Beispiel den gesamten Pfad für ffmpeg und die Quell- und Zielvideos). Da ich viele solcher Konvertierungen durchführe, wäre es eine große Hilfe von Automator, hier Hilfe zu haben.

Wie kann man also einen Finder Service erstellen, der diese Aktivität automatisiert? Ich würde einen Finder-Service anstelle einer eigenständigen App oder eines Menüelements vorziehen.

TheLearner
quelle

Antworten:

7

Automator Service

Sie können Automator verwenden, um Erstellen Sie einen neuen Dienst oder ein neues Droplet :

  1. Starten Sie Automator.app
  2. Erstellen Sie einen neuen Dienst mit Dienst erhalten Dateien oder Ordner im jede Anwendung
  3. Füge hinzu ein Führen Sie das Shell-Skript aus Aktion
  4. einstellen Pass-Eingabe: zu als Argumente
  5. Ersetzen Sie innerhalb des Skripts echo mit dem untenstehenden Skript.
  6. Speichern Sie Ihren Workflow als Service.

Shell-Skript

for f in "$@"
do
    /Users/Amit/Documents/Scripts/ffmpeg -i "$f" -c:v copy -c:a copy "${f%.*}.mp4"
done

Automator ffmpeg

Weitere Informationen zur Verwendung von Automator finden Sie unter Apple Mac-Grundlagen: Automator .

Graham Miln
quelle
Danke für deine Hilfe. Ich habe genau das gemacht, was Sie vorschlagen, aber es tut nichts. Ich habe den Dienst wie vorgesehen im Finder zur Verfügung, aber wenn ich eine mkv-Datei auswähle und den Dienst ausführe, wird nichts ausgeführt. :(
TheLearner
Egal, ich habe es herausgefunden. Ersetzen Sie einfach "$ fbname" durch "$ {f%. *}. Mp4", wie von Lauri Ranta vorgeschlagen. Verdammt, ich wünschte, ich könnte beide Antworten akzeptieren, da beide gleichermaßen hilfreich für meinen Workaround waren!
TheLearner
4

Sie können auch eine solche Funktion zu einer Shell-Konfigurationsdatei hinzufügen ~/.bash_profile:

mp4() {
  for f; do
    ffmpeg -i "$f" -c copy "${f%.*}.mp4"
  done
}

Dann kannst du einfach laufen mp4 input.mkv.

Sie können ersetzen /Users/Amit/Documents/Scripts/ffmpeg nur mit ffmpeg wenn du dich bewegst ffmpeg irgendwo wie /usr/bin oder wenn Sie hinzufügen PATH=~/Documents/Scripts:$PATH zu ~/.bash_profile.

Lri
quelle