2011-08-12 23 views
4

私はすべてのレンダリングをiOS上で行う必要があります。iOSでAVPlayerやMovie Playerを使わずにビデオを再生する方法

私の現在の選択はOpenGL ESですが、プロファイリングの結果(主にglTexImage2D)からCPUが多すぎます。

私の必要性のためのより速い選択肢はありますか?

ありがとうございます!

+1

テクスチャの作成のみ、またはフレームごとに 'glTexImage2D()'を使用していますか? – genpfault

+2

私は、OpenGL ES経由で画面にビデオを表示することがあなたの制限要因だとは思っていません。ビデオ処理アプリケーションでは、iPhone 4カメラからキャプチャして、簡単に60 FPSでスクリーンに戻すことができました:http://www.sunsetlakesoftware.com/2010/10/22/gpu-accelerated-video -process-mac-and-ios。あなたのボトルネックは他の場所にある必要があります。 –

+0

@genpfaultフレームごとにglTexImage2Dを使用します。これは、画像を画面に描画する方法です。私はOpengGLには全く慣れていません –

答えて

0

AVPlayerは、GPUアクセラレーションとllvm最適化を使用して解凍するようにコードが最適化されているため、高速になります。 OpenGL ESを使いたいのであれば、おそらくEAGLContextを使ってテクスチャシェイダーを作成し、他の低レベルの最適化を行うでしょう。私たちのアプリは、非常に低いCPU負荷で高いフレームレートでビデオの上に複数のレイヤーを合成することができます。

+0

しかし、AVPlayerは私のビデオを圧縮してフォーマットすることはできません。このクラスは、標準的なファイルまたはストリーミング再生専用であることがわかります –

0

egmaxを使用してopenmaxアプリケーション層の統合を使用することができます。これは、eglを使用してopengl es 2.0にビデオをストリーミングし、保存または表示することができます。スニペットがあれば助けてもらえます:)

関連する問題