MediaLive 使用示例 AWS CLI - AWS SDK代码示例

AWS 文档 AWS SDK示例 GitHub 存储库中还有更多SDK示例

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

MediaLive 使用示例 AWS CLI

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

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

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

主题

操作

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

AWS CLI

创建频道

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

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

在本示例中,通道包括使用HLSPULL输入并生成以 Akamai 为目标的HLS输出组的通道所需的最低参数。JSONJSON包含以下主要部分:

InputAttachments,它为音频指定一个来源,为字幕指定一个来源。它没有指定视频选择器,这意味着它会 MediaLive 提取它在源中找到的第一个视频。 Destinations,其中包含此通道中单个输出组的两个 IP 地址 (URLs)。这些地址需要密码。 EncoderSettings,其中包含小节。 AudioDescriptions,它指定该频道包含一个音频输出资源,该资源使用来自的音源 InputAttachments,并以AAC格式生成音频。 CaptionDescriptions,它指定该频道包含一个字幕输出资源,该资源使用来自的字幕 InputAttachments,并以 Web 格式生成字幕。VTT VideoDescriptions,它指定该频道包含一个具有指定分辨率的视频输出资产。 OutputGroups,它指定了输出组。在此示例中,有一个名为的组Akamai。连接是使用进行的HLSPUT。输出组包含两个输出。一个输出用于视频资源(已命名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设置为默认值 (DISABLED)。 Tags设置为默认值(空)。 PipelinesRunningCountState显示频道的当前状态。

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

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

AWS 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对于输入,与中的 ID 相同ARN。 MediaConnectFlows,在本示例中为空,因为它仅与类型的输入一起使用 MediaConnect。 SecurityGroups,在本例中为空,因为它仅与PUSH输入一起使用。 State这个输入。 Tags,为空(此参数的默认值)。

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