Exemplos do MediaLive usando a AWS CLI - AWS Command Line Interface

Esta documentação é somente para a versão 1 da AWS CLI. Para obter a documentação relacionada à AWS CLI versão 2, consulte o Guia do usuário da versão 2.

Exemplos do MediaLive usando a AWS CLI

Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando a AWS Command Line Interface com o MediaLive.

Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar funções de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.

Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.

Tópicos

Ações

O código de exemplo a seguir mostra como usar create-channel.

AWS CLI

Para criar um canal

O exemplo create-channel a seguir cria um canal transmitindo um arquivo JSON que contenha os parâmetros que serão especificados.

O canal neste exemplo ingere uma entrada HLS PULL que se conecta a uma fonte que contém vídeo, áudio e legendas incorporadas. O canal cria um grupo de saída HLS com um servidor Akamai como destino. O grupo de saída contém duas saídas: uma para vídeo H.265 e áudio AAC e outra para legendas Web-VTT, somente em inglês.

O JSON desse canal de exemplo inclui os parâmetros mínimos necessários para um canal que usa uma entrada HLS PULL e que produz um grupo de saída HLS com a Akamai como destino. O JSON contém as seguintes seções principais:

InputAttachments, que especifica uma fonte para o áudio e uma fonte para as legendas. Ele não especifica um seletor de vídeo, o que significa que o MediaLive extrai o primeiro vídeo encontrado na fonte. Destinations, que contém os dois endereços IP (URLs) para o único grupo de saída nesse canal. Esses endereços exigem senhas. EncoderSettings, que contém subseções. AudioDescriptions, que especifica que o canal contém um ativo de saída de áudio, que usa a fonte de InputAttachments e produz áudio no formato AAC. CaptionDescriptions, que especifica que o canal contém um ativo de saída de legendas, que usa a fonte de InputAttachments e produz legendas no formato Web-VTT. VideoDescriptions, que especifica que o canal contém um ativo de saída de vídeo, com a resolução especificada. OutputGroups, que especifica os grupos de saída. Neste exemplo, o grupo de recursos é chamado de Akamai. A conexão é feita usando HLS PUT. O grupo de saída contém duas saídas. Uma saída é para o ativo de vídeo (chamado Video_high) e o ativo de áudio (chamado Audio_EN). Uma saída é para o ativo de legendas (chamado WebVTT_EN).

Neste exemplo, alguns dos parâmetros não contêm valor ou contêm parâmetros vazios aninhados. Por exemplo, OutputSettings para a saída Video_and_audio contém vários parâmetros aninhados que terminam em um parâmetro M3u8Settings vazio. Esse parâmetro deve ser incluído, mas é possível omitir um, vários ou todos os seus filhos, o que significa que o filho assumirá seu valor padrão ou será nulo.

Todos os parâmetros que se aplicam a esse canal de exemplo, mas que não estão especificados nesse arquivo, assumirão o valor padrão, serão definidos como nulos ou terão um valor exclusivo gerado pelo MediaLive.

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

Conteúdo de 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" } } }

Saída:

A saída repete o conteúdo do arquivo JSON, além dos valores a seguir. Todos os parâmetros são ordenados alfabeticamente.

ARN para o canal. A última parte do ARN é o ID exclusivo do canal. EgressEndpoints está em branco neste canal de exemplo porque é usado somente para entradas PUSH. Quando aplicável, mostra os endereços no MediaLive para os quais o conteúdo é enviado. OutputGroups, Outputs. Mostram todos os parâmetros do grupo de saída e das saídas, incluindo os que não foram incluídos, mas que são relevantes para esse canal. Os parâmetros podem estar vazios (talvez indicando que o parâmetro ou atributo está desativado nessa configuração de canal) ou podem mostrar o valor padrão que será aplicado. LogLevel está definido como padrão (DESATIVADO). Tags é definido como padrão (nulo). PipelinesRunningCount e State mostram o status atual do canal.

Para obter ajuda, consulte Criar um canal a partir do zero no Guia do usuário do AWS Elemental MediaLive.

  • Para ver detalhes da API, consulte CreateChannel na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar create-input.

AWS CLI

Para criar uma entrada

O exemplo create-input a seguir cria uma entrada HLS PULL passando um arquivo JSON que contém os parâmetros que se aplicam a esse tipo de entrada. O JSON desse exemplo de entrada especifica duas fontes (endereços) para a entrada, a fim de oferecer suporte à redundância na ingestão. Esses endereços exigem senhas.

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

Conteúdo de 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" }

Saída:

A saída repete o conteúdo do arquivo JSON, além dos valores a seguir. Todos os parâmetros são ordenados alfabeticamente.

Arn para a entrada. A última parte do ARN é o ID de entrada exclusivo Attached Channels, que é sempre vazio para uma entrada recém-criada Destinations, que está vazio neste exemplo porque é usado somente com uma entrada PUSH Id para a entrada, o mesmo que o ID no ARN MediaConnectFlows, que está vazio neste exemplo porque é usado somente com uma entrada do tipo MediaConnect SecurityGroups, que está vazio neste exemplo porque é usado somente com uma entrada PUSH State é o estado desta entrada Tags, que está vazio (o padrão para esse parâmetro).

Para obter mais informações, consulte Criar uma entrada no Guia do usuário do AWS Elemental MediaLive.

  • Para ver detalhes da API, consulte CreateInput na Referência de comandos da AWS CLI.