前置metadata:
需要获取文件的metadata,解析出文件的编码,帧率等信息后才能开始边下边播,所以尽量让metadata或 MOOV box在靠近文件头部的位置,保证播放器尽快播放
选择合适的缓冲策略:
AVPlayer的 automaticallyWaitsToMinimizeStalling属性就是尽量多缓存一段时间,保证播放过程中减少卡顿
使用HTTPDNS加快建连:
获取最优的CDN节点地址,并每隔一段时间获取一次最佳CDN节点,准实时的保证使用最佳节点。
提升CDN命中率:
减少CDN的资源部命中,减少回源,比如URL中减少随机性的值,增加匹配命中概率。
域名解析:
使用HTTPDNS快速获取最佳CDN节点信息。
Socket cache:
TCP的数据收发都是在缓冲区中完成拼装,通过调整缓冲区的大小。设置太小,影响效率,设置太大, 会短时间吃掉带宽(根据带宽探测原理可知),通过ffmpeg提供的api可修改。
探测buffer:
一开始需要先读一段数据,再对数据进行探测,得到封装格式、分辨率等信息。这个buffer可以设置。
格式探测:
播放端开始时会探测数据格式,根据自己支持的格式探测出一个分数,得到相应的格式,如果短视频格式确定,就可以减少不必要的探测类型。
播放 buffer:
减少播放的缓冲,一般缓冲buffer会按照帧数设置,但是短视频可以减小这个数字,达到尽快解码播放。
分辨率、视频格式:
一定程度降低分辨率,减小文件大小。使用HEVC格式。