MediaLive 使用範例 AWS CLI - AWS Command Line Interface

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

MediaLive 使用範例 AWS CLI

下列程式碼範例說明如何使用 AWS Command Line Interface 與來執行動作及實作常見案例 MediaLive。

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

Scenarios (案例) 是向您展示如何呼叫相同服務中的多個函數來完成特定任務的程式碼範例。

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

主題

動作

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

AWS CLI

若要建立頻道

下列create-channel範例會傳入包含您要指定之參數的 JSON 檔案,藉此建立通道。

此範例中的頻道會嵌入 HLS PULL 輸入,該輸入會連接至包含視訊、音訊和內嵌字幕的來源。通道會建立一個 HLS 輸出群組,並將 Akamai 伺服器做為目的地。輸出群組包含兩個輸出:一個用於 H.265 視訊和 AAC 音訊,另一個用於 Web VTT 字幕(僅英文)。

此範例通道的 JSON 包含使用 HLS PULL 輸入並產生 HLS 輸出群組並以 Akamai 作為目的地的通道所需的最小參數。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。

適用於此示例通道但未在此文件中指定的所有參數將採用默認值,設置為 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顯示通道的當前狀態。

若要取得更多資訊,請參閱《AWS 元素 MediaLive 使用指南》中的〈從頭開始建立渠道

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

下列程式碼範例會示範如何使用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對於輸入,與 ARN 中的 ID 相同。 MediaConnectFlows,在此範例中為空白,因為它僅與 type 的輸入搭配使用 MediaConnect。 SecurityGroups,在此範例中為空白,因為它僅與 PUSH 輸入搭配使用。 State這個輸入的。 Tags,這是空的 (此參數的預設值)。

若要取得更多資訊,請參閱《AWS 基本 MediaLive 使用指南》中的〈建立輸入

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