Batch-Codierung in X265 auf dem Mac

Ich muss Tausende von MP4 H264 (meistens) Dateien in einer Ordnerhierarchie in H265 codieren. Leider unterstützt Handbrake, die ich normalerweise verwenden würde, die Stapelverarbeitung von Hierarchien nur dürftig.

Das separate Projekt HB Batch Encoder scheint X265 nicht zu unterstützen.

Vorzugsweise möchte ich eine Methode, die kann

  • Akzeptieren Sie alle Quellfilmdateien in einer ausgewählten Hierarchie
  • Kodiere nach X265 so gut wie Handbrake
  • Passen Sie AAC automatisch durch, codieren Sie jedes andere Audio neu
  • Ausgabe in dasselbe Verzeichnis wie die Quelle
  • Verschieben Sie die Quelle in den Papierkorb
  • Funktioniert unter OS X 10.11

Können Sie ein Tool und eine Methode dafür vorschlagen, die diese Reihe von Funktionen erreicht?

Beachten Sie, dass das Starten von H264-codierten Dateien, um sie in H265 zu codieren, zu einem Qualitätsverlust führen kann, da Sie zwei verlustbehaftete Encoder verketten. Haben Sie keinen Zugriff auf nicht verlustbehaftet codierte Master?
Nö. Dies sind nur Empfehlungssicherungen, daher ist die Qualität nicht kritisch. Mehr Platz kritisch als Qualität.

Antworten (1)

FFMPEG natürlich. Da es sich um eine Befehlszeilenanwendung handelt, kann es problemlos in jeden Batch-Prozess integriert werden, egal wie kompliziert es ist, mit dem Vorteil, dass Sie die Leistungsfähigkeit der Befehlszeile kennenlernen, während Sie gerade dabei sind (hat für mich funktioniert).

Ich habe die h.265-Codierung noch nicht viel erforscht, aber mit Einstellungen, die ich aus dem ffmpeg-Wiki gestohlen habe, können Sie einen Ordner voller .movs folgendermaßen codieren:

cd "/the/path to/your/folder/"
mkdir "for the trash"
for i in *.mov; do;
  ffmpeg -i "$i" -c:v libx265 -preset slow -crf 25 -c:a copy "${i/\.mov/.mp4}"
  mv $i "./for the trash/"
done

Beachten Sie, dass die Dateien dadurch nicht gelöscht, sondern in einen neuen Ordner namens Papierkorb verschoben werden . Dies liegt daran, dass Dateien, die Sie über die Befehlszeile löschen, sofort verschwinden. Sie haben keine zweite Chance, wenn Sie Ihre Meinung ändern oder einen Tippfehler machen. Es gibt Trash-Befehlszeilen-Dienstprogramme , aber das würde den Rahmen dieser Antwort sprengen.

Hier ist der Wiki - Eintrag, auf dem ich meinen ffmpeg-Befehl basierte. Er erklärt die verwendeten Optionen gut (ich bin ein bisschen pingelig in Bezug auf verlustbehaftete Komprimierung, also habe ich die Qualitätseinstellungen etwas aufgewickelt. Ich habe auch die langsame Voreinstellung verwendet, die eine kleinere Datei ergibt Je nachdem, wie viel Zeit Sie haben, können Sie alles von ultrafastbis verwenden placebo, um Ergebnisse zu erzielen, die in der Dateigröße variieren, aber die gleiche Qualität placebohaben in deinem Kopf):

In diesem Beispiel verwenden wir die folgenden Einstellungen:

  • Standard-CRF von 28. Der CRF von 28 sollte visuell dem libx264-Video bei CRF 23 entsprechen, aber zu etwa der Hälfte der Dateigröße führen.
  • mittlere Voreinstellung. Die Voreinstellung bestimmt, wie schnell der Kodierungsprozess sein wird – auf Kosten der Komprimierungseffizienz. Anders ausgedrückt: Wenn Sie sich für ultraschnell entscheiden, wird der Kodierungsprozess schnell ausgeführt, aber die Dateigröße wird im Vergleich zu mittel größer sein. Die visuelle Qualität wird die gleiche sein. Gültige Voreinstellungen sind ultraschnell, superschnell, sehr schnell, schneller, schnell, mittel, langsam, langsamer, sehr langsam und Placebo.
  • AAC-Audio mit 128 kBit/s. Dies verwendet den ffmpeg-internen Encoder, aber unter AAC finden Sie Informationen zu weiteren Optionen.

ffmpeg -i input -c:v libx265 -preset medium -crf 28 -c:a aac -b:a 128k output.mp4

Handbrake funktioniert auch auf der Kommandozeile .

Und schließlich, wenn Sie allergisch gegen die kolossale Leistung sind, die in terminal.app lauert, gibt es GUIs für ffmpeg, wie diese oder diese . Ich bin mir nicht sicher, wie gut sie mit der Stapelcodierung umgehen, und dies ist keine Empfehlung, da ich keine davon verwende. Zeit, sich abzuhärten und die Befehlszeile zu verwenden!

Danke für den Vorschlag. Ich werde ffmpeg auf der Kommandozeile ausprobieren. Ich werde berichten, wie es geklappt hat. Sie scheinen jedoch meine Beschwerde übersehen zu haben, dass die Handbrake-Stapelverarbeitung Hierarchien nicht respektiert, dh Dateien in einer Ordnerhierarchie vermisst.
@MiB Wenn Sie nach einer GUI für ffmpeg suchen, versuchen Sie es mit iffmpeg. Ich habe es ein paar Tage lang benutzt, bis ich das Befehlszeilentool gut im Griff hatte. Es übernimmt die Stapelcodierung, aber Sie müssen herumspielen, um sicherzustellen, dass Sie die Einstellungen für alles im Stapel richtig machen. Wenn Sie sich für technisch versiert halten, aber mit der Befehlszeile nicht vertraut sind, würde ich es empfehlen