本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
连接到存储会话
按照以下步骤创建存储会话并启动 WebRTC 连接过程。主参与者应该打电话JoinStorageSession。观众参与者应致电JoinStorageSessionAsViewer。
这将使存储会话通过信号将SDP报价和ICE候选人发送给通过连接的主参与者或通过ConnectAsMaster连接的指定查看者参与者。ConnectAsViewer
获取信令信道的 ARN,因为这是下一步必需的输入。如果您已经知道 ARN,请继续下一步。
- AWS 管理控制台
选择您的信令信道的名称。
在 “信令信道信息” 选项卡下,找到您的信令信道的 ARN。
- AWS CLI
验证您是否已 AWS CLI 安装和配置。有关更多信息,请参阅 AWS Command Line Interface 《用户指南》。
有关安装说明,请参阅《AWS Command Line Interface 用户指南》。安装后, AWS CLI使用凭据和区域配置。
或者,打开已 AWS CLI 安装和配置的 AWS CloudShell 终端。有关更多信息,请参阅 AWS CloudShell 用户指南。
使用运行以下Describe-Signaling-Channel命令 AWS CLI:
aws kinesisvideo describe-signaling-channel \ --channel-name "YourChannelName" \响应看起来与以下内容类似:
{ "ChannelInfo": { "ChannelName": "YourChannelName", "ChannelARN": "arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123", "ChannelType": "SINGLE_MASTER", "ChannelStatus": "ACTIVE", "CreationTime": "2024-07-07T23:28:24.941000-07:00", "SingleMasterConfiguration": { "MessageTtlSeconds": 60 }, "Version": "Ws0fZvFGXzEpuZ2CE1s9" } }您将在对象中找到信令信道 ARN。
ChannelInfo- AWS SDK
此代码片段向您展示了如何使用适用于 v2 的软件开发工具包创建带有 WebRTC 信令通道的 Kinesis 视频流。 AWS JavaScript 语法将与其他 AWS SDK 不同,但总体流程是相同的。
您可以查看JoinStorageSession
或的完整代码示例JoinStorageSessionAsViewer 。 创建 Kinesis Video Streams 客户端。这用于调用 DescribeSignalingChannel API 。
const clientConfig = { accessKeyId: 'YourAccessKey', secretAccessKey: 'YourSecretKey', region: 'us-west-2' }; const kinesisVideoClient = new AWS.KinesisVideo(clientConfig);使用客户端调用
DescribeSignalingChannelAPI。const describeSignalingChannelResponse = await kinesisVideoClient .describeSignalingChannel({ ChannelName: 'YourChannelName', }) .promise();保存响应。
const channelARN = describeSignalingChannelResponse.ChannelInfo.ChannelARN;
-
获取 WEBRTC 终端节点。JoinStorageSessionAsViewer对JoinStorageSession特定信令信道的请求必须向其指定端点提出。
- AWS 管理控制台
-
注意
Kinesis 视频流 AWS 管理控制台目前不支持此操作。
打开已 AWS CLI 安装和配置的 AWS CloudShell 终端。有关更多信息,请参阅 AWS CloudShell 用户指南。
按照 AWS CLI 选项卡中的说明进行操作。
- AWS CLI
-
验证您是否已 AWS CLI 安装和配置。有关更多信息,请参阅AWS Command Line Interface 文档。
有关安装说明,请参阅《AWS Command Line Interface 用户指南》。安装后, AWS CLI使用凭据和区域配置。
或者,打开已 AWS CLI 安装和配置的 AWS CloudShell 终端。有关更多信息,请参阅 AWS CloudShell 用户指南。
在
Get-Signaling-Channel-Endpoint以下位置运行该命令 AWS CLI:aws kinesisvideo get-signaling-channel-endpoint \ --channel-arn "arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123" \ --single-master-channel-endpoint-configuration "Protocols=['WEBRTC'],Role=MASTER" \ --region "us-west-2"该响应应该类似于下列内容:
{ "ResourceEndpointList": [ { "Protocol": "WEBRTC", "ResourceEndpoint": "https://w-abcd1234.kinesisvideo.aws-region.amazonaws.com" } ] } - AWS SDK
-
此代码片段向您展示了如何使用适用于 v2 的软件
GetSignalingChannelEndpoint开发工具包调用 WebRTC 信令通道的 Kinesis 视频流的 API。 AWS JavaScript 语法将与其他 AWS SDK 不同,但总体流程是相同的。查看JoinStorageSession或的完整代码示例JoinStorageSessionAsViewer 。 创建 Kinesis Video Streams 客户端。这是用于调用 DescribeSignalingChannel API 的客户端。
如果您之前创建了 Kinesis Video Streams 客户端来调用
DescribeSignalingChannel,则可以重复使用相同的客户端。const clientConfig = { accessKeyId: 'YourAccessKey', secretAccessKey: 'YourSecretKey', region: 'us-west-2' }; const kinesisVideoClient = new AWS.KinesisVideo(clientConfig);使用客户端调用
GetSignalingChannelEndpointAPI。const getSignalingChannelEndpointResponse = await kinesisVideoClient .getSignalingChannelEndpoint({ ChannelARN:channelARN, SingleMasterChannelEndpointConfiguration: { Protocols: ['WEBRTC'], Role: 'MASTER', }, }) .promise();保存响应:
const webrtcEndpoint = getSignalingChannelEndpointResponse.ResourceEndpointList[0].ResourceEndpoint;
使用频道 ARN 和 WEBRTC 终端节点进行 API 调用。如果参与者通过
ConnectAsMaster或ConnectAsViewerWebSocket API 正确连接到带有 WebRTC 信令的 Kinesis Video Streams,则将 WebSocket 从存储会话向参与者发送 SDP 优惠和 ICE 候选消息流。- AWS 管理控制台
-
注意
Kinesis 视频流 AWS 管理控制台目前不支持此操作。
打开已 AWS CLI 安装和配置的 AWS CloudShell 终端。有关更多信息,请参阅 AWS CloudShell 用户指南。
按照 AWS CLI 选项卡中的说明进行操作。
- AWS CLI
-
验证您是否已 AWS CLI 安装和配置。有关更多信息,请参阅AWS Command Line Interface 文档。
有关安装说明,请参阅《AWS Command Line Interface 用户指南》。安装后, AWS CLI使用凭据和区域配置。
或者,打开已 AWS CLI 安装和配置的 AWS CloudShell 终端。有关更多信息,请参阅 AWS CloudShell 用户指南。
AWS CLI 使用前面步骤中的频道 ARN 和 WEBRTC 端点为主参与者运行
Join-Storage-Session命令:aws kinesis-video-webrtc-storage join-storage-session \ --endpoint-url https://w-abcd1234.kinesisvideo.us-west-2.amazonaws.com \ --channel-arn arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123\ --region "us-west-2"成功运行后,将返回空响应,不打印任何内容。
如果是观众参与者,请在 AWS CLI 使用之前的频道 ARN 和 WEBRTC 端点中运行以下
Join-Storage-Session-As-Viewer命令:aws kinesis-video-webrtc-storage join-storage-session-as-viewer \ --endpoint-url https://w-abcd1234.kinesisvideo.us-west-2.amazonaws.com \ --channel-arn arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123\ --client-id "ExampleViewerClientID" --region "us-west-2"成功运行后,将返回空响应,不打印任何内容。
- AWS SDK
-
此代码片段向您展示了如何使用适用于 v2 的软件开发工具包通过 WebRTC 信令通道调用 Kinesis 视频流的
JoinStorageSession或JoinStorageSessionAsViewerAPI。 AWS JavaScript 语法将与其他 AWS SDK 不同,但总体流程是相同的。查看JoinStorageSession或的完整代码示例JoinStorageSessionAsViewer 。 创建 Kinesis Video Streams WebRTC 存储客户端。这是用来调用的客户端,
JoinStorageSession也JoinStorageSessionAsViewer不同于前面步骤中创建的 Kinesis Video Streams 客户端。const webrtcStorageClientConfig = { accessKeyId: 'YourAccessKey', secretAccessKey: 'YourSecretKey', region: 'us-west-2', endpoint:webrtcEndpoint}; const kinesisVideoWebRTCStorageClient = new AWS.KinesisVideoWebRTCStorage(clientConfig);使用客户端为主参与者调用
JoinStorageSessionAPI。await kinesisVideoWebRTCStorageClient .joinStorageSession({ channelArn:channelARN, }) .promise();如果是观众参与者,则使用客户端调用
JoinStorageSessionAsViewerAPI。await kinesisVideoWebRTCStorageClient .joinStorageSessionAsViewer({ channelArn:channelARN, clientId: "ExampleViewerClientID", }) .promise();包含此代码示例的实时网页可在上找到GitHub
。输入您的区域、 AWS 凭证和信令频道的名称。展开 WebRTC 摄取和存储节点,取消选中 “自动确定摄取模式”。 将手动覆盖切换到 ON,然后选择 “显示” 按钮以手动调用 JoinStorageSession API and/or Show 按钮来手动调用 JoinStorageSessionAsViewer API 。
当您选择 Start Master 或 Start Viewer 时,在应用程序通过
ConnectAsMaster或连接到信令后ConnectAsViewer,将出现一个按钮,让存储会话启动与对等方的 WebRTC 连接,而不是应用程序在连接到信令后立即调用 API。