正常情况下,使用 RTMP 协议推流并通过 FLV 协议播放,延迟在2秒 - 3秒左右,如果太长一般是有问题的。如果您发现直播延迟时间特别长,可以按照如下思路来排查。
Step 1. 检查播放协议
如果您的播放协议采用的是 HLS(m3u8)协议,并感觉延迟较大,这个是正常的。 HLS 协议是苹果主推的基于大颗粒的 TS 分片的流媒体协议,每个分片的时长通常在5秒以上,分片数量一般为3个 - 4个,所以总延迟在10秒 - 30秒左右。
如果您必须要使用 HLS(m3u8)协议,只能通过适当减少分片个数或者缩短每个分片的时长来降低延迟,但需要综合考虑对卡顿指标可能造成的影响,目前您可以通过 提交工单 或者联系腾讯云技术支持工程师进行调整。
Step 2. 检查播放器设置
极速模式:能保证绝大多数场景下延迟都在2秒 - 3秒以内,美女秀场适合这个模式。
流畅模式:绝大多数场景下延迟都在5秒以内,适合对延迟不敏感但对流畅度要求高的场景,例如游戏直播。n
Step 3. 尽量在客户端打水印
腾讯云直播支持在云端打水印,但是打水印会引入额外的1秒 - 2秒的延迟,所以如果您使用的是腾讯云直播 SDK,可以选择直接在主播端 App 打上水印,这样就不需要在云端来打,从而减少水印造成的延迟。
Step 4. 使用第三方推流器
我们只能确保在腾讯云一体化解决方案中保持理想的效果,如果您使用的是第三方推流软件,建议您使用腾讯云直播 SDK 的 推流 Demo 做个对比,排除一下第三方推流器的编码缓存引入大延迟的可能,因为很多第三方的推流器会暴力地采用无限缓冲的方式来解决上行带宽不足的问题。