我正在开发一个应用程序,使用h.264编码器将电影编码为画廊和其他目标。该应用程序支持输出可变宽高比(1:1、2:3、3:2、16:9、3:4、4:3)。我正在使用4.3 API的表面输入进行输入/输出。
该应用程序在许多设备上运行良好(在S3、Motorola G、Nexus 7 2012、Motorola X上测试过),但是在Nexus 7 2013上运行时遇到了问题。
基本上,某些输出分辨率可以正常工作,而有些则不行。1:1(960x960)、3:2(1080x720)和4:3(960x720)的输出会产生这样的结果: 我的猜测是编码器中有一些硬编码的值,将其输入表面视为实际宽度不同-像素行似乎“未正确对齐”。然而,我不知道会导致这种情况以及如何解决它。日志中没有错误,并且视频编码器编解码器在输出媒体格式时记录了正确的表面宽度和高度。更新:似乎使用360、720或1280宽度进行编码时没有问题,高度没有影响。我没有找到其他低于1280的宽度。更新2:似乎还有更多可用的宽度:180、240、640、700。我没有找到它们之间的任何相关性。
该应用程序在许多设备上运行良好(在S3、Motorola G、Nexus 7 2012、Motorola X上测试过),但是在Nexus 7 2013上运行时遇到了问题。
基本上,某些输出分辨率可以正常工作,而有些则不行。1:1(960x960)、3:2(1080x720)和4:3(960x720)的输出会产生这样的结果: 我的猜测是编码器中有一些硬编码的值,将其输入表面视为实际宽度不同-像素行似乎“未正确对齐”。然而,我不知道会导致这种情况以及如何解决它。日志中没有错误,并且视频编码器编解码器在输出媒体格式时记录了正确的表面宽度和高度。更新:似乎使用360、720或1280宽度进行编码时没有问题,高度没有影响。我没有找到其他低于1280的宽度。更新2:似乎还有更多可用的宽度:180、240、640、700。我没有找到它们之间的任何相关性。