mp4 ファイルをデコードし、ios アプリで OpenGL を使用して描画する必要があります。mp4 ファイルから h264 フレームを抽出してデコードする必要があり、CoreMedia を使用して何ができるかを聞きました。誰もそれを行う方法を知っていますか? CoreMedia の使用例はありますか?
1 に答える
あなたが探しているのは Core Media ではなく、AVFoundation です。特に、AVAssetReader を使用してムービーからロードし、フレームを反復処理します。その後、これらのフレームを OpenGL ES テクスチャとしてアップロードできますglTexImage2D()
。これには、より高速なテクスチャ キャッシュを使用するか、(iOS 5.0 の場合) 使用します。
これを独自に実装したくない場合は、GPUImageフレームワーク内で OpenGL ES を介して AVFoundation ベースのムービーの読み込みと処理を行っています。GPUImageMovie クラスは、ムービーの読み取りとテクスチャへのアップロードのプロセスをカプセル化します。独自のシーンで使用するためにそのテクスチャを抽出したい場合は、それに GPUImageTextureOutput をチェーンできます。これらの両方のクラスの例は、フレームワーク配布内の SimpleVideoFileFilter および CubeExample サンプル アプリケーションで見つけることができます。
これを直接使用することも、GPUImageMovie クラス内で同じアクションを実行するために私が書いたコードを見ることもできます。