文档中心 云直播 常见问题 如何降低延迟

如何降低延迟

最近更新时间:2019-07-01 09:57:18

按正常情况 RTMP 推流+FLV 播放的正常延迟在2秒 - 3秒左右,太长则是有问题的,如果您发现直播延迟时间特别长,可以按照如下思路来排查。

排查思路

Step 1. 检查播放协议

不少客户播放协议采用 HLS(m3u8),并感觉延迟较大,这个是正常的。苹果主推的 HLS 是基于大颗粒的 TS 分片的流媒体协议,每个分片都有5s以上的时长,分片数量一般为3个 - 4个,所以总延迟在20s - 30s就不足为怪。
换用 FLV 作为播放协议即可解决这个问题,但是要注意,如果您要在手机浏览器上观看直播视频,只有 HLS(m3u8) 这一种播放协议可以选择,其它的直播协议在苹果的 Safari 浏览器上都是不支持的。

Step 2. 检查播放器设置

腾讯云 RTMP SDK 的播放器支持极速、流畅和自动三种模式,具体设置请参考 延时调节

  • 极速模式:能保证绝大多数场景下延迟都在2秒 - 3秒以内,美女秀场适合这个模式。
  • 流畅模式:绝大多数场景下延迟都在5秒以内,适合对延迟不敏感但对流畅度要求高的场景,例如游戏直播。

Step 3. 后台不要打水印

腾讯云支持后台打水印,目的是满足一些不能使用腾讯云 RTMP SDK 的推流器(支持直播端加水印)但依然要打水印的客户,但是这种方案会引入额外的三秒延迟,故如果您本身使用的是腾讯云 RTMP SDK 来推流,就把后台水印关闭后在主播端的 App 上加水印。

Step 4. 第三方推流器?

我们只能确保在腾讯云一体化解决方案中保持理想的效果,如果您使用的是第三方推流软件,建议您先换成腾讯云 RTMP SDK 的推流 Demo 做个对比,排除一下第三方推流器的编码缓存引入大延迟的可能,因为很多第三方的推流器对会暴力的采用无限缓冲的方式来解决上行带宽不足的问题。

Step 5. 检查 OBS 设置

不少客户反馈采用 OBS 推流,在播放端延迟比较大。建议按照 PC 推流 文档中配置对应的参数,并注意要把关键帧间隔设置为1或者2。