Skip to content

Latest commit

 

History

History
29 lines (16 loc) · 2.33 KB

如何降低延迟.md

File metadata and controls

29 lines (16 loc) · 2.33 KB

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

Step1. 检查播放协议

不少客户播放协议采用HLS(m3u8),并感觉延迟较大,这个是正常的。苹果主推的HLS是基于大颗粒的TS分片的流媒体协议,每个分片都有5s以上的时长,分片数量一般为3-4个,所以总延迟在 20s - 30s 就不足为怪了。

换用FLV作为播放协议即可解决这个问题。但是要注意,如果您要在手机浏览器上观看直播视频,只有HLS(m3u8) 这一种播放协议可以选择,其它的直播协议在苹果的Safari浏览器上都是不支持的。

Step2. 检查播放器设置

腾讯云RTMP SDK的播放器支持极速、流畅和自动三种模式:

  • 极速模式:能保证绝大多数场景下延迟都在 2-3 秒以内,美女秀场适合这个模式。

  • 流畅模式:绝大多数场景下延迟都在 5 秒以上,适合对延迟不敏感但对流畅度要求高的场景,比如游戏直播。

  • 自动模式:如果网络很好,延迟一般都在 2-3 秒以内,但网络波动比较大的时候会自动调整到5秒以上来抵抗网络抖动。

Step3. 后台不要打水印

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

Step4. 第三方推流器?

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

Step5. 检查OBS设置

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