Ffmpeg-Fehler: Der zweite Durchgang hat mehr Frames als der erste Durchgang

Ich nehme Videos in Windows 10 mit gdigrab auf, also möchte ich in Durchgang 1 so schnell wie möglich aufnehmen und in Durchgang 2 in eine kleinere Datei codieren. Egal was ich tue, ich bekomme immer diesen Fehler, wenn ich Durchgang 2 ausführe:

[libx264 @ 000000000084ca60] 2. Durchgang hat mehr Frames als 1. Durchgang (460)

[libx264 @ 000000000084ca60] wird trotzdem fortgesetzt, bei konstantem QP=4

Pass 1 command:
    ffmpeg -y -rtbufsize 1500M  -f gdigrab -framerate 29.97 -draw_mouse 0 -offset_x 224 -offset_y 232 -video_size 1280x720 -i desktop -pix_fmt yuv420p -c:v libx264 -r 29.97 -pass 1 -an -tune zerolatency -preset ultrafast -b:v 2600k -crf 0 -f mp4 NUL

Pass 2 command:
    ffmpeg -y -rtbufsize 1500M  -f gdigrab -framerate 29.97 -draw_mouse 0 -offset_x 224 -offset_y 232 -video_size 1280x720  -i desktop -pix_fmt yuv420p -c:v libx264 -r 29.97 -pass 2 -an -tune zerolatency -preset ultrafast -b:v 2600k -crf 22 C:/myVideo.mp4

Ich habe versucht, -crf beim zweiten Durchgang auf 0 zu setzen, bekomme aber immer den gleichen Fehler. Auch das Video, das im zweiten Durchgang geschrieben wird, hat nur das erste Bild des ersten Durchgangs. BEARBEITEN: Auch versucht, -passlogfile ohne Erfolg hinzuzufügen.

Was mache ich falsch?

Antworten (1)

Two-Pass ist dafür gedacht, wenn Sie eine feste Eingabe haben und die Datei vorher analysieren möchten, damit die Codierung für die Ziel-Bitrate und andere Codierungsparameter optimiert wird.

Ihr erster Befehl verwirft die Erfassung. Ihr zweiter Befehl verwendet also die Statistiken aus Durchgang 1, um sie auf eine neue Erfassung anzuwenden, die offensichtlich nicht übereinstimmt.

Verwenden

ffmpeg -y -rtbufsize 1500M -f gdigrab -framerate 30000/1001 -draw_mouse 0 -offset_x 224 -offset_y 232 -video_size 1280x720 -i desktop -c:v libx264 -r 30000/1001 -an -tune zerolatency -preset ultrafast -crf 0 Capture.mp4

und dann

ffmpeg -y -i Capture.mp4 -pix_fmt yuv420p -c:v libx264 -pass 1 -an -b:v 2600k -f mp4 NUL

ffmpeg -y -i Capture.mp4 -pix_fmt yuv420p -c:v libx264 -pass 2 -an -b:v 2600k myVideo.mp4
Danke, ich vermutete, dass ich nicht richtig darüber nachgedacht hatte. Bonuspunkte für -framerate 30000/1001