本文档仅适用于 AWS CLI 版本 1。有关 AWS CLI 版本 2 的相关文档,请参阅版本 2 用户指南。
使用 AWS CLI 的 MediaLive 示例
以下代码示例演示了如何通过将 AWS Command Line Interface与 MediaLive 结合使用,来执行操作和实现常见场景。
操作 是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。
每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。
主题
操作
以下代码示例演示了如何使用 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 地址(URL)。这些地址需要密码。EncoderSettings
,其中包含分部。AudioDescriptions
,用于指定通道包含一个音频输出资产,该资产使用来自 InputAttachments 的来源,并产生 AAC 格式的音频。CaptionDescriptions
,用于指定通道包含一个字幕输出资产,该资产使用来自 InputAttachments 的来源,并以 Web-VTT 格式生成字幕。VideoDescriptions
,用于指定通道包含一个视频输出资产,该资产具有指定分辨率。OutputGroups
,用于指定输出组。在此示例中,有一个名为Akamai
的组。使用 HLS PUT 进行连接。输出组包含两个输出。一个输出用于视频资产(名为Video_high
),一个用于音频资产(名为Audio_EN
)。一个输出用于字幕资产(名为WebVTT_EN
)。在此示例中,某些参数不包含任何值或包含嵌套的空参数。例如,
Video_and_audio
输出的 OutputSettings 包含几个以空参数 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 用户指南》中的从头开始创建通道。
-
有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateChannel
。
-
以下代码示例演示了如何使用 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 用户指南》中的创建输入。
-
有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CreateInput
。
-