文件 AWS SDK AWS 範例 SDK 儲存庫中有更多可用的
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 的 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 地址。OutputGroups
,Outputs
。這些會顯示輸出群組和輸出的所有參數,包括您未包含但與此頻道相關的參數。參數可能是空的 (可能表示此頻道組態中已停用參數或功能),或可能顯示將套用的預設值。LogLevel
設定為預設值 (DISABLED)。Tags
設定為預設值 (空)。PipelinesRunningCount
並State
顯示頻道的目前狀態。如需詳細資訊,請參閱 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
。
-