百度LSS 音视频直播 秒开

原址:https://cloud.baidu.com/doc/LSS/ProductDescription/30.5C.34.6A.7F.DD.32.EB.FE.F1.3F.24.C0.A2.2F.2C.13.0A.html

首屏秒开和追幀播放技术

首屏秒开是指在极短的时间内呈现直播画面以缩短用户的等待时间。LSS的首屏秒开核心技术有:

  • GOP缓存

    将当前直播帧所在GOP缓存在CDN节点的服务器上,当用户播放器接入该CDN节点上时,GOP数据被快速发送给播放器,播放器拿到GOP的第一个I帧后就可以独立解码并开始播放。

    由于播放器拿到的I帧不是当前最新的视频画面,所以GOP缓存客观上造成了额外的端到端延迟。例如,如果GOP长度是5秒,那么如果用户接入CDN时刚好当前视频帧是GOP的最后一帧,那么GOP缓存可能带来额外5秒的延迟,对于互动体验质量是极大的削弱。针对这一问题,我们发明了追赶播放专利技术解决。

  • HTTP-FLV播放

    FLV的视频格式是:FLV头+ Video/Audio tags,在播放器收到FLV头部数据后,其后续的Video/Audio tag可以边下载边播放,这样的特性也使得FLV格式可以用在视频直播上。

    相比于RTMP播放,FLV播放有两大优点:第一,FLV比RTMP需要更少的启播时间,FLV只需要一次HTTP请求,获得FLV头部数据后即开始下载播放,而RTMP播放要经过3次握手,还有其后connect和createStream等消息的交互后才能开始下载播放;第二,FLV播放使用80端口,对防火墙更加友好,而RTMP默认使用1935端口,在某些网络里会被防火墙屏蔽;第三,FLV播放由于使用HTTP链接,可以使用HTTP 302调度,使得播放端能被更精确地调度,以保障低延迟与高流畅的需求。

  • 追赶帧放降低时延技术

    前面提到GOP缓存会带来额外的端到端延迟。GOP越短,带来的端到端延迟影响越小。然而,短GOP在同等带宽损耗下却很损失视频质量。因为短GOP意味着更多I帧,由于I帧是自包含帧,没有利用帧间的相关性,所以压缩率相比P帧与B帧来说差很多,所以更多的I帧意味着需要的带宽更多。

视频场景 GOP长度
 1秒3秒
游戏视频34.9 dB36.5 dB
美女视频42.6 dB42.6 dB
电影44.0dB44.9dB

上表显示在同等带宽损耗下,不同的GOP长度(1秒和3秒)所取得的视频质量。这里视频质量用PSNR(峰值性噪比)来衡量,PSNR越高,视频的质量也越高。一般来说,在PSNR上0.5 dB的增益可以明显从视觉上看到视频质量的提高。从图上看到,3秒的GOP长度能比1秒的GOP获得大约从0.9 dB~2.0 dB的PSNR增益,从视觉上意味着获得了明显更好的视频质量。

为了在长GOP下保持低延迟,百度云发明了追赶播放的专利技术,来追赶播放当前最新帧之前的GOP缓存帧,以达到最小的端到端延迟。该技术利用RTMP/FLV封装协议及H.264/AVC编码标准,修改当前帧之前的GOP缓存的音视频数据,使得这些缓存数据在到达播放器的时候能快进播放,在时间线上赶上当前最新的直播内容。

追赶播放技术不仅用在首屏打开时的快进GOP缓存的数据,还用在RTMP/FLV播放时遇到累积延迟的情况。当CDN节点到用户播放器之间的最后一公里网络受到波动时,音视频帧数据累积在CDN节点上的队列内,当我们的程序探测到视频帧累积时,我们使用追赶播放技术修改队列中的音视频数据,使得当这些数据到达播放器能被快进播放,从而消除累积延迟。


淘宝的解决方案 

  • 收流服务器主动推送 GOP 至边缘节点,边缘节点缓存 GOP,播放端则可以快速加载,减少回源延迟;
  • 根据TCP拥塞窗口做智能调度,当拥塞窗口过小说明丢包率过高,需要切换节点和故障排查;
  • 增加上行、下行带宽探测接口,当带宽不满足时降低视频质量,即降低码率 
    通过这些优化手段,能够做到95%的直播点击后在900ms以内能够播放。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值