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

媒体流和合成

重要

本文档中所述的功能目前提供个人预览版。 个人预览版包括对测试用 SDK 和文档的访问权限,这些资源尚未公开提供。 通过填写相关表单获取 Azure 通信服务的预览访问权限,申请成为早期采用者。

Azure 通信服务媒体流和合成使你能够生成大规模动态语音和视频通话体验,适用于交互式流、虚拟事件和广播场景。 在常见的视频通话场景中,每个参与者都上传从以下位置捕获的多个媒体流:

  • 相机
  • 麦克风
  • 应用程序(屏幕共享)

这些媒体流通常以网格形式排列并广播给呼叫参与者。 通过媒体流式处理和合成,可以扩展和增强这种体验:

  • 使用 RTMPSRT 等流媒体协议连接设备和服务
  • 将媒体流组合成复杂的场景

RTMP 和 SRT 连接可用于输入和输出。 使用 RTMP/SRT 输入,发出 RTMP/SRT 的视频图形工作室可以加入 Azure 通信服务通话。 借助 RTMP/SRT 输出,可以将媒体从 Azure 通信服务流式传输到 Azure 媒体服务、YouTube Live 和许多其他广播频道。 能够连接行业标准 RTMP/SRT 发射器并将内容输出到 RTMP/SRT 订阅者以进行广播,从而将一个小组呼叫转换为一个虚拟事件,可实时到达数百万人。

媒体合成 REST API(和开源 SDK)允许你命令 Azure 服务在云中合成这些媒体流。 例如,演示者布局可用于以经典的画中画风格将演讲者和翻译者组合在一起。 媒体合成允许连接到媒体数据平面的所有客户端和服务享受特定的动态布局,而无需本地处理或应用程序复杂性。

在下图中,三个端点正在主动参与群组通话并上传媒体。 使用演示者布局组成两个用户,其中一个使用 Microsoft Teams。第三个终结点是一个将 RTMP 发送到呼叫中的电视演播室。 Azure 通话客户端和 Teams 客户端将接收组合的媒体流,而不是典型的网格。 此外,此处显示的 Azure 媒体服务订阅通话的 RTMP 通道并在外部广播内容。

Diagram showing how media input is processed by the Azure Communication Services Media Composition services

此功能通过 REST API 和开源 SDK 激活。 以下是上述场景的演示者布局的 JSON 编码配置示例:

{
   "layout": {
    "presenter": {
      "presenterId": "presenter",
      "supportId": "translatorSupport",
      "supportPosition": "topLeft",
      "supportAspectRatio": 3/2
    }
  }
}

演示者布局是通过媒体合成功能可用的几种布局之一:

  • 网格 - 网格布局以标准网格格式显示指定的媒体源。 可以指定网格中的行数和列数,以及应在网格的每个槽中放置哪些媒体源。 A diagram showing an example of the grid layout.
  • 自动网格 - 此布局以优化的方式自动显示场景中的所有媒体源。 与网格布局不同,它不允许自定义行和列数。 A diagram showing an example of the auto grid layout.
  • 演示文稿 - 演示文稿布局的特点是具有固定媒体源(演示者),可覆盖大部分场景。 其他媒体源排列在场景剩余空间中的行或列中。 A diagram showing an example of the presentation layout.
  • 演示者 - 是由两个源组成的画中画布局。 一个源是场景的背景。 它通常表示正在呈现的内容或主演示者。 辅助源裁剪并放置在场景的一角。 A diagram showing an example of the presenter layout.
  • 自定义 - 可以自定义布局以适应特定方案。 媒体源可以具有不同的大小,并放置在场景中的任何位置。 A diagram showing an example of the custom layout.