目录
一、视频SDK概述
含义
SDK:Software Development Kit,软件开发工具包,可以简单理解为提供应用程序接口API的功能模块。
视频SDK:提供支持视频播放逻辑功能实现的接口,并完成视频播放质量数据的统计。
由上图可知,视频SDK对应用程序使用者来说并不感知,换句话说,不同的应用程序完全可以依托同一套视频SDK来实现视频播放逻辑的功能开发。
说明1:这里的“视频”既包括点播又包括直播,从视频播放原理的角度考虑,两个方向的业务基本是无差别的。
说明2:同一个“视频SDK”可以使用不同的“播放内核”(如系统播放器、自研播放器等),下文提到的“视频SDK”,默认指使用自研播放器。其中,播放内核的基本原理见下图。
目标
1、追求极致
性能优化。在实现业务通过功能的基础上,视频SDK优化更多是体现在指标变化上的。比如,可以通过减少数据探测来提升首帧时间;也可以通过客制化的编译来控制包大小,还可以通过线程控制来优化cpu消耗等。“细节决定成败”,一点一滴的优化都能为提升用户体验做出贡献。
2、海纳百川
异常兼容。一方面指的是,点播、直播不同协议视频源的支持(如mp4、flv、m3u8、mpd等),不同编码格式的支持(如H.264、H.265、aac、mp3等),还包括pts跳变、分辨率变化等场景兼容;另一方面也包括兼容不同的业务调用方式,甚至一些异常操作的容错处理(比如联系调用两次release、播放过程中未调用stop/release便直接设置新的url地址)等。值得一提的是,从播放内核角度考虑,相比系统播放器,自研播放器有更多的优化空间,能提供更多的异常兼容(比如,硬解码失败后能回退到软解码等)。
二、测试准备工作
语言基础
关键字:C/C++、Java、OC
不同平台使用的开发语言是有差异的,