2017-08-31 11 views
0

私は、ビットマップのセットを持っているH264ビデオにエンコードする必要があるが、ビットマップはMediaCodecに送信されたRGBAバイト[]に変換するが、例外:java.nio.BufferOverflowExceptionんアンドロイドMediaCodecサポートRGBAエンコーディング

I Android MediaCodecがRBGAエンコーディングをサポートしているかどうかを知りたいですか?

誰でもこれを解決する方法を知っていますか?

また、H.264へのエンコードを実現する別の回避策はありますか?

ありがとうございました!

+0

この質問の1つ目のコメントでは、この質問の1番目のコメントhttps://stackoverflow.com/questions/26463556/why-doesnt-the-decoder-of-mediacodec-output-a-unified-yuv-formatlike- yuv420pそれは言及されています: "glReadPixels()を使用して出力面からRGBピクセルを抽出することができます"おそらくあなたの質問に答えます。 – ziMtyth

+0

サーフェスを使用できないため、動作しません –

答えて

0

あなたはOpenGL ESのテクスチャにロードし、エンコーダの入力面にレンダリングすることができ、そのクラスを見てみましょう、RGBA 32ビットをサポートしているようMediaCodecInfoクラス。 (多分これは役に立ちます:https://github.com/google/grafika

もう1つのオプションは、エンコーダがサポートするカラーフォーマットに変換することです。 (例えばlibyuvを使用して)

-1

私は、Androidの開発者向けページでseeができますそれができるならば:)

+0

ありがとう、MediaCodecInfo.CodecCapabilities.COLOR_Format32bitABGR8888はこのカラーフォーマットですが、一部の電話機ハードウェアはこのカラーフォーマットをサポートしていません –

関連する問題