現在、mpeg4 エレメンタリ ビデオ ストリームに基づいて正確なシークを実行できるプレーヤーの開発を試みています。私は計画段階にあり、物事をどのように進めるかを決めようとしています。始める前にアドバイスが欲しいです. 注意すべき点は次のとおりです。
- ファイルのエンコーディングを完全に制御できます。
- 元のコンテンツは I フレームのみになります
- FFmpeg はエンコード/デコード ライブラリです。
- オーディオは今のところ無視できます。ビデオストリームのみを扱います。
- フレームの正確なシークを実装する必要があります
したがって、コンテンツをエンコードするときに、どのタイプのフレーム (I、P、B) がエンコードされているかを照会して、シーク操作用の追加のインデックス ストリームを構築できますか。そうでない場合は、エンコード後に GOP を照会して I フレームを見つけることができます。
再生に関しては、ユーザーは特定の時間を入力してそのフレームに移動できる必要があります (現時点では、最も近い I フレームが適しています)。GOP が閉じており、長さがかなり短い (たとえば 15 フレーム) と想定できます。私の考えは、エンコード中に作成したインデックス ストリームをクエリし、要求された時間のストリームへの関連する距離を決定することです。
ファイルを再生するときに FFMpeg ライブラリを使用してシークする方法がわかりません。
誰かが似たようなことをしたことがありますか?