直播优化:

  • 网络
  • 协议
  • 编解码
  • 移动终端

网络

  1. 全局负载均衡-就近接入(CDN)
  2. BGP(Border Gateway Protocol (边界网关协议))中转架构-最短传输路径

流媒体协议

国内常见公开的直播协议有几个:RTMP、HLS、HDL(HTTP-FLV)、RTP

低延迟: HTTP-FLV > RTMP > HLS

案例(PC网页端):熊猫、斗鱼、虎牙、B站

  • UDP:RTP(延迟1秒,浏览器不支持)

    单个数据报,不用建立连接,简单,不可靠,会丢包,会乱序;

  • TCP:HTTP-FLV、RTMP、HLS

    流式,需要建立连接,复杂,可靠 ,有序。

编解码

延迟与卡顿(优化)

  1. 一是服务端提供灵活的配置策略

    对于延时要求更敏感的,则在服务端在保证关键帧的情况下,对每个连接维持一个较小的缓冲队列;对于卡顿要求更高的直播,则适当增加缓冲队列的长度,保证播放的流畅。

  2. 二是服务端对所有连接的网络情况进行智能检测

    当网络状况良好时,服务端会缩小该连接的缓冲队列的大小,降低延迟;而当网络状况较差时,特别是检测到抖动较为明显时,服务端对该连接增加缓冲队列长度,优先保证播放的流畅性。

丢包策略

关于丢包,需要解决两个问题:

  • 一是正确判断何时需要进行丢包;
  • 二是如何丢包以使得对观众的播放体验影响最小

优化方案: 应该是后台采用逐步丢帧的策略,每个视频帧序列,丢最后的一到两帧,使得用户的感知最小,平滑的逐步缩小延时的效果

移动终端

TBD

参考: