成功率
1. find_stream_info失败后的重试,一般为3次;
2. 细分错误码,找到具体的错误原因;
秒播率
1. 先prepare,再setsurface(即java和native并行执行创建逻辑);和除此之外的其他并行逻辑;
2. 设置AVFormat的probesize和max_analyze_duration为更低的时间(一般是50*1024和75000),如果失败,则加大重试;
3. 预加载和预缓存:播放当前视频的同时,预加载下一个视频;大剧预加载;
4. 起播低清晰度,然后切换至高分辨率;
5. ffmpeg起播单线程,因为多线程需要各个线程都解码完毕,存在一个等待的过程;
6. 对HLS流,获取ts列表的第一条ts地址后,即开启下载线程,预计减少200ms的起播时间;
7. 对6,或者采用首片ts起播加速的方案,即ups返回播放地址时,返回播放地址+首片ts地址,首片ts先开播,省去获取播放列表的时间;
深度定制:
1. 直接指定视频格式和音频格式,省去parse的过程;
卡顿率
1. 加大buffer,对于直播场景,降低buffer low(即pause)的场景;
2. 限制buffer总大小,提高buffer总时长,降低低清晰度的卡顿率;
crash率
1. APP接入crash崩溃分析平台,在服务器上能抓到当前的运行日志;
2. 各维度分析;