通过Android中的MediaCodec进行编码时,我遇到了下一个错误。

实际的编码工作正常,并且输出正确生成,因此我无法真正理解为什么得到此跟踪。它是无害的错误跟踪,还是我缺少什么?

E/ACodec(6438):[OMX.qcom.video.encoder.h263]使用错误-1010 的storeMetaDataInBuffers(输出)失败

接下来是获取跟踪的代码

final int BIT_RATE          = 4000000;
final int FRAME_RATE        = 30;
final int IFRAME_INTERVAL   = 5;
final String MIME_TYPE      = "video/avc";

final MediaFormat format = MediaFormat.createVideoFormat(MIME_TYPE, width, height);
format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface);
format.setInteger(MediaFormat.KEY_BIT_RATE, BIT_RATE);
format.setInteger(MediaFormat.KEY_FRAME_RATE, FRAME_RATE);
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);

MediaCodec encoder = MediaCodec.createEncoderByType(MIME_TYPE);

//---------------------------------
// NEXT LINE PRODUCES THE TRACE
encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
//---------------------------------

最佳答案

这是无害的,大多数设备都可以证明这一点。请参阅http://bigflake.com/mediacodec/上的Q12。

这仅表明编码器不支持信令面编码的第一种方式,因此它使用了其他一些设置方式。 (MediaCodec/ACodec层可以通过多种方式将其告知各个编码器。)

关于android - MediaCodec提供了storeMetaDataInBuffers跟踪错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31899396/

10-10 14:35