

文档 AWS SDK 示例 GitHub 存储库中还有更多 [S AWS DK 示例](https://github.com/awsdocs/aws-doc-sdk-examples)。

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

# MediaLive 使用示例 AWS CLI
<a name="cli_2_medialive_code_examples"></a>

以下代码示例向您展示了如何使用with来执行操作和实现常见场景 MediaLive。 AWS Command Line Interface 

*操作*是大型程序的代码摘录，必须在上下文中运行。您可以通过操作了解如何调用单个服务函数，还可以通过函数相关场景的上下文查看操作。

每个示例都包含一个指向完整源代码的链接，您可以从中找到有关如何在上下文中设置和运行代码的说明。

**Topics**
+ [操作](#actions)

## 操作
<a name="actions"></a>

### `create-channel`
<a name="medialive_CreateChannel_cli_2_topic"></a>

以下代码示例演示了如何使用 `create-channel`。

**AWS CLI**  
**创建通道**  
以下 `create-channel` 示例通过传入一个 JSON 文件来创建通道，该 JSON 文件中包含要指定的参数。  
此示例中的通道采集一个 HLS PULL 输入，该输入连接到包含视频、音频和嵌入式字幕的源。该通道创建一个以 Akamai 服务器为目标的 HLS 输出组。输出组包含两个输出：一个用于 H.265 视频和 AAC 音频，另一个用于 Web-VTT 字幕，仅提供英语版本。  
此通道示例的 JSON 包含一个使用 HLS PULL 输入并生成以 Akamai 为目标的 HLS 输出组的通道的最低要求参数。JSON 包含以下主要部分：  
`InputAttachments`，用于为音频指定一个来源，以及为字幕指定一个来源。它没有指定视频选择器，这意味着它会 MediaLive 提取它在源中找到的第一个视频。 `Destinations`，其中包含此通道中单个输出组的两个 IP 地址 (URLs)。这些地址需要密码。 `EncoderSettings`，其中包含小节。 `AudioDescriptions`，它指定该频道包含一个音频输出资源，该资源使用来自 InputAttachments的音频并产生 AAC 格式的音频。 `CaptionDescriptions`，它指定该频道包含一个字幕输出资源，该资源使用来自的字幕 InputAttachments，并以 Web-VTT 格式生成字幕。 `VideoDescriptions`，它指定该频道包含一个具有指定分辨率的视频输出资产。 `OutputGroups`，它指定了输出组。在此示例中，有一个名为 `Akamai` 的组。使用 HLS PUT 进行连接。输出组包含两个输出。一个输出用于视频资产（名为 `Video_high`），一个用于音频资产（名为 `Audio_EN`）。一个输出用于字幕资产（名为 `WebVTT_EN`）。  
在此示例中，某些参数不包含任何值或包含嵌套的空参数。 OutputSettings 例如，`Video_and_audio`输出包含几个以空参数 m3u8Settings 结尾的嵌套参数。虽然必须包含此参数，但您可以省略其一个、多个或所有子项，这意味着子项将采用其默认值或为空。  
适用于此示例频道但未在此文件中指定的所有参数要么采用默认值，要么设置为 null，要么采用生成的唯一值 MediaLive。  

```
aws medialive create-channel \
    --cli-input-json file://channel-in-hls-out-hls-akamai.json
```
`channel-in-hls-out-hls-akamai.json` 的内容：  

```
{
    "Name": "News_West",
    "RoleArn": "arn:aws:iam::111122223333:role/MediaLiveAccessRole",
    "InputAttachments": [
        {
            "InputAttachmentName": "local_news",
            "InputId": "1234567",
            "InputSettings": {
                "AudioSelectors": [
                    {
                        "Name": "English-Audio",
                        "SelectorSettings": {
                            "AudioLanguageSelection": {
                                "LanguageCode": "EN"
                            }
                        }
                    }
                ],
                "CaptionSelectors": [
                    {
                        "LanguageCode": "ENE",
                        "Name": "English_embedded"
                    }
                ]
            }
        }
    ],
    "Destinations": [
        {
            "Id": "akamai-server-west",
            "Settings": [
                {
                    "PasswordParam": "/medialive/examplecorp1",
                    "Url": "http://203.0.113.55/news/news_west",
                    "Username": "examplecorp"
                },
                {
                    "PasswordParam": "/medialive/examplecorp2",
                    "Url": "http://203.0.113.82/news/news_west",
                    "Username": "examplecorp"
                }
            ]
        }
    ],
    "EncoderSettings": {
        "AudioDescriptions": [
            {
                "AudioSelectorName": "English-Audio",
                "CodecSettings": {
                    "AacSettings": {}
                },
                "Name": "Audio_EN"
            }
        ],
        "CaptionDescriptions": [
            {
                "CaptionSelectorName": "English_embedded",
                "DestinationSettings": {
                    "WebvttDestinationSettings": {}
                },
                "Name": "WebVTT_EN"
            }
        ],
        "VideoDescriptions": [
            {
                "Height": 720,
                "Name": "Video_high",
                "Width": 1280
            }
        ],
        "OutputGroups": [
            {
                "Name": "Akamai",
                "OutputGroupSettings": {
                    "HlsGroupSettings": {
                        "Destination": {
                            "DestinationRefId": "akamai-server-west"
                        },
                        "HlsCdnSettings": {
                            "HlsBasicPutSettings": {}
                        }
                    }
                },
                "Outputs": [
                    {
                        "AudioDescriptionNames": [
                            "Audio_EN"
                        ],
                        "OutputName": "Video_and_audio",
                        "OutputSettings": {
                            "HlsOutputSettings": {
                                "HlsSettings": {
                                    "StandardHlsSettings": {
                                        "M3u8Settings": {}
                                    }
                                },
                                "NameModifier": "_1"
                            }
                        },
                        "VideoDescriptionName": "Video_high"
                    },
                    {
                        "CaptionDescriptionNames": [
                            "WebVTT_EN"
                        ],
                        "OutputName": "Captions-WebVTT",
                        "OutputSettings": {
                            "HlsOutputSettings": {
                                "HlsSettings": {
                                    "StandardHlsSettings": {
                                        "M3u8Settings": {}
                                    }
                                },
                                "NameModifier": "_2"
                            }
                        }
                    }
                ]
            }
        ],
        "TimecodeConfig": {
            "Source": "EMBEDDED"
        }
    }
}
```
**输出**：  
输出重复 JSON 文件的内容，再加上以下值。所有参数均按字母顺序排序。  
通道的 `ARN`。ARN 的最后一部分是唯一的通道 ID。`EgressEndpoints` 在此通道示例中为空，因为它仅用于 PUSH 输入。当它应用时，它会显示 MediaLive 该内容被推送到的地址。 `OutputGroups`，`Outputs`。它们显示输出组和输出的所有参数，包括您未包含但与此通道相关的参数。参数可能为空（可能表示此通道配置中禁用该参数或功能），也可能显示适用的默认值。`LogLevel` 设置为默认值（DISABLED）。`Tags` 设置为默认值（null）。`PipelinesRunningCount` 和 `State` 显示通道的当前状态。  
有关更多信息，请参阅 *AWS Elemental MediaLive 用户指南*中的[从头开始创建频道](https://docs.aws.amazon.com/medialive/latest/ug/creating-channel-scratch.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[CreateChannel](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/medialive/create-channel.html)*中的。

### `create-input`
<a name="medialive_CreateInput_cli_2_topic"></a>

以下代码示例演示了如何使用 `create-input`。

**AWS CLI**  
**创建输入**  
以下 `create-input` 示例通过传入一个 JSON 文件来创建 `HLS PULL` 输入，该文件中包含适用于此类输入的参数。此输入示例的 JSON 为输入指定了两个来源（地址），以支持采集中的冗余。这些地址需要密码。  

```
aws medialive create-input \
    --cli-input-json file://input-hls-pull-news.json
```
`input-hls-pull-news.json` 的内容：  

```
{
    "Name": "local_news",
    "RequestId": "cli000059",
    "Sources": [
            {
                    "Url": "https://203.0.113.13/newschannel/anytownusa.m3u8",
                    "Username": "examplecorp",
                    "PasswordParam": "/medialive/examplecorp1"
            },
       {
                    "Url": "https://198.51.100.54/fillervideos/oceanwaves.mp4",
                    "Username": "examplecorp",
                    "PasswordParam": "examplecorp2"
            }
    ],
    "Type": "URL_PULL"
}
```
**输出**：  
输出重复 JSON 文件的内容，再加上以下值。所有参数均按字母顺序排序。  
输入的 `Arn`。ARN 的最后一部分是唯一的输入 ID。 `Attached Channels`，对于新创建的输入，它始终为空。 `Destinations`，在本示例中为空，因为它仅与 PUSH 输入一起使用。 `Id`对于输入，与 ARN 中的 ID 相同。 `MediaConnectFlows`，在本示例中为空，因为它仅与类型的输入一起使用 MediaConnect。 `SecurityGroups`，在本示例中为空，因为它仅与 PUSH 输入一起使用。 `State`这个输入。 `Tags`，为空（此参数的默认值）。  
有关更多信息，请参阅 *AWS Elemental MediaLive 用户指南*中的[创建输入](https://docs.aws.amazon.com/medialive/latest/ug/create-input.html)。  
+  有关 API 的详细信息，请参阅*AWS CLI 命令参考[CreateInput](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/medialive/create-input.html)*中的。