私のアプリケーションでは、通常とは異なる方法でビデオを再生する必要があります。特別な目的のためのインタラクティブ プレーヤーのようなもの。
ここでの主な問題:
- ビデオの解像度は 200*200px から 1024*1024 px までです。
- 速度を -60 FPS から 60 PFS に変更できる必要があります (この場合、選択した速度に応じてビデオを遅くまたは速く再生する必要があります。負の場合は、ビデオを逆方向に再生する必要があります)。
- ビデオの上に線とオブジェクトを描画し、画像で拡大縮小する必要があります。
- コンテンツが画面サイズを超える場合、画像をズームしてパンする機能が必要です
- このビデオの明るさ、コントラスト、色を反転する機能が必要です
今、私は次のことをしています:
- ビデオを JPG フレームに分割しました
- 1秒あたりN回のタイマーを作成しました(再生速度制御)
- OpenGLで新しいテクスチャ(次のJPGフレーム)を描画する各タイマーティック
- OpenGL ES変換(変換、スケーリング)で遊んでいるズームとパンの場合
320*240 ピクセルを使用するまでは問題ないように見えますが、512*512 ピクセルを使用すると再生速度が低下します。おそらくタイマーの動作の問題、おそらくOpenGLです。高いプレイ レート (10 ~ 15 FPS 以上) で大きなテクスチャを開こうとすると、アプリケーションがメモリ警告でクラッシュすることがあります。
この問題を解決するためのベスト プラクティスは何ですか? どの方向に掘ればいいですか?cocos2d や他のゲーム エンジンが役に立ちますか? Mb JPG はテクスチャに最適なソリューションではありません。PNG や PVR を使用する必要がありますか?