企业文化

Amazon Chime SDK推出用于流媒体的实时连接器 商业生产力

Amazon Chime SDK推出用于流媒体的实时连接器 商业生产力

Amazon Chime SDK 推出实时连接器用于直播

由 Takeshi Kobayashi、Joe Trelli 和 Teng Ge 撰写,发表于 2022 年 8 月 18 日,来源于 Amazon Chime、Amazon Chime SDK、Amazon 互动视频服务、业务生产力、媒体服务 永久链接 分享

关键要点 Amazon Chime SDK 现已推出实时连接器,可直接从应用与网站连接直播流到流媒体平台。 这使得通过 WebRTC 实现低延迟视频,能够让数百万观众观看视频。 提供了与 Amazon 互动视频服务IVS结合的示例,以展示如何利用这一新特性进行直播。

新的 Amazon Chime SDK 特性 实时连接器 允许开发者直接将直播流从他们的应用和网站连接到流媒体平台,使视频能够通过 WebRTC 达到数百万观众。Amazon Chime SDK 是一组 API,去掉了设计和维护后端媒体服务的繁琐工作,便于将焦点放在应用本身。

在本文中,我们将提供一个实例,说明开发者如何使用新的 Amazon Chime SDK 媒体管道实时连接器来与 Amazon 互动视频服务集成。IVS 是 AWS 的一项服务,能够接收 RTMPS 流并以低延迟将直播视频提供给全球观众。

什么是 WebRTC 和 RTMP?

该特性利用 WebRTC 技术,这是一个开源的实时通讯项目,通过 web 和移动应用的 API,使开发者能够将实时视频和音频添加到他们的应用中。RTMP实时消息传输协议是一种用于通过互联网流式传输音频、视频和数据的通讯协议。RTMPS 是该协议的安全版本,用于安全地传输音频、视频和数据。

飞驰加速器永久免费版

Amazon Chime SDK 实时连接器功能使得可以将会议中的视频和音频以 RTMP 或 RTMPS 吞吐 URL 的形式传输到 Amazon 互动视频服务或 Amazon Elemental 等服务中,从而使数以百万计的被动观众能够参加并观看,延迟极小。其他 RTMP 流式传输选项包括 Twitch、YouTube 和 Facebook Live 等。开发者可以选择一个组合布局,然后启动与 Amazon Chime SDK 已经用于媒体捕获的现有媒体管道功能兼容的实时连接器管道。这一新能力使得可以举办大型虚拟活动、全球市政厅会议和公司范围的培训,参与者数量可达数千甚至数百万。

在本文中,我们选择使用 Amazon IVS 作为我们的 RTMPS 目标,但 Amazon Elemental MediaLive 也是一个可选方案。有关如何在 MediaLive 上设置 RTMP 输入的更多信息,请点击这里。

前提条件

已安装 AWS SDK 或 AWS CLI对 Amazon Chime SDK 有基本了解对 Amazon 互动视频服务IVS有基本了解

使用 Amazon Chime SDK 进行会议会话

首先,创建一个将输出至 RTMPS 的 Amazon Chime SDK 会议会话。关于如何创建会议并运行我们的演示应用,请点击这里。一旦会议会话运行,记住会议 ID,因为在创建媒体实时连接器管道时需要使用到它。

如果您正在运行我们的演示应用,可以在页面左下角看到您所处的会议会话的会议 ID。

创建 Amazon IVS 频道和 RTMPS 输入服务器

在 AWS 控制台中,搜索 Amazon 互动视频服务。您将被引导至如下页面,点击“创建频道”。

为您的频道命名,最多 128 个字符,选择默认的频道配置,然后向下滚动。

虽然 Amazon IVS 具有 Amazon S3 录制功能,但在此演示中,您可以选择禁用它,然后单击“创建频道”。

