首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MediaCodec createInputSurface

MediaCodec createInputSurface
EN

Stack Overflow用户
提问于 2013-07-24 22:25:37
回答 1查看 7.6K关注 0票数 9

我想使用MediaCodec将Surface编码到H.264中。

使用API 18,有一种方法可以通过调用createInputSurface()并在该曲面上进行绘图来从图面编码内容。

我得到了IllegalStateException on createInputSurface()。下面是额外的logcat输出:

代码语言:javascript
复制
D/H264Encoder(17570): MediaFormat: {frame-rate=25, bitrate=1000000, height=600, mime=video/avc, color-format=19, i-frame-interval=75, width=800}
D/NvOsDebugPrintf(  125): NvMMLiteOpen : Block : BlockType = 4 
D/NvOsDebugPrintf(  125): NvRmPowerModuleClockControl on MOD[29] INST[0]
D/NvOsDebugPrintf(  125): NvRmModuleResetWithHold deassert MOD[29] INST[0]
D/NvOsDebugPrintf(  125): NvMMLiteBlockCreate : Block : BlockType = 4 
I/ACodec  (17570): setupVideoEncoder succeeded
E/OMXNodeInstance(  125): OMX_EnableAndroidNativeBuffers failed with error -2147479547 (0x80001005)
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

任何关于新API如何工作的见解都会有帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-24 22:35:52

重要的错误消息是:

代码语言:javascript
复制
createInputSurface requires AndroidOpaque color format

对于曲面输入,必须将颜色格式设置为COLOR_FormatSurface (也称为AndroidOpaque)。

参见示例这里,特别是EncodeAndMuxTest。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17845859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档