小编Bro*_*ian的帖子

MediaCodec createInputSurface

我想使用MediaCodec将Surface编码为H.264.

使用API​​ 18,有一种方法可以通过调用createInputSurface()然后在该表面上绘制来对表面内容进行编码.

我在createInputSurface()上得到IllegalStateException.这是额外的logcat输出:

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
Run Code Online (Sandbox Code Playgroud)

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

android surfaceview h.264 mediacodec

8
推荐指数
1
解决办法
6333
查看次数

标签 统计

android ×1

h.264 ×1

mediacodec ×1

surfaceview ×1