你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

视频问题概述

建立视频通话涉及许多组件和过程。 步骤包括从相机设备获取视频流、浏览器编码、浏览器解码、视频呈现等。 如果上述任何阶段出现问题,则用户可能会遇到与视频相关的问题。 例如,用户可能会抱怨无法看到视频或视频质量不佳。 因此,了解视频内容如何从发送方流向接收方对于调试和缓解视频问题至关重要。

视频通话在端到端的角度如何工作

视频流数据的端到端流示意图

此处我们使用 Azure 通信服务组通话作为示例。

当发送方在通话中启动视频时,SDK 会在内部通过浏览器 API 检索摄像头视频流。 SDK 与服务器在信号层完成握手后,它会开始将视频流发送到服务器。 浏览器在 RTP(实时传输协议)层执行视频编码和数据包化,以便传输。 通话中的其他参与者从服务器接收通知,指示来自发送方的视频流的可用性。 你的应用程序可以决定是否订阅视频流。 如果你的应用程序从服务器订阅视频流(例如,使用 createView API),则服务器会将发送方的视频数据包转发到接收方。 接收方的浏览器会解码并呈现传入视频。

当你使用 ACS Web 通话 SDK 进行视频通话时,SDK 和浏览器可以根据可用带宽调整发送方的视频质量。 调整可能包括分辨率、每秒帧数和目标比特率的更改。 此外,发送方端的 CPU 重载也会影响浏览器对编码目标分辨率的决定。

视频通话中的常见问题

我们可以看到,整个过程涉及发送方的摄像头设备等因素。 发送方和接收方端的网络条件也起着重要作用。 丢失的带宽和数据包可能会影响用户感知的视频质量。

下面列出了几个常见的视频问题,以及每个问题的潜在原因:

用户看不到来自远程参与者的视频

  • 当用户订阅发送方的视频时,该视频不可用
  • 订阅视频时远程视频变得不可用
  • 应用程序在订阅视频时释放视频呈现器
  • 达到活动视频订阅的数量上限
  • 视频发送方的浏览器位于后台
  • 视频发送方意外地删除了通话
  • 视频发送方遇到网络问题
  • 接收方遇到网络问题
  • 接收了帧但未解码

用户仅看到来自远程参与者的黑色视频

  • 视频发送方的浏览器位于后台

用户遇到较差的视频质量

  • 视频发送方网络不佳
  • 接收方网络不佳
  • 视频发送方或接收方环境负载过大
  • 接收方订阅了多个传入视频流