方法 B: タイムスタンプに基づく正確なスキップ(推奨)

より正確かつ安定したスキップ方法です。

  1. 動画のフレームレートから、10フレーム分の正確な時間間隔 ΔT を計算します。

    • 60fpsの場合、1フレームは 1/60 秒。10フレームは 10×(1/60)=1/6 秒。
  2. デコードされたフレームが持つ**プレゼンテーションタイムスタンプ(PTS)**を追跡します。

  3. 前回の処理フレームのPTSから、現在のフレームのPTSが ΔT 以上離れている場合にのみ、そのフレームを処理します。

この方法により、VFR(可変フレームレート)の動画であっても、フレームレートの変動に関わらず、時間的に均等な間隔(60fpsの動画であれば「ほぼ10フレームごと」)で画像を取得することができ、60fpsを10fpsの動画に変換して毎フレーム取得するのと結果がほぼ同じになります。

Gemini - WailsでのWebRTC, RTMP, SRT比較