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-channelcrea 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 denominatoAkamai. La connessione viene effettuata utilizzando HLS PUT. Il gruppo di output contiene due output. Un’uscita è per un asset video (denominatoVideo_high) e l’asset audio (denominatoAudio_EN). Un output è per l’asset didascalie (denominatoWebVTT_EN).In questo esempio, alcuni parametri non contengono alcun valore o contengono parametri vuoti annidati. Ad esempio, OutputSettings per l’output
Video_and_audiocontiene 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-jsonfile://channel-in-hls-out-hls-akamai.jsonContenuto 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.
ARNper 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).PipelinesRunningCounteStatemostrano 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-inputcrea un inputHLS PULLpassando 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-jsonfile://input-hls-pull-news.jsonContenuto 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.
Arnper 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.Idper 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.Statedi 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.
-