频道创建后,您将看到一个流密钥、输入服务器和播放 URL。播放 URL 可以使用任何能播放 HLS (m3u8) 流的媒体播放器进行播放。Amazon IVS 有适用于 web 和移动的播放器 SDK 可在您的应用中使用,但这超出了本文的范围。如果您没有合适的 HLS 播放器,Amazon IVS 在控制台也有内置预览,点击“直播流”选项卡可查看。

选择布局参数并启动实时连接器管道

通过 AWS SDK 或 AWS CLI 访问实时连接器功能。首先,创建一个包含配置参数和当前 Amazon Chime SDK 会议 ID 的 JSON 文件。然后创建一个媒体实时连接器管道,开始将流式数据输出到您选择的 RTMP 目标。在 JSON 文件中,您可以选择三个布局选项:仅活动发言者、共享内容和仅演讲者,或功能共享内容。有关合成的详细信息,请参考 这里。

一旦获取 RTMP 输入服务器和流密钥,这些信息也会写入 JSON 文件中。以下是 JSON 文件和选择参数的示例。请注意,RTMP 输入服务器和流密钥将如以下方式连接在一起:“/”。

活动发言者布局仅有一个活动发言者的视频流和会议音频流。视频流会自动切换到当前的活动发言者。如果活动发言者没有打开摄像头,则视频流会显示黑屏,直到有活动发言者出现。请注意,在此布局中,即使在 Amazon Chime SDK 会议中存在内容分享,也不会通过 RTMP 流显示内容分享。如果需要内容分享,请使用以下选项2或3。

json{ Sources [ { SourceType ChimeSdkMeeting ChimeSdkMeetingLiveConnectorConfiguration { Arn arnawschimeltaccountidgtmeetingltmeetingidgt MuxType AudioWithActiveSpeakerVideo } } ] Sinks [ { SinkType RTMP RTMPConfiguration { Url ltingestservergt/ltstream keygt AudioChannels Stereo AudioSampleRate 48000 } } ]}

仅演讲者是共享内容时的两个选项之一。内容共享将在屏幕上占据大部分区域,演讲者的视频将在您设置的角落上叠加。

json{ Sources [ { SourceType ChimeSdkMeeting ChimeSdkMeetingLiveConnectorConfiguration { Arn arnawschimeltaccountidgtmeetingltmeetingidgt MuxType AudioWithCompositedVideo CompositedVideo { Layout GridView Resolution FHD GridViewConfiguration { ContentShareLayout PresenterOnly PresenterOnlyConfiguration { PresenterPosition TopRight } } } } } ] Sinks [ { SinkType RTMP RTMPConfiguration { Url ltingestservergt/ltstream keygt AudioChannels Stereo AudioSampleRate 48000 } } ]}

特征内容分享是启用内容分享的第二个选项。内容分享将在屏幕上占据大部分区域,其他视频流根据配置水平或垂直排布。最近启用的四个视频将显示,而演讲者的视频显示在第一个图块上。

json{ Sources [ { SourceType ChimeSdkMeeting ChimeSdkMeetingLiveConnectorConfiguration { Arn arnawschimeltaccountidgtmeetingltmeetingidgt MuxType AudioWithCompositedVideo CompositedVideo { Layout GridView Resolution FHD GridViewConfiguration { ContentShareLayout Horizontal } } } } ] Sinks [ { SinkType RTMP RTMPConfiguration { Url ltingestservergt/ltstream keygt AudioChannels Stereo AudioSampleRate 48000 } } ]}

当内容没有被共享时,“仅演讲者”或“特征内容分享”布局,网格视图将为默认布局。在此布局中,每个视频流将占用一个图块,并会根据会议会话中的视频流数量自动缩放。图块会根据视频流的数量自动以行和列的形式排列,最大可显示 25 个视频图块。开发者可以在 JSON 文件参数中使用 SourceConfiguration 选项仅显示选择的与会者。请注意,如果在会议进行期间开始内容分享,则所选的内容分享布局将被显示,而网格视图将消失,直到内容分享停止。

没有共享内容时的网格视图。

选择特定的与会者进行流式传输

