Ich habe einige Videodateien, bei denen ein paar Frames fehlten. Ich kann das überprüfen, indem ich sie in einem Videoplayer abspiele und Frame für Frame weiterschalte oder indem ich alle Frames extrahiere und ffpeg
dann die Ausgabebilder überprüfe
ffmpeg -loglevel trace -i myfile.mp4 myframes/frame%5d.png
Am Ende der Extraktion sehe ich so etwas wie
frame= 2260 fps= 24 q=-0.0 Lsize=N/A time=00:01:15.33 bitrate=N/A dup=74 drop=0 speed=0.812x
video:2714746kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
Input file #0 (myfile.mp4):
Input stream #0:0 (video): 2221 packets read (57126959 bytes); 2186 frames decoded;
Total: 2221 packets (57126959 bytes) demuxed
Output file #0 (myframes/frame%5d.png):
Output stream #0:0 (video): 2260 frames encoded; 2260 packets muxed (2779899741 bytes);
Total: 2260 packets (2779899741 bytes) muxed
2186 frames successfully decoded, 0 decoding errors
Wir können sehen dup=74
, dass es 74 duplizierte Frames gibt. Das Ausgabeprotokoll enthält auch 74 Zeilen *** 1 dup!
. Es gibt jedoch keine Informationen zu diesen Frames. Wie kann ich die Frame-Nummer (oder Zeit) der duplizierten Frames erhalten? Und warum werden nur 2221 Pakete demultiplext, wenn die Gesamtzahl der gemultiplexten Pakete bereits korrekt ist: 2186 + 74 = 2260?