首次播放时拉取的直播流大小。



二缓策略:出现卡顿时,播放器需要拉取的数据大小,才开始播放。
预加载策略:为加快直播间的首帧速度,提前使用播放器拉取直播流数据,准备首次播放需要的数据。
- 优化前QQ直播点击进房预加载所需流量网速如下

点击进房时,开始播放当前直播间,会同时启动下一个直播间的预加载,会预加载12秒的视频数据(由播放器的首缓策略决定)。此时会同时拉取两条直播流,每条流的码率都是4Mpbs,导致在开始播放时的带宽要求在8Mbps以上。
- 优化前QQ直播上下切房预加载所需流量网速如下

上下切房时,开始播放当前直播间,会同时启动上下两个直播间的预加载,上下两个直播间预加载12秒的视频数据(12秒数据由首缓策略决定)。此时同时拉取三条直播流,每条流的码率都是4Mpbs,导致在开始阶段的网络带宽要求是12Mbps以上。
从上图可以看出以下问题:
- 预加载网络开销较大,按照QQ直播的码率计算,12秒时长的字节大小为6MB,计算方法:字节大小 = 时长 * 码率 / 8
- 在弱网下,没有足够的网络带宽来支持蓝光档位的视频流播放,从这个点来看,弱网下需要降低播放档位。
- 点击进房默认开始了下一个直播间的预加载,上下进房会开启上下直播间的预加载,最高需要12Mbps的网速,弱网下需要判断是否开启预加载。
- 预加载数据过多,默认预加载12秒视频数据原因:ThumbPlayer配置的最小缓存大小为4秒,开启了追帧后,PlayerCore会默认调整缓存大小为最小缓存的3倍,即12秒缓存,因此这里会预加载12秒的视频数据,预加载数据过长的问题也需要解决。
四、协议栈分析-直播流编码信息
- QQ直播流编码信息
目前QQ直播的直播流都是H264编码格式,秀场直播间是20FPS帧率,游戏直播间是30FPS帧率。
- 竞品直播的码流信息
通过抓网络包等方式,分析视频流的编码信息、帧率、码率等信息。
root过的手机:tcpdump -i wlan0 -w 1.pcap
抓取播放过程的网络包:

找到网络包中的FLV直播流数据,FLV视频流是以“FLV”开头

将数据回包保存为FLV文件,将该文件放至到flvAnalyser中进行解析,即可得到媒体信息
