Ejemplos de MediaLive que utilizan la AWS CLI - AWS Command Line Interface

Ejemplos de MediaLive que utilizan la AWS CLI

Los siguientes ejemplos de código muestran cómo ejecutar acciones e implementar escenarios comunes usando AWS Command Line Interface con MediaLive.

Las acciones son extractos de código de programas más grandes y deben ejecutarse en contexto. Mientras las acciones muestran cómo llamar a las funciones de servicio individuales, es posible ver las acciones en contexto en los escenarios relacionados.

En cada ejemplo se incluye un enlace al código de origen completo, con instrucciones de configuración y ejecución del código en el contexto.

Acciones

En el siguiente ejemplo de código, se muestra cómo utilizar create-channel.

AWS CLI

Para crear un canal

En el siguiente ejemplo de create-channel, se crea un canal pasando un archivo JSON que contiene los parámetros que desea especificar.

El canal de este ejemplo ingiere una entrada HLS PULL que se conecta a un origen que contiene vídeo, audio y subtítulos incrustados. El canal crea un grupo de salida HLS con un servidor de Akamai como destino. El grupo de salida contiene dos salidas: una para el vídeo H.265 y el audio AAC, y otra para los subtítulos Web-VTT, solo en inglés.

El JSON de este canal de ejemplo incluye los parámetros mínimos necesarios para un canal que utilice una entrada HLS PULL y que genere un grupo de salidas HLS con Akamai como destino. El JSON contiene las siguientes secciones principales:

InputAttachments, que especifica un origen para el audio y un origen para los subtítulos. No especifica un selector de vídeo, lo que significa que MediaLive extrae el primer vídeo que encuentra en el origen. Destinations, que contiene las dos direcciones IP (URL) del único grupo de salida de este canal. Estas direcciones requieren contraseñas. EncoderSettings, que contiene subsecciones. AudioDescriptions, que especifica que el canal contiene un activo de salida de audio, que utiliza el origen de InputAttachments y produce audio en formato AAC. CaptionDescriptions, que especifica que el canal contiene un activo de salida de subtítulos, que utiliza el origen de InputAttachments y produce subtítulos en formato Web-VTT. VideoDescriptions, que especifica que el canal contiene un activo de salida de vídeo con la resolución especificada. OutputGroups, que especifica los grupos de salida. En este ejemplo hay un grupo llamado Akamai. La conexión se realiza mediante HLS PUT. El grupo de salida contiene dos salidas. Una salida es para el activo de vídeo (llamado Video_high) y el activo de audio (llamado Audio_EN). Una salida es para el activo de subtítulos (llamado WebVTT_EN).

En este ejemplo, algunos de los parámetros no contienen ningún valor o contienen parámetros vacíos anidados. Por ejemplo, OutputSettings para la salida Video_and_audio contiene varios parámetros anidados que terminan en un parámetro vacío M3u8Settings. Este parámetro debe estar incluido, pero puede omitir uno, varios o todos sus elementos secundarios, lo que significa que el elemento secundario tomará su valor predeterminado o será nulo.

Todos los parámetros que se apliquen a este canal de ejemplo pero que no estén especificados en este archivo tomarán el valor predeterminado, se establecerán en nulo o tomarán un valor único generado por MediaLive.

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

Contenido 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" } } }

Salida:

La salida repite el contenido del archivo JSON más los valores siguientes. Todos los parámetros están ordenados alfabéticamente.

ARN para el canal. La última parte del ARN es el ID de canal único. EgressEndpoints está en blanco en este canal de ejemplo porque solo se usa para entradas PUSH. Cuando se aplica, muestra las direcciones de MediaLive a las que se envía el contenido.OutputGroups, Outputs. Muestran todos los parámetros del grupo de salida y las salidas, incluidos las que no incluyó pero que son relevantes para este canal. Es posible que los parámetros estén vacíos (lo que podría indicar que el parámetro o la característica están deshabilitados en esta configuración de canal) o pueden mostrar el valor predeterminado que se aplicará. LogLevel está establecido en el valor predeterminado (DISABLED). Tags está establecido en el valor predeterminado (null). PipelinesRunningCount y State muestran el estado actual del canal.

Para obtener más información, consulte Creación de un canal desde cero en la Guía del usuario de AWS Elemental MediaLive.

  • Para obtener información sobre la API, consulte CreateChannel en la Referencia de comandos de la AWS CLI.

En el siguiente ejemplo de código, se muestra cómo utilizar create-input.

AWS CLI

Para crear una entrada

En el siguiente ejemplo de create-input, se crea una entrada HLS PULL pasando un archivo JSON que contiene los parámetros que se aplican a este tipo de entrada. El JSON de esta entrada de ejemplo especifica dos orígenes (direcciones) para la entrada, a fin de admitir la redundancia en la ingesta. Estas direcciones requieren contraseña.

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

Contenido 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" }

Salida:

La salida repite el contenido del archivo JSON más los valores siguientes. Todos los parámetros están ordenados alfabéticamente.

Arn para la entrada. La última parte del ARN es el ID de entrada único. Attached Channels, que siempre está vacío para una entrada recién creada. Destinations, que está vacío en este ejemplo porque solo se usa con una entrada PUSH. Id para la entrada, igual que el ID del ARN. MediaConnectFlows, que está vacío en este ejemplo porque solo se usa con una entrada de tipo MediaConnect. SecurityGroups, que está vacío en este ejemplo porque solo se usa con una entrada PUSH. State de esta entrada. Tags, que está vacío (el valor predeterminado para este parámetro).

Para obtener más información, consulte Creating an Input en la Guía del usuario de AWS Elemental MediaLive.

  • Para obtener más información sobre la API, consulte CreateInput en la Referencia de comandos de la AWS CLI.