View a markdown version of this page

连接到存储会话 - Kinesis Video Streams

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

连接到存储会话

按照以下步骤创建存储会话并启动 WebRTC 连接过程。主参与者应该打电话JoinStorageSession。观众参与者应致电JoinStorageSessionAsViewer。

这将使存储会话通过信号将SDP报价和ICE候选人发送给通过连接的主参与者或通过ConnectAsMaster连接的指定查看者参与者。ConnectAsViewer

  1. 获取信令信道的 ARN,因为这是下一步必需的输入。如果您已经知道 ARN,请继续下一步。

    AWS 管理控制台
    1. 打开 Kinesis 视频流信令频道控制台。

    2. 选择您的信令信道的名称。

    3. 在 “信令信道信息” 选项卡下,找到您的信令信道的 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);

    使用客户端调用 DescribeSignalingChannel API。

    const describeSignalingChannelResponse = await kinesisVideoClient .describeSignalingChannel({ ChannelName: 'YourChannelName', }) .promise();

    保存响应。

    const channelARN = describeSignalingChannelResponse.ChannelInfo.ChannelARN;
  2. 获取 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);

    使用客户端调用 GetSignalingChannelEndpoint API。

    const getSignalingChannelEndpointResponse = await kinesisVideoClient .getSignalingChannelEndpoint({ ChannelARN: channelARN, SingleMasterChannelEndpointConfiguration: { Protocols: ['WEBRTC'], Role: 'MASTER', }, }) .promise();

    保存响应:

    const webrtcEndpoint = getSignalingChannelEndpointResponse.ResourceEndpointList[0].ResourceEndpoint;
  3. 使用频道 ARN 和 WEBRTC 终端节点进行 API 调用。如果参与者通过ConnectAsMaster或 ConnectAsViewer WebSocket 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或 JoinStorageSessionAsViewer API。 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);

    使用客户端为主参与者调用 JoinStorageSession API。

    await kinesisVideoWebRTCStorageClient .joinStorageSession({ channelArn: channelARN, }) .promise();

    如果是观众参与者,则使用客户端调用 JoinStorageSessionAsViewer API。

    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。