手机视频解码有两种方式:“硬解”和“软解”,两种解码方式分别调用的是手机的CPU和GPU。
在手机上GPU和CPU的关系很紧密,在以前的智能机很多GPU的事都是由CPU来完成的,手机发展到如今已经有了独立的GPU。但是,GPU还是和CPU封装在一起的,由芯片开发商一起开发。如今的手机系统中,“硬解”的处理能力已非常强大;一些手机的GPU处理器,在视频和渲染方面有了极大的提升,有的芯片甚至难以置信的支持了4K视频的拍摄和播放。手机上的两种视频解码方式各有优缺点,“硬解”是由手机的GPU来对高清视频进行解码工作,优点是:CPU占用率很低、播放流畅、低功耗;缺点是:受视频格式限制、需要对解码器进行适配调试、稳定性稍差。“软解”是由手机的CPU负责视频解码进,优点是:不受视频格式限制、播放视频比较稳定;缺点是:耗电量会增加、占用过高的资源、对于高清视频可能没有硬解流畅。
视频播放器常用的策略是:在保证正常播放视频的前提下,尽量采用“硬解”方式,这样可以最大限度的降低手机的耗电量;但是,如果“硬解”播放时遇到了播放错误,播放器还要能够智能地切换成“软解”,来保证用户仍然能够正常地观看视频。该方法能够适应各种机型的GPU环境,最大限度的降低了播放视频的耗电量,并保证了视频播放能力,增强了用户体验。一种类似的策略是维护一份白名单列表,检测到机型在白名单列表中就采用硬解,否则采用软解。维护更新白名单列表是一个挑战。比较常用的做法有:采购主流机型进行兼容性测试,公司内测,租赁第三方公司机型,众测等,但是都有其缺点(比如机型少,成本高,流程费时等)。最好能利用现有的用户手中的机型,无感知地完成验证过程。(待续)