私がする必要があるのは、ビデオフレームをデコードし、台形の表面にフレームをレンダリングすることです。開発プラットフォームとしてAndroid2.2を使用しています
デコードされたフレームにアクセスする必要があるため、メディアプレーヤーサービスを使用していません。
これが私がこれまでに持っているものです:
- デコードされたビデオフレームを抽出するためにstagefrightフレームワークを使用しています。
- 次に、各フレームがYUV420からRGB形式に変換されます
- 変換されたフレームはテクスチャにコピーされ、OpenGLサーフェスにレンダリングされます
- 私はProcessingを使用しており、OpenGL呼び出しを直接使用していないことに注意してください。
だから今私の問題は
- 私はstagefrightでのみmp4ファイルをデコードできます
- レンダリングが遅すぎます。320x420フレームの場合は約100msです。
- オーディオはまだありません。ビデオをレンダリングすることしかできませんが、オーディオフレームの再生を同期する方法がわかりません。
だから私の質問のために...
- 他のビデオフォーマットをサポートするにはどうすればよいですか?私はstagefrightを使用しますか、それともffmpegに切り替える必要がありますか?
- どうすればパフォーマンスを向上させることができますか?少なくとも720pをサポートできるはずですか?
- 処理ではなく、OpenGL呼び出しを直接使用する必要がありますか?これによりパフォーマンスが向上しますか?
- 再生中にオーディオフレームを同期するにはどうすればよいですか?