很多情况下,大家愿意选择16:9的分辨率作为编码分辨率,但是测试发现,很多手机编码会失败,导致程序崩溃。这是什么原因呢。原来,罪魁祸首是手机的芯片厂商。
安卓视频硬编码分辨率设置跟编码器有关。一般来说有QCom(高通)和MTK(联发科)两家芯片,前者能对任意分辨率编码,而MTK的只能针对宽和高同时为16的倍数编码。而且考虑到视频采集有YUV三个分量,U和V又为Y的一半,即边长为1/2,所以只能把长和宽同时设为32的整数倍才能在MTK芯片上硬编码。
所以,为了安全起见,编码时,我们最好放弃16:9的分辨率选择,退而求其次,选择跟16:9相接近的分辨率,比如,640x360的分辨率,我们可以设置为640x352,这样就不会出问题了。
转载于:https://www.cnblogs.com/liuxt/p/8192958.html