いくつかのフレームが欠落しているビデオファイルがあります。ビデオプレーヤーで再生してフレームごとに進めるか、すべてのフレームを抽出してffpeg
出力画像を確認することで確認できます。
ffmpeg -loglevel trace -i myfile.mp4 myframes/frame%5d.png
抽出の最後には次のようなものが見えます
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
dup=74
これは、74 個の重複フレームがあることを意味します。*** 1 dup!
出力ログには 74 行も含まれています。ただし、これらのフレームに関する情報はありません。重複フレームのフレーム番号 (または時間) を取得するにはどうすればよいでしょうか。また、多重化されたパケットの合計数が既に正しい (2186 + 74 = 2260) のに、なぜデマルチプレックスされるパケットが 2221 個しかないのでしょうか。