影响直播代码视觉体验的直播性能指标(上)
时间:2022-05-18 02:57:01 | 来源:行业动态
时间:2022-05-18 02:57:01 来源:行业动态
直播代码的第一性能指标是延迟,延迟是数据从信息源发送到目的地所需的时间。虽然这个延迟的长度可以通过视频数据的传播速度、网络传输速度来缩短,但它还是真实存在的。
由于直播代码使用的是RTMP协议,此协议是基于TCP之上的应用层协议,TCP属于慢启动过称,再此过程上往返,都会加一次往返耗时,此交互过程也会增加延迟。
其次根据TCP的丢包重传特性,网络抖动时造成丢包,数据重新传递,也会间接性增加延迟时间。
作为直播代码性能提升的第二倒门槛,直播性能卡顿也是常见的问题,卡顿是指视频播放过程中出现画面滞帧,画面的不流畅性让人感到卡。单位时间内的播放卡顿次数统计称为卡顿率。
造成卡顿的因素有可能是推流端发送数据终端,也可能是公网传输的拥塞或网络抖动异常造成的,还有可能是终端设备的解码性能太差,卡顿次数的多少决定了用户观看体验的好坏。
第三个直播性能标准是首屏耗时,第一次点击播放后,肉眼可看到画面所等待的时间。有时我们在打开直播时不会第一时间看到直播画面,有时可能先听到声音,这一问题在技术上指播放器解码第一帧渲染显示画面所花的时间。秒开与卡顿一样,等待时间越短越好。
如上三个直播性能标准,也对应了现在三个用户的常见需求:低延迟、高流畅度、首屏秒开。直播代码视频直播上的坑可以总结为两个方面:播放设备差异、网络环境差异。
首先在设备差异上,ios平台不论是硬编还是软编,都不存在因芯片平台不同导致的编码差异。Android平台上芯片不同时,硬软编差异表现很大,不同厂商使用不同的芯片,而不同芯片平台上的表现差异也不同,通常实现全平台兼容的成本不低。
另外在Android MediaCodec硬编层面的H.264编码画质参数是固定的baseline,所以画质通常也一般,这里推荐Android平台下,最好采用软编的方式,既方便调控画质,又有很强的兼容性。
本文已声明云豹原创,转载请注明出处。