So verwenden Sie FFMPEG, um mehrere Mediendateien gleichzeitig unter Linux zu konvertieren

So verwenden Sie FFMPEG, um mehrere Mediendateien gleichzeitig unter Linux zu konvertieren

Zielsetzung

Schreiben Sie ein einfaches Bash -Skript für die FFMPEG -Batch -Dateikonvertierung.

Verteilungen

Dies funktioniert auf allen Linux -Verteilungen.

Anforderungen

Eine funktionierende Linux -Installation mit installiertem FFMPEG.

Konventionen

  • # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
  • $ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Einführung

FFMPEG immens leistungsfähig, wenn es darum geht, Mediendateien zu manipulieren und zu konvertieren, aber es fehlt eine wichtige Funktion. FFMPEG hat nicht die Möglichkeit, mehrere Dateien gleichzeitig zu verarbeiten. Also, was können Sie dagegen tun?? Sie sind ein Linux -Benutzer. Sie werden nicht dort sitzen und immer wieder den gleichen Befehl eingeben, oder?

Ffmpeg ist völlig skriptierbar. Sie können also ein einfaches Bash -Skript schreiben. Während das nach viel klingt, ist es aber wirklich nicht. Das Skript wird weniger als 20 Zeilen Bash sein.

Richten Sie die Datei ein

Starten Sie mit dem Einrichten Ihrer Datei. Machen Sie es überall, wo Sie mögen.

$ touch ffmpeg-Batch.Sch

Dann machen Sie es ausführbar.

$ chmod +x ffmpeg-Batch.Sch

Öffnen Sie die Datei und richten Sie sie auf, um mit dem Schreiben zu beginnen.

#! /Bin/Bash

Planen Sie Ihre Variablen

Sie müssen mehrere Argumente an Ihr Skript weitergeben, wenn Sie möchten, dass es flexibel genug ist, um die meisten Szenarien zu bewältigen, für die Sie FFMPEG verwenden würden. Aus diesem Grund brauchen Sie einige Variablen. Sicher, Sie können die Roheingänge verwenden, aber es wird viel schwieriger sein, den Überblick zu behalten.

srcext = $ 1 Destext = $ 2 srcdir = $ 3 destdir = $ 4 opts = $ 5

Sie haben insgesamt fünf Variablen; Eine Quellerweiterung, ein Ziel oder eine resultierende Erweiterung, ein Quellverzeichnis, ein Zielverzeichnis und Ihre Optionen. Die Optionen sind alle Optionen, die Sie in Ihrem FFMPEG -Befehl gewünscht haben. Es gibt andere Möglichkeiten, dies zu tun, aber sie wird einfach als Saite weitergegeben, und es ist super einfach.

Die Schleife

Dieses Drehbuch dreht sich um a für Schleife über den Inhalt des angegebenen Verzeichnisses iterieren. Sie müssen diese Schleife als nächstes erstellen. Beginnen Sie mit der Einrichtung der Idee.

für den Dateinamen im Ordner; tun getan

Natürlich, ORDNER ist nichts. Sie müssen die Schleife so einrichten srcdir. Sie müssen auch sagen, dass es nur mit einer bestimmten Erweiterung durch die Dateien durchlaufen muss, srcext. Die Kombination, nach der Sie suchen, sieht so aus:

"$ srcdir"/*.$ srcext

Die Wildcard (*) sagt es allen Dateien an, dann die .$ srcext gibt ihm die vollständige Erweiterung, nach der man suchen kann. Die Zitate sind in der Nähe notwendig $ srcdir um zu verhindern, dass es das Ganze als Schnur behandelt und nicht richtig funktioniert.

Das Ganze zusammen sieht so aus:

Für den Dateinamen in "$ srcdir"/*.$ srcext; tun getan

Ihr FFMPEG -Befehl

Sie kennen die grundlegende FFMPEG -Syntax, aber das geht hier nicht zu weit. Das Ganze besteht aus Variablen. Apropos Variablen, Sie werden ein paar weitere brauchen. Um korrekte Teile für den Zielordner und die Dateien zu erhalten, müssen die Original -Dateinamen abgehackt und neu organisiert werden.

Erstellen Sie zunächst eine neue Variable, Basepath und setzen Sie es gleich diesem regulären Ausdruck: $ Dateiname%.*.

Basepath = $ Dateiname%.*

Der Ausdruck steigt alles nach dem an . Aus dem Pfad bedeutet die Erweiterung.

Jetzt müssen Sie den Weg selbst loswerden. Um das zu tun, setzen Sie Grundname gleich $ Basepath ##*/.

BaseSeName = $ Basepath ##*/

Das kümmert sich um alles andere, bis zum Dateinamen selbst.

Sie können die Teile zusammenstellen, um den Anruf an ffmpeg jetzt zu bilden.

FFMPEG -I "$ Dateiname" $ ​​opts "$ destdir"/"$ BASENAME"."$ destext"

Wie Sie sehen können, ist es dasselbe wie ein normaler Anruf bei FFMPEG, aber die Variablen verwendet. Das komplizierteste Stück ist das Ziel, aber es kombiniert nur die einzelnen Teile des Ziels, um einen ganzen Pfad mit Dateiname und Erweiterung zu bilden.

Einpacken

Wenn Sie möchten, können Sie eine Erfolgsnachricht angehen, wenn die Konvertierung abgeschlossen ist. Wirf es am Ende deines Drehbuchs nach dem für Schleife.

echo "Conversion von $ srcext auf $ Destext vollständig!"

Das Ganze sollte ungefähr so ​​aussehen:

#! /bin/bash srcext = $ 1 Destext = $ 2 srcdir = $ 3 destdir = $ 4 opts = $ 5 für Dateiname in "$ srcdir"/*.$ srcext; basepath = $ Dateiname%.* Basisame = $ Basepath ##*/ ffmpeg -i "$ Dateiname" $ ​​opts "$ destdir"/"$ BASENAME"."$ destext" done echo "Conversion von $ srcext auf $ Destext vollständig!"

Führen Sie Ihr Skript aus

Schließlich können Sie jetzt Ihr Skript ausführen, um Stapeldateikonvertierungen durchzuführen. Schauen Sie sich dieses Beispiel an, um zu sehen, wie die Syntax aussieht.

$ ffmpeg-Batch.sh flac mp3/path/to/file/path/to/dest '-ab 320K'

Es ist nicht so viel mehr als normal mehr als normal. Erst jetzt konvertieren Sie einen gesamten Verzeichnis im Wert von Dateien anstelle von nur einem.

Gedanken schließen

Dieses Skript sollte in den meisten Situationen flexibel genug sein, und dazu gehört auch Video. Sie können das Skript einem lokalen oder system breiten hinzufügen Behälter Pfad, um es von außerhalb seines Verzeichnisses leichter zugänglich zu machen.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Ubuntu 20.04 FFMPEG -Installation
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Linux -Befehle: Top 20 wichtigste Befehle, die Sie benötigen, um…
  • Wie man Musikdateien mit FFMPEG konvertieren
  • Linux -Download
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Beste Linux -Distribution für Entwickler
  • Grundlegende Linux -Befehle
  • Linux -Konfigurationsdateien: Top 30 am wichtigsten