MediaCodec を使用してエンコーダーを適用しようとしています。私が使用する MediaFormat は次のとおりです。
MediaFormat mediaFormat = MediaFormat.createVideoFormat("video/mp4v-es", 640, 480);
mediaFormat.setInteger(MediaFormat.KEY_BIT_RATE, 125000);
mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, 15);
mediaFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT,MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV422PackedSemiPlanar);
mediaFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);
デモは仮想マシン上でうまく動作します。しかし、実機(Samsung Galaxy Tab GT3113)でテストすると失敗します。デモは行でエラーを報告しますcodec.configure(mediaFormat, null /* surface */, null /* crypto */, MediaCodec.CONFIGURE_FLAG_ENCODE /* flags */); codec.start();
logcat は言います:
06-24 15:16:54.582: E/ACodec(3146): [OMX.TI.DUCATI1.VIDEO.MPEG4E] はカラー形式をサポートしていません 19 06-24 15:16:54.582: E/ACodec(3146): [ OMX.TI.DUCATI1.VIDEO.MPEG4E] configureCodec がエラー -2147483648 を返す
06-24 15:16:54.582: E/MediaCodec(3146): コーデックがエラーを報告しました。(omx エラー 0x80001001、内部エラー -2147483648)
Android が提供するすべてのKEY_COLOR_FORMATを試しましたが、どれも機能しません。誰でも私を助けることができますか?ありがとう!