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