IVS 私有摄取 - Amazon IVS

IVS 私有摄取

对于需要安全、实时视频摄取的工作负载,您可以使用接口虚拟私有云(VPC)端点在您的 Amazon VPC 和 IVS 之间建立安全的私有连接。这会使您的 IVS 摄取流量保留在 AWS 网络内并于公共互联网隔离。接口 VPC 端点由 AWS PrivateLink 提供支持,后者是一种 AWS 技术,通过将弹性网络接口与 Amazon VPC 中的私有 IP 结合使用,从而实现 AWS 服务之间的私有通信。有关更多信息,请参阅 Amazon Virtual Private Cloud使用接口 VPC 端点访问 AWS 服务(AWS PrivateLink)。

使用接口虚拟私有云(VPC)端点在您的 Amazon VPC 和 IVS 之间建立安全的私有连接。

您可以从 Amazon VPC 或通过 AWS Direct Connect 将 RTMP(S) 流摄取到 IVS 中,然后通过私有连接将视频发送到 IVS 低延迟频道或 IVS 实时舞台中。您需要支付标准的接口 VPC 端点小时使用费和数据处理费;有关详情,请参阅接口端点定价。启用此功能不会产生其他的 Amazon IVS 成本。

确保您的 Amazon VPC 位于受支持的区域:

  • ap-northeast-1

  • ap-northeast-2

  • ap-south-1

  • ap-southeast-1

  • ap-southeast-2

  • eu-central-1

  • eu-north-1

  • eu-west-1

  • eu-west-3

  • sa-east-1

  • us-east-1

  • us-east-2

  • us-west-2

注意:虽然您的 Amazon VPC 必须位于这些受支持的区域之一,但 IVS 控制面板资源不必与该 Amazon VPC 位于同一区域或 AWS 账户中。有关详细信息,请参阅全球解决方案,区域控制

要通过接口 VPC 端点摄取流,请使用由 VPC 端点的 DNS 名称和 IVS 资源的流密钥(频道或舞台摄取配置)组成的私有摄取 URL,格式如下:

rtmps://<VPC_ENDPOINT_DNS_NAME>/app/<STREAM_KEY>

要流式传输到某个频道,请创建一个频道并按照设置流传输软件中的说明检索其流密钥。要使用 RTMP(S) 或 E-RTMP(S) 流式传输到舞台,请创建 RTMP 摄取配置并使用其关联的流密钥。

以下快速演练展示了如何使用接口 VPC 端点从 EC2 实例流式传输到 IVS 频道或舞台:

第 1 步:创建接口 VPC 端点

每个 VPC 端点都需要与您账户中的某个 VPC 关联。如果您的账户已有默认 VPC,则可使用该默认 VPC;否则,请创建新的 VPC。如果要在您的 VPC 端点上使用 IPv6 或双栈模式,请确保您的 VPC 具有分配了 IPv6 CIDR 的子网。

要创建 VPC 端点,请参阅 Amazon VPC 文档中创建 VPC 端点部分的说明。进入创建端点页面后:

  1. 选择 AWS 服务。然后在服务部分中,搜索 IVS。您应会看到一个类似于 com.amazonaws.<region>.ivs.contribute 的服务。

  2. 网络设置部分中,选择您要在其中创建该端点的 VPC。在子网部分中,选择要为该端点配置的子网和其他网络设置。

  3. 安全组部分中,选择一个允许来自您要流式传输的任何位置的入站流量通过 TCP 端口 443 和 1935 的安全组。您可以在创建端点后对其进行编辑,因此,如果您还不知道要使用哪个安全组,请暂时将其取消选中。

选择创建端点后,您将返回到 VPC 端点概览页面。您可会在该页面上看到刚刚创建的 VPC 端点:

  • 新端点的状态会停留在待处理大约 30 秒,然后将被自动接受,状态变为绿色的可用

  • 在 VPC 端点信息面板的右侧,您将看到与您的 VPC 端点关联的几个 DNS 名称。复制并保存列表中的第一个地址;在后续步骤中,您需要将其指定为流摄取服务器 URL。

步骤 2:启动 EC2 实例

客户可以使用多种选项来广播来自 AWS 的流。此处的示例使用一个安装了 FFmpeg 的 Ubuntu EC2 实例。

首先,创建一个 EC2 实例(t2.micro 即可)。请务必在您创建 VPC 端点的同一 VPC 中创建该实例。

您分配给该实例的安全组需要允许通过 TCP 端口 443 和 1935 到该 VPC 端点的出口流量。此外,如果使用 SSH 访问实例,请务必允许通过 TCP 端口 22 的入口流量,并允许通过 TCP 端口 80 的出口流量,以便执行以下第 3 步中的包管理器操作。

启动实例。实例初始化后,使用 SSH 或 AWS 会话管理器连接到实例。

第 3 步:在您的实例上安装 FFmpeg

连接到实例后,在您的计算机上运行以下命令来安装 FFmpeg(假设该实例是使用 Ubuntu 创建的):

sudo add-apt-repository ppa:savoury1/ffmpeg4 sudo apt-get update sudo apt-get install ffmpeg

第 4 步:流式传输到 IVS 频道或舞台

私有摄取 URL 格式为:

rtmps://<VPC_ENDPOINT_DNS_NAME>/app/<STREAM_KEY>

例如:

rtmps://vpce-0a8dfb0b7a4611439-xyzabc12.contribute.ivs.us-west-2.vpce.amazonaws.com/app/sk-usw2-abc123example456

运行以下示例 FFmpeg 命令,将 <VPC_ENDPOINT_DNS_NAME> 替换为第 1 步中的 DNS 名称,将 <STREAM_KEY> 替换为相应的流密钥(用于频道或摄取配置):

ffmpeg -re -f lavfi -i "testsrc=duration=360:size=1024x768:rate=30" -f lavfi -i "sine=frequency=1000" -pix_fmt yuv420p -profile:v baseline -level 3.0 -r 30 -g 60 -shortest -vcodec libx264 -acodec aac -f flv "rtmps://<VPC_ENDPOINT_DNS_NAME>/app/<STREAM_KEY>"

如果以上所有操作都成功完成,则您的流应正在运行。对于通过 VPC 端点摄取的流,其加工和处理方式应与通过公共 IVS 端点摄取的流相同;唯一的区别是摄取路径不同。

使用完后,请务必删除创建的 EC2 实例和 VPC 端点,以免产生任何不必要的费用。