方法 B: タイムスタンプに基づく正確なスキップ(推奨)
より正確かつ安定したスキップ方法です。
-
動画のフレームレートから、10フレーム分の正確な時間間隔 ΔT を計算します。
- 60fpsの場合、1フレームは 1/60 秒。10フレームは 10×(1/60)=1/6 秒。
-
デコードされたフレームが持つ**プレゼンテーションタイムスタンプ(PTS)**を追跡します。
-
前回の処理フレームのPTSから、現在のフレームのPTSが ΔT 以上離れている場合にのみ、そのフレームを処理します。
この方法により、VFR(可変フレームレート)の動画であっても、フレームレートの変動に関わらず、時間的に均等な間隔(60fpsの動画であれば「ほぼ10フレームごと」)で画像を取得することができ、60fpsを10fpsの動画に変換して毎フレーム取得するのと結果がほぼ同じになります。