gpt4 book ai didi

Android 媒体编解码器配置失败

转载 作者:行者123 更新时间:2023-11-29 21:16:26 25 4
gpt4 key购买 nike

正在关注 this我试过下面的代码来初始化 MediaCodec,但是失败了! github托管项目运行没有任何问题。更新日志如下

01-27 02:02:25.125: I/OMXClient(8956): Using client-side OMX mux.
01-27 02:02:25.140: I/ACodec(8956): setupVideoEncoder succeeded
01-27 02:02:25.140: E/OMXNodeInstance(1910): OMX_GetExtensionIndex failed
01-27 02:02:25.140: A/ACodec(8956): frameworks/av/media/libstagefright/ACodec.cpp:3234 CHECK_EQ( (status_t)OK,mCodec->initNativeWindow()) failed: 0 vs. -2147483648
01-27 02:02:25.140: A/libc(8956): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 8990 (CodecLooper)

代码 - 在 fadden 的回答后更新

format = MediaFormat.createVideoFormat("video/avc", 480, 800);
format.setInteger(MediaFormat.KEY_BIT_RATE,400000 );
format.setInteger(MediaFormat.KEY_FRAME_RATE, 25);
format.setInteger(MediaFormat.KEY_COLOR_FORMAT, MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420Planar);
format.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, 5);

coder = MediaCodec.createEncoderByType("video/avc");
// coder = MediaCodec.createDecoderByType("video/avc");
if(format != null)
coder.configure(format, mSurface, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
Log.e("After","Configure");

最佳答案

看起来您没有配置所有 mandatory keys .

参见 MediaFormat doc,并注意它在哪里说“所有未标记为可选的键都是强制性的”。

更新:

它因断言失败而崩溃。根据行号和断言消息判断,您正在运行 jb-mr1(Android 4.2,API 17);源文件 is here .

它提示“ native 窗口”,这是另一种说法,它不喜欢您传入的表面。由于您正在配置编码器,因此根本不应该传入表面-- 这仅适用于渲染输出。将 mSurface 更改为 null

如果你想通过 Surface 提供输入,你需要使用 MediaCodec#createInputSurface(),它在 API 18 之前可用。

关于Android 媒体编解码器配置失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21325053/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com