Ich möchte ein Video in H.264 mit Multi-Pass kodieren. Ich habe es versucht :
ffmpeg -y -ss 00: 00: 12.0 -i "c: \ vid \ example.mkv" -vframes 420 -vcodec libx264 -preset veryslow -refs 8 -b: v 1200k -an -pass 1 -f h264 / dev / Null
ffmpeg -y -ss 00: 00: 12.0 -i "c: \ vid \ example.mkv" -vframes 420 -vcodec libx264 -preset veryslow -refs 8 -b: v 1200k -acodec copy -pass 2 "c: \ vid \ encoded.mkv "
aber es zeigt Fehlermeldungen an:
/ dev / null: Keine solche Datei oder kein solches Verzeichnis
ratecontrol_init: Statistiken können nicht geöffnet werden
Fehler beim Öffnen des Encoders für den Ausgabestream # 0: 0 - möglicherweise falsche Parameter wie bit_rate, rate, width oder height
Habe ich etwas falsch gemacht? Ich bin mir nicht sicher, wie ich Multi-Pass mit FFmpeg verwenden soll. Irgendwelche Ideen, wie ich den Fehler beheben kann?
-crf
stattdessen. Sehen FFmpeg Wiki: H.264 Video Encoding Guide Weitere Informationen dazu. Warum hast du hinzugefügt-refs 8
? Das Preset behandelt Refs. Zuletzt können Sie sich ändern-f h264
zu-f matroska
da dies das Containerformat ist, das Ihr zweiter Befehl verwendet.-refs 8
, wird das Preset es vermasseln? Und meinst du, crf ist besser als 2-Pass?-refs
. Hinzufügen-refs
sollte die vom Preset festgelegten Refs außer Kraft setzen, aber ich bin mir nicht sicher, warum Sie das überhaupt einstellen.-qp 0
oder-crf 0
.Antworten:
Windows hat nicht
/dev/null
. BenutzenNUL
stattdessen.Weitere Einzelheiten finden Sie in der FFmpeg-Wiki-Beitrag zur H.264-Codierung .
quelle
Versuchen
Löschen Sie die Dummy-Datei, die im ersten Durchgang nach dem zweiten Durchgang erstellt wurde.
quelle
NUL
. Siehe @ LordNeckbeards Antwort.