Android 调用配置时 MediaCodec 错误
Android MediaCodec error when configure is called
我正在尝试将我的 JPEG 帧转换为 MP4 视频,但是当我在 MediaCodec
上调用 configure
时,error/warning 显示在 Logcat
上对象:
E/Codec2Client: createComponent(c2.android.avc.encoder) -- call failed: NOT_FOUND.
该应用程序没有崩溃,我也可以在 MediaCodec
对象上调用 start
...我已经检查了 https://developer.android.com/reference/android/media/MediaFormat[= 中 MediaFormat 的所有必需键19=]
我真的不明白为什么会出现这个错误,谢谢大家的帮助!!!
// JPEG encoder only support this colorFormat as Input
// COLOR_FormatCbYCrY a.k.a Organized as 16bit UYVY
int colorFormat = MediaCodecInfo.CodecCapabilities.COLOR_FormatCbYCrY;
MediaFormat videoFormat = MediaFormat.createVideoFormat(MIME_TYPE, mWidth, mHeight);
// Set some properties. Failing to specify some of these can cause the MediaCodec
// configure() call to throw an unhelpful exception.
videoFormat.setInteger(MediaFormat.KEY_WIDTH, mWidth);
videoFormat.setInteger(MediaFormat.KEY_HEIGHT, mHeight);
videoFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, colorFormat);
videoFormat.setInteger(MediaFormat.KEY_BIT_RATE, BIT_RATE);
videoFormat.setInteger(MediaFormat.KEY_FRAME_RATE, mFrameRate);
videoFormat.setInteger(MediaFormat.KEY_CAPTURE_RATE, mFrameRate);
videoFormat.setInteger(MediaFormat.KEY_DURATION, mDuration_us);
videoFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);
// Create a MediaCodec for the desired codec, then configure it as an encoder with
// our desired properties.
String codecName = codec.getName();
MediaCodec encoder = MediaCodec.createByCodecName(codecName);
encoder.configure(videoFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
错误与不支持的颜色格式有关...
我正在尝试将我的 JPEG 帧转换为 MP4 视频,但是当我在 MediaCodec
上调用 configure
时,error/warning 显示在 Logcat
上对象:
E/Codec2Client: createComponent(c2.android.avc.encoder) -- call failed: NOT_FOUND.
该应用程序没有崩溃,我也可以在 MediaCodec
对象上调用 start
...我已经检查了 https://developer.android.com/reference/android/media/MediaFormat[= 中 MediaFormat 的所有必需键19=]
我真的不明白为什么会出现这个错误,谢谢大家的帮助!!!
// JPEG encoder only support this colorFormat as Input
// COLOR_FormatCbYCrY a.k.a Organized as 16bit UYVY
int colorFormat = MediaCodecInfo.CodecCapabilities.COLOR_FormatCbYCrY;
MediaFormat videoFormat = MediaFormat.createVideoFormat(MIME_TYPE, mWidth, mHeight);
// Set some properties. Failing to specify some of these can cause the MediaCodec
// configure() call to throw an unhelpful exception.
videoFormat.setInteger(MediaFormat.KEY_WIDTH, mWidth);
videoFormat.setInteger(MediaFormat.KEY_HEIGHT, mHeight);
videoFormat.setInteger(MediaFormat.KEY_COLOR_FORMAT, colorFormat);
videoFormat.setInteger(MediaFormat.KEY_BIT_RATE, BIT_RATE);
videoFormat.setInteger(MediaFormat.KEY_FRAME_RATE, mFrameRate);
videoFormat.setInteger(MediaFormat.KEY_CAPTURE_RATE, mFrameRate);
videoFormat.setInteger(MediaFormat.KEY_DURATION, mDuration_us);
videoFormat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, IFRAME_INTERVAL);
// Create a MediaCodec for the desired codec, then configure it as an encoder with
// our desired properties.
String codecName = codec.getName();
MediaCodec encoder = MediaCodec.createByCodecName(codecName);
encoder.configure(videoFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
错误与不支持的颜色格式有关...