MediaLive 使用示例 Amazon CLI - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

MediaLive 使用示例 Amazon CLI

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

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

场景是展示如何通过在同一服务中调用多个函数来完成特定任务任务的代码示例。

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

主题

操作

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

Amazon CLI

创建频道

以下create-channel示例通过传入包含您要指定的参数的 JSON 文件来创建频道。

此示例中的频道接收一个 HLS PULL 输入,该输入连接到包含视频、音频和嵌入式字幕的源。该频道创建一个以 Akamai 服务器为目标的 HLS 输出组。输出组包含两个输出:一个用于 H.265 视频和 AAC 音频,另一个用于 Web-VTT 字幕,仅提供英语版本。

此示例频道的 JSON 包含使用 HLS PULL 输入并生成以 Akamai 为目的地的 HLS 输出组的频道所需的最低参数。JSON 包含以下主要部分:

InputAttachments,它为音频指定一个来源,为字幕指定一个来源。它没有指定视频选择器,这意味着它会 MediaLive 提取它在源中找到的第一个视频。 Destinations,其中包含此频道中单个输出组的两个 IP 地址 (URL)。这些地址需要密码。 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 该内容被推送到的地址。 OutputGroupsOutputs。它们显示了输出组和输出的所有参数,包括您未包含但与此通道相关的参数。参数可能为空(可能表示此频道配置中已禁用参数或功能),也可能显示将适用的默认值。 LogLevel设置为默认值(已禁用)。 Tags设置为默认值(空)。 PipelinesRunningCountState显示频道的当前状态。

有关更多信息,请参阅 Amazon Elemental MediaLive 用户指南中的从头开始创建频道

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考CreateChannel中的。

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

Amazon CLI

创建输入

以下create-input示例通过传入包含适用于此类HLS PULL输入的参数的 JSON 文件来创建输入。此示例输入的 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,为空(此参数的默认值)。

有关更多信息,请参阅 Amazon Elemental MediaLive 用户指南中的创建输入

  • 有关 API 的详细信息,请参阅Amazon CLI 命令参考CreateInput中的。