直播开发APP会面临延迟、卡顿、丢帧、音画不同步等各种各样的突发情况,不论是服务器也好、网络增速也好,能对平台起到增益效果的方式直播开发APP都在尝试,其中缓存策略做为有效方式脱颖而出,针对视频关键帧的缓存,能对直播的延迟以及其他方面起到非常大的效果,而且也成为直播平台对抗突发情况的最终手段。
一、直播开发APP延迟与卡顿的方案选择
直播的延迟与卡顿是分析直播业务质量时,非常关注的两项指标,然而,这两项指标从理论上来说,是一对矛盾的关系,需要更迭延迟,则表明服务器端和播放端的缓冲区都必须更短,来自网络的异常抖动容易引起卡顿;业务可以接受较高的延迟,服务端和播放端都可以有较长的缓冲区,以应对来自网络的抖动,提供更流畅的直播体验。所以我们需要在延迟与卡顿中选择一个折中的方案。
通常直播开发APP会选择这两种技术来平衡和优化这两个指标,服务端提供灵活的配置策略,对于延迟要求更敏感的,则在服务端保证关键帧的情况下,对每个连接维持一个较小的缓冲队列;对于卡顿要求更高的直播,则适当增加缓冲队列的长度,保证播放的流畅。服务端对所有连接的网络情况进行智能检测,当网络状况良好时,服务端会缩小该连接的缓冲队列的大小,降低延迟,而当网络状况较差时,特别是检测到抖动较为明显时,服务端对该连接增加缓冲队列长度,优先保证播放的流畅性。
二、直播开发APP丢包解决
直播开发APP什么时候会造成丢包?对于一个网络连接很好,延时也比较小的连接,丢包策略永远没有用武之地的。而网络连接比较差的用户,因为下载速度比较慢或者抖动比较大,这个用户的延时就会越来越高。另外一种情况是,如果直播流关键帧间隔比较长,那么在保证首包是关键帧的情况下,观看这个节目的观众,延迟有可能会达到一个关键帧序列的长度。上述两种情况,都需要启用丢包策略,来调整播放的延时。 丢包的解决方案: 一是正确判断何时需要进行丢包; 二是如何丢包以使得对观众的播放体验影响最小。较好的做法是在直播开发APP后端周期监控所有连接的缓冲队列的长度,这样队列长度与时间形成一个离散的函数关系,后端通过自研算法来分析这个离散函数,判断是否需要丢包。 直播开发APP在使用丢包策略的时候为了给用户更好的体,而应该是后台采用逐步丢帧的策略,每个视频帧序列,丢最后的一到两帧,使得用户的感知最小,平滑的逐步缩小延时的效果。
声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.