MediaCodec getWidth / HeightAlignment无效

时间:2016-01-04 23:25:17

标签: android mediacodec

我使用MediaCodec将一些视频帧编码为H264。大多数设备上的一切似乎都没问题,但在某些设备上,我的输出会得到很多"对角线"噪音(看起来像偏移/对齐问题)。

MediaCodec的输出分辨率是使用函数getWidthAlignmentgetHeightAlignment计算的。该文档指出该函数返回的值是2的幂,编解码器输出的宽度和高度需要是其倍数。对于无法正常工作的设备,该函数返回2。

因此,我正在测试的设备(无法正常工作)具有1280x800的原始分辨率。如果我要求MediaCodec的输出为1152x720(保持相同的宽高比),一切正常。如果我有MediaCodec的输出为1224x720(如果屏幕显示导航栏,则保持屏幕的宽高比相同,因此,AR与原始分辨率不同)。 1224和720都是MediaCodec's VideoCapabilities返回的宽度/高度对齐的倍数。使用1224x720会产生"对角线。"

所以,我的问题是,为MediaCodec获得支持的输出分辨率的最佳方法是什么?使用getWidth/HeightAlignment似乎并没有在很多低端设备上正常运行(可能设备没有正确实现这些功能?)。

0 个答案:

没有答案