

# IVS 私有摄取
<a name="private-ingest-ll"></a>

对于需要安全、实时视频摄取的工作负载，您可以使用接口虚拟私有云（VPC）端点在您的 Amazon VPC 和 IVS 之间建立安全的私有连接。这会使您的 IVS 摄取流量保留在 AWS 网络内并于公共互联网隔离。接口 VPC 端点由 AWS PrivateLink 提供支持，后者是一种 AWS 技术，通过将弹性网络接口与 Amazon VPC 中的私有 IP 结合使用，从而实现 AWS 服务之间的私有通信。有关更多信息，请参阅 [Amazon Virtual Private Cloud](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Introduction.html) 和[使用接口 VPC 端点访问 AWS 服务](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#create-interface-endpoint)（AWS PrivateLink）。

![\[使用接口虚拟私有云（VPC）端点在您的 Amazon VPC 和 IVS 之间建立安全的私有连接。\]](http://docs.aws.amazon.com/zh_cn/ivs/latest/LowLatencyUserGuide/images/VPC_endpoint.png)


您可以从 Amazon VPC 或通过 AWS Direct Connect 将 RTMP(S) 流摄取到 IVS 中，然后通过私有连接将视频发送到 IVS 低延迟频道或 IVS 实时舞台中。您需要支付标准的接口 VPC 端点小时使用费和数据处理费；有关详情，请参阅[接口端点定价](https://aws.amazon.com/privatelink/pricing/)。启用此功能不会产生其他的 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 账户中。有关详细信息，请参阅[全球解决方案，区域控制](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/what-is.html#what-is-aws)。

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

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

要流式传输到某个频道，请创建一个频道并按照[设置流传输软件](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/getting-started-set-up-streaming.html)中的说明检索其流密钥。要使用 RTMP(S) 或 E-RTMP(S) 流式传输到舞台，请创建 [RTMP 摄取配置](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/rt-rtmp-publishing.html)并使用其关联的流密钥。

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

1. [创建一个接口 VPC 端点](#private-ingest-create-interface-vpc-endpoint)。

1. [启动一个 EC2 实例](#private-ingest-launch-ec2-instance)。

1. [在您的实例上安装 FFmpeg](#private-ingest-install-ffmpeg)。

1. [流式传输到 IVS 频道或舞台](#private-ingest-stream-to-channel-or-stage)。

## 第 1 步：创建接口 VPC 端点
<a name="private-ingest-create-interface-vpc-endpoint"></a>

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

要创建 VPC 端点，请参阅 Amazon VPC 文档中[创建 VPC 端点](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws)部分的说明。进入**创建端点**页面后：

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

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

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

选择**创建端点**后，您将返回到 VPC **端点**概览页面。您可会在该页面上看到刚刚创建的 VPC 端点：
+ 新端点的**状态**会停留在**待处理**大约 30 秒，然后将被自动接受，状态变为绿色的**可用**。
+ 在 VPC 端点信息面板的右侧，您将看到与您的 VPC 端点关联的几个 **DNS 名称**。复制并保存列表中的第一个地址；在后续步骤中，您需要将其指定为流摄取服务器 URL。

## 步骤 2：启动 EC2 实例
<a name="private-ingest-launch-ec2-instance"></a>

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

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

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

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

## 第 3 步：在您的实例上安装 FFmpeg
<a name="private-ingest-install-ffmpeg"></a>

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

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

## 第 4 步：流式传输到 IVS 频道或舞台
<a name="private-ingest-stream-to-channel-or-stage"></a>

私有摄取 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 端点，以免产生任何不必要的费用。