很多刚开始使用智密-腾讯云 MLVB 直播插件或者单独腾讯云直播 SDK的工程师在进行直播效果测试或者实际直播应用中可能会遇到延迟比较大、或者推流、拉流速度较慢的问题。今天智密科技就来分享一下如何在最快时间内分析出高延迟的元凶,并将直播的延迟降低至正常水平。
首先,如何判断自己搭建的直播属于高延迟呢?在正常的网络波动范围和设备性能的情况下,主播端和客户端之间的延迟在2-3秒左右。如果高于这个延迟,那就可以参考今天给出的一些排查方法。
如果您的播放协议采用的是 HLS(m3u8)协议,并感觉延迟较大,这个是正常的。 HLS 协议是苹果主推的基于大颗粒的 TS 分片的流媒体协议,每个分片的时长通常在5秒以上,分片数量一般为3个 - 4个,所以总延迟在10秒 - 30秒左右。
如果您必须要使用 HLS(m3u8)协议,只能通过适当减少分片个数或者缩短每个分片的时长来降低延迟,但需要综合考虑对卡顿指标可能造成的影响。
腾讯云移动直播 SDK 的播放器支持极速、流畅和自动三种模式,具体设置请参见 延时调节:
腾讯云直播支持在云端打水印,但是打水印会引入额外的1秒 - 2秒的延迟,所以如果您使用的是腾讯云移动直播 SDK,可以选择直接在主播端 App 打上水印,这样就不需要在云端来打,从而减少水印造成的延迟。
我们只能确保在腾讯云一体化解决方案中保持理想的效果,如果您使用的是第三方推流软件,建议您使用腾讯云移动直播 SDK 的 推流 Demo 做个对比,排除一下第三方推流器的编码缓存引入大延迟的可能,因为很多第三方的推流器会暴力地采用无限缓冲的方式来解决上行带宽不足的问题。
如果您采用的是 OBS 推流,并且发现在播放端延迟比较大。建议您按照 OBS 推流 中的描述配置对应的参数,并注意把关键帧间隔设置为1秒或2秒。
如果以上建议都不能满足您对延迟的要求,您可以接入腾讯云快直播,快直播比标准直播延迟更低,可以提供毫秒级的极致直播观看体验。