在直播、在线教育、线上会议等音视频应用场景中,网络质量的好坏会直接影响用户体验。从主播端推流到观看端拉流,涉及多地多端的网络,一旦出现网络连通性问题,往往难以快速清晰判定问题发生的阶段、原因,不利于及时排查故障和后续运营优化。

 

因此,即构在本月全新上线了推拉流网络探测及推流测速功能,通过调用相关接口,即可实现网络探测及上行推流速率测试,从而获得网络质量动态感知、事后分析的能力,不断提升运营质量。

 

一、推拉流网络探测

 

应用场景:

在推拉流过程中或者登陆房间之前遇到网络问题,用户可调用网络探测接口进行网络探测,ZEGO SDK会对HTTP、TCP、UDP 协议进行探测,若探测失败,会启动Traceroute路由跟踪。最终将探测的结果回调给用户,同时SDK本地日志和即构后台均有记录。

 

功能实现:

新增 StartNetworkTrace、StopNetworkTrace 接口,用于网络探测。用户可以手动调用接口进行网络探测,在登录房间出现异常时,通过网络探测收集日志记录,方便用户侧统计和上报给ZEGO后台。但不推荐把网络探测作为推流前的必须路径,当网络质量较差的情况下,网络探测耗时过久,会导致用户体验急剧下降。

 

而在以下异常情况下,ZEGO SDK会进行自动探测,用户即使不主动调用,也可以实现在本地日志记录结果的同时上报即构后台。

1)    Quic Connect/LoginRoom/UDP Dispatch/Publish timeout/Play timeout 超时

2)    无缓存时统一调度

3)    统一接入连接失败

4)   LoginRoom失败

5)  UDP Dispatch 失败

6)    Publish/Play hello timeout

 

实际场景中只要触发上述任一情况,就会开始探测,如果在探测过程中又触发了其他情况,系统不会重复探测,而是等待前一次探测结果。

 

 

 

二、推流测速

应用场景:

在推流前可进行流媒体协议(基于UDP)连通性及上行推流速率测试,帮助用户测试UDP 连通性是否正常,判断上行网络质量是否良好。如果出现网络质量“差”的情况,业务平台侧可建议推流端适当降低推流码率,从而获得更好的体验。

推流测速广泛适用于多场景,比如,在线教育场景中,教师在开课前先进行推流测试,根据网络情况选择推流码率;秀场直播中,主播可能会在直播前调试美颜滤镜效果,可以同步开启测速。

 

功能实现:

新增 StartConnectivityTest、StopConnectivityTest 接口,用于 UDP 连通性测试;新增 StartSpeedTest、SetQualitycallbackInterval、StopSpeedTest 等接口,用于网络测速。

两者都是初始化SDK 后调用,同一时间内只有一个生效,开始推拉流则会中断此操作。

 

需要注意的是:

  • 连通性测试只测试UDP网络是否与ZEGO媒体服务连通,而测速则会实际产生媒体数据。
  • 测速过程中会消耗服务器资源,但不产生计费,目前服务推流只配置测速180S。超过时间未停止,则会返回1017错误。
  • 如需开通UDP连通性测试及推流测速,请联系ZEGO技术支持处理

 

以上就是即构网络探测及推流测速功能的应用及实践,我们将持续迭代优化,将诊断信息用于改进即构节点的保底逻辑。降低网络等不可控因素带来的负面影响,不断提升用户使用体验。

版权声明:本文为zegoinfo原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/zegoinfo/p/12896012.html