首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于HEVC的Android MediaCodec

用于HEVC的Android MediaCodec
EN

Stack Overflow用户
提问于 2015-01-19 16:01:10
回答 3查看 9.2K关注 0票数 4

我正在研究使用android MediaCodec类来解码HEVC。有这样做的项目的例子吗?

目前,我将解码器配置为:

代码语言:javascript
复制
AMEDIAFORMAT_KEY_MIME: "video/hevc"
AMEDIAFORMAT_KEY_MAX_HEIGHT: 4320
AMEDIAFORMAT_KEY_MAX_WIDTH: 8192
AMEDIAFORMAT_KEY_HEIGHT: 1600
AMEDIAFORMAT_KEY_WIDTH: 3840
AMEDIAFORMAT_KEY_FRAME_RATE: 24
AMEDIAFORMAT_KEY_PUSH_BLANK_BUFFERS_ON_STOP: 1

当使用这个设置时,我没有视频输出。我也尝试过将csd-0csd-1csd-2分别设置为VPS、SPS和PPS,但没有成功。

我在控制台中得到了以下错误,但已经确定它与此无关:

代码语言:javascript
复制
01-19 15:40:36.048: E/OMXNodeInstance(17230): OMX_GetExtensionIndex OMX.google.android.index.storeMetaDataInBuffers failed
01-19 15:40:36.048: E/ACodec(17230): [OMX.google.hevc.decoder] storeMetaDataInBuffers failed w/ err -2147483648

我发现dequeueOutputBuffer总是返回-1。看来,dequeueInputBuffer正在返回queueInputBuffer在从dequeueOutputBuffer获得索引之前排队的索引。

有没有人能破解Android上的HEVC视频?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-21 13:34:52

问题似乎在于分辨率- 512x216没有工作,并造成上述症状,但1920x800工作良好。我问过another question支持什么解决方案。

票数 1
EN

Stack Overflow用户

发布于 2015-01-19 17:00:23

VLC至少有对它的支持,虽然我不确定它到底用过哪些解码器(我可以从您的日志片段中看到您正在使用SW解码器)。据我所知,您需要处理的有关它的唯一细节是以附件b格式(带有启动代码)传递数据包,而不是mp4/mkv格式--就像对H264一样。

有关这方面的一些示例,请参见http://git.videolan.org/?p=vlc.git;a=commitdiff;h=86630a1http://git.videolan.org/?p=vlc.git;a=commitdiff;h=5e19ce93http://git.videolan.org/?p=vlc.git;a=commitdiff;h=7b79a086

另外,关于storeMetaDataInBuffers失败的日志消息是无关的,没有什么可担心的,参见Q12 at http://bigflake.com/mediacodec/

票数 2
EN

Stack Overflow用户

发布于 2015-01-19 19:23:34

也许还想看看MX播放器,它在我的Nexus 7上播放HEVC。但是,如果没有目前对HEVC的任何Android硬件支持,高清内容播放就太紧张了。640 p和更低的分辨率可以发挥良好--尽管在大多数cpu能力较弱的Android设备中可能不是这样。

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

https://stackoverflow.com/questions/28028723

复制
相关文章

相似问题

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