你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
通话期间网络不佳
网络的质量会影响发送方和接收方的视频质量。 如果发送方的网络带宽不足,发送方的 SDK 可能会调整视频的编码分辨率和帧速率。 为此,SDK 需要确保发送的数据不能超过当前网络可以支持的数据。
同样,当群组呼叫中接收方的带宽不足且发送方启用了联播时,服务器可能会转发较低分辨率的流。 此机制可以减少网络对接收方的影响。
其他网络特性,例如数据包丢失、往返时间和抖动,也会影响视频质量。
如何使用 SDK 进行检测
面向用户的诊断 API 向应用程序提供有关实时网络影响事件的发生情况的反馈。
对于视频发送方的网络质量,可以通过 networkReconnect
和 networkSendQuality
的值查看事件。
对于接收方的网络质量,可以通过 networkReconnect
和 networkReceiveQuality
的值查看事件。
此外,媒体质量统计信息 API 还提供了监视网络和视频质量的方法。
对于视频发送方的质量,可以查看指标 packetsLost
、rttInMs
、frameRateSent
、frameWidthSent
、frameHeightSent
和 availableOutgoingBitrate
。
对于接收方的质量,可以查看指标 packetsLost
、frameRateDecoded
、frameWidthReceived
、frameHeightReceived
和 framesDropped
。
如何缓解或解决
从 ACS 通话 SDK 的角度来看,网络问题被视为外部问题。 若要解决网络问题,通常需要了解网络拓扑和导致问题的节点。
ACS 通话 SDK 和浏览器根据网络状况自适应调整视频质量。 应用程序必须处理来自面向用户的诊断功能的事件,并相应地通知用户。 通过这种方式,用户可以了解任何网络质量问题,当通话期间遇到低质量视频时就不会感到意外了。
此外,还应考虑监视客户端媒体质量和网络状态,并在报告网络质量低或差时采取措施。 例如,当你注意到客户端的网络性能下降时,你可能会考虑自动关闭传入的视频流。 在有些情况下,你可能会向用户提供反馈,即他们应该关闭摄像头,因为他们的 Internet 连接较差。
如果你假设用户的网络环境较差或不稳定,还可以使用视频约束 API 来限制最大分辨率、每秒最大帧数 (fps) 和/或发送或接收的最大码率,以减少视频传输所需的带宽。