Ich habe H.265-codierte Dateien, die so ressourcenintensiv sind, dass sie nicht gut abgespielt werden können, und meine Konvertierungssoftware (Mencoder) unterstützt (derzeit) das H.265-Format nicht. Kann ich sie in einer Befehlszeilen-Batchdatei in H.264 konvertieren, um die Dateien mit Devede / OGMrip schnell für die Neukomprimierung zu konvertieren? Beim Durchsuchen dieser Website habe ich keine Diskussion gefunden, daher werde ich eine meiner Meinung nach nützliche Frage und Antwort auf die Frage veröffentlichen.
quelle
sleep 3
ist unnötig (aber möglicherweise nützlich, um die Schleife zu beenden) undINPUT=$1
bedeutungslos, da Sie dies direkt in einer interaktiven Shell ausführen.-c:a copy
anstatt es neu zu codieren.0:0
Verweisen Sie außerdem möglicherweise nicht immer auf Video und0:1
möglicherweise nicht immer auf Audio. Sie können einen Stream-Bezeichner verwenden, um mögliche Probleme zu vermeiden:-map 0:v -map 0:a
Wenn Sie alle Video- und Audiostreams von Eingang 0 oder-map 0:v:0 -map 0:a:0
nur die ersten Video- und Audiostreams von Eingang 0 möchten. Wenn Sie nur den englischen Audiostream möchten:-map 0:m:language:eng
(vorausgesetzt, ist beschriftet).ffmpeg -i $INPUT -vcodec h264 -acodec copy $OUTPUT
. Etwas, das ich jeden Tag benutze und tatsächlich auswendig lernen kann, im Gegensatz zu dem Flut bedeutungsloser Flaggen, für die jede Antwort auf ffmpeg so berüchtigt ist.Batch-Konvertierung von H.265 nach H.264
Diese Beispiele wurden kürzlich geschrieben
ffmpeg
. Sparen Sie sich Ärger und laden Sie eine aktuelle Version herunter . Geben Sie dann dieffmpeg
Binärdatei ein~/bin
oder/usr/local/bin
(möglicherweise müssen Sie sich abmelden und dann anmelden, damit dies bemerkt wird).Matroska-Ausgabe
Dieses Beispiel wird in ein Verzeichnis mit dem Namen ausgegeben
h264vids
.In diesem Beispiel wird davon ausgegangen, dass Ihre Eingaben wie folgt lauten
.mp4
. Wenn nicht, ändern Sie die.mp4
Instanz im Beispiel in Ihren Eingabedateityp, oder verwenden Sie einfach den gierigen Dateityp*
.Passen Sie die
-crf
Qualität und die-preset
Codierungsgeschwindigkeit / -effizienz an. Oder entfernen Sie einfach diese Optionen und verwenden Sie die Standardeinstellungen, die für die meisten ausreichend sind (im Beispiel werden die Standardwerte für diese Optionen verwendet). Weitere Informationen zu diesen Optionen finden Sie im FFmpeg-Wiki: H.264 .MP4-Ausgang
Dieser ist etwas komplizierter. Dies führt eine bedingte Codierung durch, abhängig davon, ob der Audioeingang AAC ist oder nicht. Wenn der Audioeingang AAC ist, wird der Audio-Stream unverändert kopiert (erneut gemuxt), und unnötige Neucodierungen werden vermieden. Wenn der Audioeingang nicht AAC ist, wird er in AAC umcodiert.
Hier ist ein einfaches Skript, das zeigt, wie dies mit
ffprobe
und gemacht wirdffmpeg
. Kopieren und speichern Sie es in das Verzeichnis, in dem sich Ihre zu konvertierenden Videos befinden. Geben Sie ihm die Ausführungserlaubnischmod +x yourscriptname
, und führen Sie es dann mit aus./yourscriptname
.Dieses Beispiel wird in ein Verzeichnis mit dem Namen ausgegeben
h264vids
.In diesem Beispiel wird davon ausgegangen, dass Ihre Eingaben wie folgt lauten
.mkv
. Wenn nicht, ändern Sie die.mkv
Instanz im Beispiel in Ihren Eingabedateityp, oder verwenden Sie einfach den gierigen Dateityp*
.Siehe Hinweis oben zu
-crf
und-preset
.Sie können die Kodierung mit ctrl+ zanhalten und mit fortsetzen
fg
.quelle
In Anbetracht der vorherigen Antworten habe ich Folgendes gefunden:
Dies setzt voraus, dass die Dateien immer einen Namen haben, der auf endet
265.mkv
. Dieses Ende wird durch ersetzt264.mkv
.Wenn Ihre Dateinamen unterschiedlich sind, müssen Sie den Befehl entsprechend anpassen.
quelle