Konvertieren Sie MKV rekursiv in MP4 mit avconv

Konvertieren Sie MKV rekursiv in MP4 mit avconv

Ich muss ein Skript erstellen, das alle MKV-Dateien in einem Startverzeichnis und allen darunter liegenden Unterverzeichnissen in das MP4-Format konvertieren kann.

Ich konnte Dateien einzeln konvertieren, indem ich Folgendes verwendet habe:

avconv -i input.mkv -codec copy output.mp4

und das Konvertieren aller Dateien im aktuellen Verzeichnis wäre nicht allzu schwierig. Aber nach stundenlanger Suche kann ich keine Möglichkeit finden, dies rekursiv zu tun.

Ich habe herausgefunden, dass ich den Befehl „find“ verwenden muss, bin aber relativ neu bei Linux und komme überhaupt nicht damit klar, wie ich „find“ und „avconv“ kombinieren soll, um das zu erreichen, was ich brauche.

Antwort1

Sie müssen rekursives Globbing in Bash aktivieren:

shopt -s globstar

Dann eine einfache Schleife, die den Ausgabedateinamen ersetzt:

for f in **/*.mkv; do avconv -i "$f" -c copy "${f%.mkv}.mp4"; done

Beachten Sie, dass dies bei Videos fehlschlagen kann, die Codecs enthalten, die MP4-Container nicht verarbeiten können. MP4 ist restriktiver als MKV, das grundsätzlich alle Codecs enthalten kann.

verwandte Informationen