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