Esempi per MediaLive con AWS CLI - AWS Command Line Interface

Esempi per MediaLive con AWS CLI

Gli esempi di codice seguenti mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Command Line Interface con MediaLive.

Le operazioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le operazioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Ogni esempio include un link al codice sorgente completo, dove è possibile trovare le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Operazioni

L’esempio di codice seguente mostra come utilizzare create-channel.

AWS CLI

Come creare un canale

Nell’esempio seguente create-channel crea un canale passando in un file JSON che contiene i parametri da specificare.

Il canale in questo esempio inserisce un ingresso HLS PULL che si collega a una sorgente contenente video, audio e didascalie incorporate. Il canale crea un gruppo di output HLS con un server Akamai come destinazione. Il gruppo di output contiene due uscite: una per il video H.265 e l’audio AAC e una per i sottotitoli Web-VTT, solo in inglese.

Il codice JSON per questo canale di esempio include i parametri minimi richiesti per un canale che utilizza un input HLS PULL e che produce un gruppo di output HLS con Akamai come destinazione. Il JSON contiene le seguenti sezioni principali:

InputAttachments, che specifica una fonte per l’audio e una fonte per i sottotitoli. Non specifica un selettore video, e ciò significa che MediaLive estrae il primo video che trova nella fonte. Destinations, contenente i due indirizzi IP (URL) per il singolo gruppo di output in questo canale. Questi indirizzi richiedono delle password.EncoderSettings, che contiene sottosezioni.AudioDescriptions, con la specificazione che il canale contiene un asset di uscita audio, che utilizza la sorgente di InputAttachments e produce audio in formato AAC.CaptionDescriptions, che specifica che il canale contiene un asset di output delle didascalie, che utilizza il sorgente da InputAttachments e genera didascalie in formato Web-VTT.VideoDescriptions, che specifica che il canale contiene un asset di uscita video, con la risoluzione specificata.OutputGroups, che specifica i gruppi di output. In questo esempio è presente un solo gruppo denominato Akamai. La connessione viene effettuata utilizzando HLS PUT. Il gruppo di output contiene due output. Un’uscita è per un asset video (denominato Video_high) e l’asset audio (denominatoAudio_EN). Un output è per l’asset didascalie (denominato WebVTT_EN).

In questo esempio, alcuni parametri non contengono alcun valore o contengono parametri vuoti annidati. Ad esempio, OutputSettings per l’output Video_and_audio contiene diversi parametri annidati che terminano con un parametro vuoto M3u8Settings. Questo parametro deve essere incluso, ma è possibile omettere uno, più o tutti i relativi elementi secondari, e ciò significa che il parametro secondario assumerà il valore predefinito o sarà null.

Tutti i parametri che si applicano a questo canale di esempio ma che non sono specificati in questo file assumeranno il valore predefinito, saranno impostati su null o assumeranno un valore univoco generato da MediaLive.

aws medialive create-channel \ --cli-input-json file://channel-in-hls-out-hls-akamai.json

Contenuto di 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" } } }

Output:

L’output ripete il contenuto del file JSON, più i seguenti valori. Tutti i parametri sono elencati in ordine alfabetico.

ARN per il canale. L’ultima parte dell’ARN è l’ID. del canale univoco.EgressEndpoints è vuoto in questo canale di esempio perché utilizzato solo per gli ingressi PUSH. Quando viene applicato, mostra gli indirizzi su MediaLive a cui viene inviato il contenuto.OutputGroups, Outputs. Questi mostrano tutti i parametri per il gruppo di output e gli output, compresi quelli non inclusi ma che sono rilevanti per questo canale. I parametri potrebbero essere vuoti (ad esempio indicando che il parametro o la funzionalità sono disabilitati in questa configurazione del canale) o potrebbero mostrare il valore predefinito che verrà applicato.LogLevel è impostato sul valore predefinito (DISABLED).Tags è impostato sul valore predefinito (null).PipelinesRunningCount e State mostrano lo stato attuale del canale.

Per informazioni, consulta Creare un canale da zero nella Guida per l’utente di AWS Elemental MediaLive.

  • Per informazioni dettagliate sull’API, consulta CreateChannel in AWS CLI Command Reference.

L’esempio di codice seguente mostra come utilizzare create-input.

AWS CLI

Come creare un input

Nell’ esempio seguente create-input crea un input HLS PULL passando in un file JSON che contiene i parametri applicabili a questo tipo di input. Il codice JSON per questo esempio di input specifica due fonti (indirizzi) per l’input, in modo da supportare la ridondanza nell’inserimento. Questi indirizzi richiedono una password.

aws medialive create-input \ --cli-input-json file://input-hls-pull-news.json

Contenuto di 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" }

Output:

L’output ripete il contenuto del file JSON, più i seguenti valori. Tutti i parametri sono elencati in ordine alfabetico.

Arn per l’input. L’ultima parte dell’ARN è l’ID di input univoco.Attached Channels, che è sempre vuoto per un input appena creato.Destinations, che in questo esempio è vuoto perché viene utilizzato solo con un input PUSH.Id per l’input, lo stesso dell’ID nell’ARN.MediaConnectFlows, che in questo esempio è vuoto perché viene utilizzato solo con un input di tipo Mediaconnect.SecurityGroups, che in questo esempio è vuoto perché viene utilizzato solo con un input PUSH.State di questo input.Tags, che è vuoto (impostazione predefinita per questo parametro).

Per informazioni, consulta Creating an Input nella Guida per l’utente di AWS Elemental MediaLive.

  • Per informazioni dettagliate sull’API, consulta CreateInput in AWS CLI Command Reference.