AVAssetReader または AVPlayerItemVideoOutput を使用してビデオ フレームをビデオ ファイルから生のピクセル データとして取得し、それを使用して OpenGL テクスチャにアップロードする方法を説明する多くの投稿を読みました。ただし、これにより、(グラフィックス カードではなく) CPU を使用してビデオ フレームをデコードするという不必要な手順が作成され、ピクセル データの不要なコピーが作成されるようです。
AVFoundation がビデオ再生プロセスのすべての側面を所有できるようにする方法はありますが、必要に応じて OpenGL コンテキストに描画できる、作成した OpenGL テクスチャ ID へのアクセスも提供しますか? 誰かがこのようなものに出くわしましたか?
つまり、次の擬似コードのようなものです。
初期化:
- ムービー ファイルを開き、opengl コンテキストを提供します。
- OpenGL テクスチャ ID を取得します。
すべての opengl ループ:
- テクスチャ ID を描画します。