当使用OMX.google.h264.encoder时,我无法创建媒体/ avc编码器,我得到一些非常奇怪的输出:
I/VideoStreamer? Selected color format: 21
I/VideoStreamer? Format: {height=480, slice-height=480, crop-left=0, width=640, crop-bottom=480, crop-top=0, mime=video/avc, stride=640, crop-right=640}
I/VideoStreamer? Width: 640 Height: 480
I/OMXClient? Using client-side OMX mux.
I/SoftAVCEncoder? Construct SoftAVCEncoder
I/ACodec? setupVideoEncoder succeeded
E/OMXNodeInstance? OMX_GetExtensionIndex failed
E/SoftAVCEncoder? Failed to initialize the encoder: -8
E/ACodec? [OMX.google.h264.encoder] ERROR(0x80001001)
E/MediaCodec? Codec reported an error. (omx error 0x80001001, internalError -2147483648)
Run Code Online (Sandbox Code Playgroud)
而代码适用于其他设备.我如何弄清楚为什么OMX.google.h264.encoder失败并出现如此无用的错误?
供参考:我探测可用编码器列表,然后探测支持的颜色格式列表.我解决了一些设备在颜色格式19上崩溃的问题,因为它强制使用彩色格式21.我可以提供代码示例,但这是特定的编码器,我不知道如何弄清楚这个错误告诉我的是什么.
编辑:发现失败AVCENC_LEVEL_FAIL但仍不确定这是告诉我的.据我所知,不可能设置AVC编码器应该使用的级别.
您的设备的问题在于它可能缺少硬件编码器。软件 h264 编码器的功能非常有限 - 除其他外,它会删除高质量的配置文件,因为这些配置文件可能在低端设备上表现不佳。
如果您正在使用自己的自定义设备,您可能希望通过将编码器级别设置为 来消除此限制AVC_LEVEL5_1。这将解锁您的 stagefright 库,您将能够使用软件编解码器对高质量视频进行编码。
| 归档时间: |
|
| 查看次数: |
3893 次 |
| 最近记录: |