【質問】API18 MediaCodec & MediaMuxerのサンプルコードでエラー

1,309 views
Skip to first unread message

moon

unread,
Sep 24, 2013, 1:05:52 AM9/24/13
to android-g...@googlegroups.com
はじめまして

API18のサンプルソースコードを見てMediaCodec周りを勉強しているのですが、


に提示されているサンプルソースコード

では、実行時に

E/OMXNodeInstance(  125): createInputSurface requires AndroidOpaque color format
E/ACodec  (17570): [OMX.Nvidia.h264.encoder] onCreateInputSurface returning error -38
W/MediaCodec(17570): createInputSurface failed, err=-38
というエラーが発生して動作しません。
Webを探してみると、
For Surface input, you must set the color format to COLOR_FormatSurface (also known as AndroidOpaque.)
    ※ http://stackoverflow.com/questions/17845859/mediacodec-createinputsurface より
という回答もあるのですが、ソースコードにあるように

MediaFormat format = MediaFormat.createVideoFormat(MIME_TYPE, mWidth, mHeight);

format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);

format.setInteger(MediaFormat.KEY_BIT_RATE, mBitRate);

format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE);

format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);

となっており正しいのでは無いかと思います。

どこらあたりが問題なのか、お分かりになりましたらお教えいただきたく

よろしくお願いします。


MORIHIRO

unread,
Sep 24, 2013, 5:06:14 AM9/24/13
to android-g...@googlegroups.com
問題点は分かりませんが、
EncodeAndMuxTest.java の方を試してみた結果は、
  GalaxyNexus → OK(SDに動画が保存されてました)
  Emulator → NG(encoder名は違いますが、同様のエラー)
でした。

なんとなくデバイス依存の気もしますので、
端末名を記載された方が情報が得られやすいかもしれません。


2013年9月24日火曜日 14時05分52秒 UTC+9 moon:

moon

unread,
Sep 24, 2013, 8:10:32 PM9/24/13
to android-g...@googlegroups.com
MORIHIRO様

ありがとうございます。
実は手元の機材はGalaxy SIIIaが最新でして
しようがないのでエミュレータで実行していました。
なのでMORIHIRO様の結果通りということでしょうか、、、
SIIIが来月4.3にアップデートされるようなので、それまで待つ事にします。
ありがとうございました。
Reply all
Reply to author
Forward
0 new messages