MediaLive Beispiele mit AWS CLI - AWS SDKCode-Beispiele

Weitere AWS SDK Beispiele sind im Repo AWS Doc SDK Examples GitHub verfügbar.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

MediaLive Beispiele mit AWS CLI

Die folgenden Codebeispiele zeigen Ihnen, wie Sie mithilfe von AWS Command Line Interface with Aktionen ausführen und allgemeine Szenarien implementieren MediaLive.

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Aktionen zeigen Ihnen zwar, wie Sie einzelne Servicefunktionen aufrufen, aber Sie können Aktionen im Kontext der zugehörigen Szenarien sehen.

Jedes Beispiel enthält einen Link zum vollständigen Quellcode, in dem Sie Anweisungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt die Verwendungcreate-channel.

AWS CLI

Um einen Kanal zu erstellen

Im folgenden create-channel Beispiel wird ein Kanal erstellt, indem eine JSON Datei übergeben wird, die die Parameter enthält, die Sie angeben möchten.

Der Kanal in diesem Beispiel nimmt eine HLS PULL Eingabe auf, die eine Verbindung zu einer Quelle herstellt, die Video, Audio und eingebettete Untertitel enthält. Der Kanal erstellt eine HLS Ausgabegruppe mit einem Akamai-Server als Ziel. Die Ausgabegruppe enthält zwei Ausgänge: einen für H.265-Video und AAC -Audio und einen für die VTT Webuntertitel, nur in englischer Sprache.

Der Kanal JSON für dieses Beispiel enthält die mindestens erforderlichen Parameter für einen Kanal, der eine HLS PULL Eingabe verwendet und eine HLS Ausgangsgruppe mit Akamai als Ziel erzeugt. Der JSON enthält die folgenden Hauptabschnitte:

InputAttachments, das eine Quelle für das Audio und eine Quelle für die Untertitel angibt. Es gibt keinen Videoauswahlschalter an, was bedeutet, dass das erste Video MediaLive extrahiert wird, das in der Quelle gefunden wird. Destinations, das die beiden IP-Adressen (URLs) für die einzelne Ausgangsgruppe in diesem Kanal enthält. Für diese Adressen sind Kennwörter erforderlich. EncoderSettings, das Unterabschnitte enthält. AudioDescriptions, was angibt, dass der Kanal ein Audioausgabe-Asset enthält, das die Quelle verwendet und Audio im AAC Format erzeugt. InputAttachments CaptionDescriptions, was angibt, dass der Kanal ein Untertitelausgabe-Asset enthält InputAttachments, das die Quelle verwendet und Untertitel im Webformat erzeugt. VTT VideoDescriptions, was angibt, dass der Kanal ein Videoausgabe-Asset mit der angegebenen Auflösung enthält. OutputGroups, das die Ausgangsgruppen spezifiziert. In diesem Beispiel gibt es eine Gruppe mit dem NamenAkamai. Die Verbindung wird hergestellt mit HLSPUT. Die Ausgangsgruppe enthält zwei Ausgänge. Eine Ausgabe ist für das Video-Asset (benanntVideo_high) und das Audio-Asset (benanntAudio_EN) vorgesehen. Eine Ausgabe ist für das Untertitel-Asset (benanntWebVTT_EN).

In diesem Beispiel enthalten einige Parameter keinen Wert oder enthalten verschachtelte leere Parameter. Beispielsweise enthält die Video_and_audio Ausgabe mehrere verschachtelte Parameter, OutputSettings die mit einem leeren Parameter m3U8Settings enden. Dieser Parameter muss enthalten sein, aber Sie können eines, mehrere oder alle untergeordneten Elemente weglassen, was bedeutet, dass das untergeordnete Element seinen Standardwert annimmt oder den Wert Null hat.

Alle Parameter, die für diesen Beispielkanal gelten, aber nicht in dieser Datei angegeben sind, nehmen entweder den Standardwert an, werden auf Null gesetzt oder nehmen einen eindeutigen Wert an, der von MediaLive generiert wird.

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

Inhalt von 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" } } }

Ausgabe:

Die Ausgabe wiederholt den Inhalt der JSON Datei plus die folgenden Werte. Alle Parameter sind alphabetisch sortiert.

ARNfür den Kanal. Der letzte Teil von ARN ist die eindeutige Kanal-ID. EgressEndpointsist in diesem Beispielkanal leer, da er nur für PUSH Eingaben verwendet wird. Wenn es zutrifft, werden die Adressen angezeigt MediaLive , an die der Inhalt gesendet wurde. OutputGroups,Outputs. Diese zeigen alle Parameter für die Ausgabegruppe und die Ausgaben, einschließlich der Parameter, die Sie nicht aufgenommen haben, die aber für diesen Kanal relevant sind. Die Parameter sind möglicherweise leer (was möglicherweise darauf hindeutet, dass der Parameter oder die Funktion in dieser Kanalkonfiguration deaktiviert ist) oder sie zeigen möglicherweise den Standardwert an, der gilt. LogLevelist auf die Standardeinstellung (DISABLED) gesetzt. Tagsist auf den Standard (null) gesetzt. PipelinesRunningCountund State zeigt den aktuellen Status des Kanals an.

Weitere Informationen finden Sie unter Einen Kanal von Grund auf neu erstellen im AWS MediaLive Elemental-Benutzerhandbuch.

  • APIEinzelheiten finden Sie CreateChannelin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungcreate-input.

AWS CLI

Um eine Eingabe zu erstellen

Im folgenden create-input Beispiel wird eine HLS PULL Eingabe erstellt, indem eine JSON Datei übergeben wird, die die Parameter enthält, die für diesen Typ von Eingabe gelten. Die Eingabe JSON für dieses Beispiel spezifiziert zwei Quellen (Adressen) für die Eingabe, um Redundanz bei der Aufnahme zu unterstützen. Für diese Adressen sind Kennwörter erforderlich.

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

Inhalt von 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" }

Ausgabe:

Die Ausgabe wiederholt den Inhalt der JSON Datei sowie die folgenden Werte. Alle Parameter sind alphabetisch sortiert.

Arnfür die Eingabe. Der letzte Teil von ARN ist die eindeutige Eingabe-ID. Attached Channels, der bei einer neu erstellten Eingabe immer leer ist. Destinations, das in diesem Beispiel leer ist, weil es nur mit einer PUSH Eingabe verwendet wird. Idfür die Eingabe entspricht der ID in derARN. MediaConnectFlows, das in diesem Beispiel leer ist, weil es nur mit einer Eingabe vom Typ verwendet wird MediaConnect. SecurityGroups, das in diesem Beispiel leer ist, weil es nur mit einer PUSH Eingabe verwendet wird. Statedieser Eingabe. Tags, das leer ist (die Standardeinstellung für diesen Parameter).

Weitere Informationen finden Sie unter Eingabe erstellen im AWS Elemental MediaLive User Guide.

  • APIEinzelheiten finden Sie CreateInputin der AWS CLI Befehlsreferenz.