使用 的 MediaLive 範例 AWS CLI - AWS SDK 程式碼範例

文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的 GitHub 範例。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 的 MediaLive 範例 AWS CLI

下列程式碼範例示範如何使用 AWS Command Line Interface with MediaLive 來執行動作和實作常見案例。

Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然 動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。

每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。

主題

動作

下列程式碼範例示範如何使用 create-channel

AWS CLI

建立頻道

下列create-channel範例會透過傳遞至包含您要指定之參數的 JSON 檔案來建立頻道。

此範例中的頻道會擷取 HLS PULL輸入,該輸入會連接至包含影片、音訊和內嵌字幕的來源。頻道會建立一個 HLS 輸出群組,並以 Akamai 伺服器作為目的地。輸出群組包含兩個輸出:一個用於 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)。

在此範例中,某些參數不包含任何值或包含巢狀空白參數。例如,Video_and_audio輸出的 OutputSettings 包含數個巢狀參數,以空參數 M3u8Settings 結尾。必須包含此參數,但您可以省略一個、數個或所有子項,這表示子項將採用其預設值或為 null。

套用至此範例頻道但未在此檔案中指定的所有參數都會採用預設值、設定為 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 輸入。套用時,它會顯示內容推送到的 on MediaLive 地址。OutputGroupsOutputs。這些會顯示輸出群組和輸出的所有參數,包括您未包含但與此頻道相關的參數。參數可能是空的 (可能表示此頻道組態中已停用參數或功能),或可能顯示將套用的預設值。LogLevel 設定為預設值 (DISABLED)。Tags 設定為預設值 (空)。PipelinesRunningCountState顯示頻道的目前狀態。

如需詳細資訊,請參閱 AWS Elemental MediaLive 使用者指南中的從 Scratch 建立頻道

  • 如需 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,它只與 type MediaConnect 的輸入搭配使用。在此範例中SecurityGroups,它為空白,因為它只與此輸入中的 PUSH 輸入搭配使用。 Tags(此參數的預設值)。State

如需詳細資訊,請參閱 AWS Elemental MediaLive 使用者指南中的建立輸入

  • 如需 API 詳細資訊,請參閱 AWS CLI 命令參考中的 CreateInput