直播系统的发展是一个复杂的工程系统。为了实现非常低的时延直播,需要复杂的系统工程优化和熟悉掌握各个组件。这里我们分享一些简单和常见的调优技术。
一、 传输协议优化
1尝试使用RTMP代替基于HTTP的HLS协议在服务器节点和节点之间传输,从而降低了整个传输延迟。这主要是为终端用户玩HLS。
2如果最终用户使用RTMP播放,则尝试在靠近流端的接收节点处进行转码,以使传输的视频流小于原始视频流。
3必要时,可以使用自定义UDP协议代替TCP协议,消除弱网络链路下的丢包重发,减少时延。其主要缺点是基于UDP协议定制的视频流的传输和分发不够通用,CDN厂商支持标准传输协议。另一个缺点是,由于丢包(密钥帧的解码参考不足)可能会出现飞溅屏幕或模糊,这要求协议定制方控制基于UDP的丢包。
二、 传输网路优化
1在服务器节点缓存当前GOP,并与播放器一起优化视频开始时间。
2服务器实时记录每一视频流流到每个链路时的第二帧速率和码率,实时监控码率和帧率的波动。
3客户端(推流播放)通过查询服务器,准实时获取当前最优节点(每5秒一次),并准实时离线当前故障节点和线路。
三、推流媒体和播放优化
1在将数据发送到系统之前,还需要找到缓冲区大小。
2回放端缓存控制对视频的第一次打开延迟也有很大影响。如果仅优化了第一个打开延迟,则在0缓存的情况下,当数据到达时,可以立即解码。然而,在网络环境较弱的情况下,为了消除网络抖动所带来的影响,还需要设置一定的缓存。因此,有必要在直播的稳定性与时延优化之间找到平衡点,调整优化的缓冲区大小。
3。玩家端的动态缓冲策略,这是一个改进版的上述缓冲控制在玩家一侧。如果你只选择0缓存和固定大小缓存之间的平衡,最终你会选择一个固定大小的缓存,这对1亿移动互联网终端用户来说是不公平的。它们不同的网络条件决定了这个固定大小的缓存不完全合适。因此,我们可以考虑一种动态缓冲策略,当播放器打开时,它采用一个非常小甚至0缓存策略。下一个时间片的缓存大小取决于下载第一个视频所需的时间。同时,在回放过程中实时监控当前网络,实时调整回放过程中的缓存大小。这样,第一次打开时间可以很低,并且可以尽可能消除网络抖动所造成的影响。
5动态速率播放策略。除了动态调整缓冲区大小的策略外,还可以利用实时监控网络信息动态调整回放时的比特率,从而在网络带宽不足时降低比特率,减少时延。
这些是我们在低延迟优化方面的一些技巧。事实上,当我们优化低延迟时,我们不仅关注“低延迟”,而且要尽量实现低延迟,同时确保其他条件不会影响用户体验。因此,其内容涉及的话题越来越多。
2.分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3.不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4.本站提供的源码、模板、插件等其他资源,都不包含技术服务请大家谅解!
5.如有链接无法下载或失效,请联系管理员处理!
6.本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!