Android MediaCodec支持的HEVC分辨率

5

有人知道Android MediaCodec对于HEVC解码支持哪些分辨率吗?

经过试验,我发现以下分辨率是可行的:

640x272
720x304
960x400
1280x528
1920x800
2560x1072

以下内容不包括在内:
512x216
3840x1600

有没有官方文档?
1个回答

3

我怀疑没有任何官方文档。实际上,您可以依靠通过CTS测试的分辨率能够正常工作,但其他分辨率可能会有各种行为。

Android HEVC MediaCodec来看,我猜您正在使用一个只有SW解码器的设备进行测试。我认为真正的HW解码器比SW解码器更有能力或更兼容。(这听起来可能不符合直觉,但这特别是对H264 SW编码器而言,其非常有限。)

第一个不起作用的分辨率具有不可被16整除的高度(所有有效的分辨率都具有可被16整除的宽度和高度),而另一个可能“过大”。如果您测试更多的分辨率,这个假设是否成立?


那个假设听起来不错 - 不幸的是我现在没有更多的分辨率可以测试。听起来很有前途,硬件解码器支持更多的分辨率,我应该很快就会得到一个带有硬件解码器的设备:)。谢谢! - Jack
我尝试使用x265在不同分辨率下对HEVC视频进行编码,SW HEVC解码器(在Nexus 9上为OMX.google.hevc.decoder)似乎可以很好地处理它们,例如512x216。 因此,分辨率本身不是问题,至少不是唯一的问题。您可以使用像ffprobe这样的工具检查非工作视频是否使用其他功能,例如范围扩展(用于其他子采样类型,如4:2:2而不是通常的4:2:0)或更高的位深度(例如每个通道10或12位,而不是通常的8位)吗? - mstorsjo
@mstorsjo 你好,你说你成功编码了H265视频,你是怎么做到的?你使用了Android API MediaCodec吗? - dragonfly
我使用 libav/avconv 和 libx265 进行编码,在普通的 Linux 系统上,而非 Android。 - mstorsjo
如果您正在使用表面或纹理来编写输出,且目标是较旧版本的GLES,则可能会遇到2的幂纹理问题。 - Ketan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接