如果您希望选择在 Amazon Chime SDK 会议中要显示的与会者最多 25 个,可以在 JSON 文件中使用 SourceConfiguration 参数通过 ID 指定这些与会者。请查看以下示例 JSON 文件中的代码块。请注意,外部会议 ID 是一个可选字段,通常是与会者的友好名称或开发者选择的其他标识符。

json{ Sources [ { SourceType ChimeSdkMeeting ChimeSdkMeetingLiveConnectorConfiguration { Arn arnawschimeltaccountidgtmeetingltmeetingidgt MuxType AudioWithCompositedVideo CompositedVideo { Layout GridView Resolution FHD GridViewConfiguration { ContentShareLayout Vertical } } SourceConfiguration { SelectedVideoStreams { AttendeeIds [attendeeID1attendeeID2] ExternalUserIds [ string ] } } } } ] Sinks [ { SinkType RTMP RTMPConfiguration { Url ltingestservergt/ltstream keygt AudioChannels Stereo AudioSampleRate 48000 } } ]}

启动作实时连接器管道以开始直播

确定布局参数后,保存 JSON 文件。现在您将调用 API 来创建实时连接器管道。在调用 API 时,您将传入包含布局、会议 ID、AWS 账户 ID 和 RTMP 目标的 JSON 文件请参见 技术文档 获取详细信息。

使用 AWS CLI,请调用以下命令:

shellaws chimesdkmediapipelines createmedialiveconnectorpipeline cliinputjson file//inputjson region ltregiongt

注意:您也可以使用 AWS Lambda 和您选择的编程语言结合 AWS SDK 来创建管道。有关更多详细信息,请参见 Amazon Chime SDK 文档。注意:实时连接器管道的 API 可用于指定区域请参见这里,但管道可以在任何 Amazon Chime SDK 支持的会议中运行。

一旦媒体实时连接器管道成功运行,您将收到一个包含媒体管道 ID 的响应,您稍后将需要它来删除或检查管道状态。您还会看到一个名为 “MediaPipelineXXXXX” 的与会者加入会议。在生产应用中,您可以选择过滤掉这个与会者,以便其他与会者看不到实时连接器机器人出现在名单中。

json{ MediaLiveconnectorPipeline { Sources [ ] Sinks [ ] MediaPipelineId Status Initializing CreatedTimestamp 20220711T080937841Z UpdatedTimestamp 20220711T080938090Z }}

在 IVS 控制台检查您的直播流

一旦您的实时连接器运行,返回到 IVS 控制台,并找到您之前创建的频道。如果您点击“直播流”选项卡并按下播放按钮,您应该能看到您的视频流,而无需设置 HLS 播放器进行测试。

清理资源

有两种方法可以停止运行的媒体实时连接器管道。您可以调用 deletemediapipeline API 明确停止管道,但让会议保持继续;如果会议结束,管道也会自动停止。

Amazon Chime SDK推出用于流媒体的实时连接器 商业生产力

shellaws chimesdkmediapipelines deletemediapipeline mediapipelineid region ltregiongt

如果您按照本文步骤创建了一个 IVS 频道,请在管理控制台中进入 IVS 频道页面,选择该频道并点击“删除”,以清理资源。

如果您运行的是 Amazon Chime SDK 的 浏览器演示应用,可以直接停止本地服务器来清理资源。或者如果您运行的是 Amazon Chime SDK 的 无服务演示应用,可以直接遵循 清理部分的步骤。

结论

本文作为一个示例,展示了开发者如何使用 Amazon Ch

  1. SCM:供应链强大还是现代化? 云企业战略博客 SCM:供应链强大还是现代化? 云企业战略博客

    现代化供应链管理的挑战与机遇关键要点供应链管理SCM在应对企业挑战与过渡到可持续发展中扮演重要角色。企业需从传统方式转向更具前瞻性的供应链现代化策略。利用先进技术如人工智能与大数据分析增强供应链的弹性与效率。在与客户的对话中,供应链管理SCM已成为一个几乎恒定的话题,和人员及敏捷性同样重要。在过去两...