FFmpeg に基づいてムービー プレーヤーを作成しました。それは正常に動作します。デコードは非常に高速です。LG P970 (Cortex A8 with Neon) では、YUV2RGB 変換を含む解像度 640 x 424 のビデオ ストリームで平均 70 fps です。ただし、ボトルネックが 1 つあります。キャンバスに描いています。
jnigraphics ネイティブ ライブラリを使用して、ネイティブ側のビットマップに画像データを入力し、このビットマップを SurfaceView の Canvas に描画します。これは非常に単純で一般的なアプローチですが、解像度が 640 x 424 のビットマップの描画には 44 ミリ秒かかるため、fps が 23 に低下し、この手法は使用できなくなります... A/V フレームのデコード全体よりもはるかに多くの時間がかかります!
ビットマップを大幅に高速に描画する方法はありますか? OpenGLES 2 を使用してネイティブ コードで完全にレンダリングしたいと思いますが、遅くなる可能性もあると読みました。ならどうしよう?...
ビットマップをできるだけ速くレンダリングするにはどうすればよいですか?