我正在研究使用android MediaCodec类来解码HEVC。有这样做的项目的例子吗?
目前,我将解码器配置为:
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-0、csd-1和csd-2分别设置为VPS、SPS和PPS,但没有成功。
我在控制台中得到了以下错误,但已经确定它与此无关:
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视频?
发布于 2015-01-21 13:34:52
问题似乎在于分辨率- 512x216没有工作,并造成上述症状,但1920x800工作良好。我问过another question支持什么解决方案。
发布于 2015-01-19 17:00:23
VLC至少有对它的支持,虽然我不确定它到底用过哪些解码器(我可以从您的日志片段中看到您正在使用SW解码器)。据我所知,您需要处理的有关它的唯一细节是以附件b格式(带有启动代码)传递数据包,而不是mp4/mkv格式--就像对H264一样。
有关这方面的一些示例,请参见http://git.videolan.org/?p=vlc.git;a=commitdiff;h=86630a1、http://git.videolan.org/?p=vlc.git;a=commitdiff;h=5e19ce93和http://git.videolan.org/?p=vlc.git;a=commitdiff;h=7b79a086。
另外,关于storeMetaDataInBuffers失败的日志消息是无关的,没有什么可担心的,参见Q12 at http://bigflake.com/mediacodec/。
发布于 2015-01-19 19:23:34
也许还想看看MX播放器,它在我的Nexus 7上播放HEVC。但是,如果没有目前对HEVC的任何Android硬件支持,高清内容播放就太紧张了。640 p和更低的分辨率可以发挥良好--尽管在大多数cpu能力较弱的Android设备中可能不是这样。
https://stackoverflow.com/questions/28028723
复制相似问题