Beispiele für die Verwendung der AWS CLI mit MediaLive
Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie die AWS Command Line Interface mit MediaLive nutzen.
Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.
Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.
Themen
Aktionen
Das folgende Codebeispiel zeigt, wie create-channel verwendet wird.
- AWS CLI
-
So erstellen Sie einen Kanal
Im folgenden Beispiel für
create-channelwird ein Kanal durch Übergabe einer JSON-Datei erstellt, 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 Ausgaben: eine für H.265-Video und AAC-Audio und einen für die Web-VTT-Untertitel, nur in englischer Sprache.
Die JSON-Datei für diesen Beispielkanal enthält die mindestens erforderlichen Parameter für einen Kanal, der eine HLS-PULL-Eingabe verwendet und eine HLS-Ausgabegruppe mit Akamai als Ziel erzeugt. Das JSON enthält die folgenden Hauptabschnitte:
InputAttachments: gibt eine Quelle für die Audiodaten und eine Quelle für die Untertitel an. Es gibt keine Videoauswahl an, was bedeutet, dass MediaLive das erste Video extrahiert, das es in der Quelle findet.Destinations: enthält die beiden IP-Adressen (URLs) für die einzelne Ausgabegruppe in diesem Kanal. Für diese Adressen sind Kennwörter erforderlich.EncoderSettings: enthält Unterabschnitte.AudioDescriptions: gibt an, dass der Kanal ein Audioausgabe-Asset enthält, das die Quelle von InputAttachments verwendet und Audio im AAC-Format erzeugt.CaptionDescriptions, was angibt, dass der Kanal ein Untertitelausgabe-Komponente enthält, die die Quelle von InputAttachments verwendet und Untertitel im Web-VTT-Format erzeugt.VideoDescriptions: gibt an, dass der Kanal eine Videoausgabe-Komponente mit der angegebenen Auflösung enthält.OutputGroups: gibt die Ausgangsgruppen an. In diesem Beispiel gibt eine Gruppe mit dem NamenAkamai. Die Verbindung wird mit HLS PUT hergestellt. Die HLS-Ausgabegruppe enthält zwei Ausgaben. Eine Ausgabe ist für die Video-Komponente (mit dem NamenVideo_high) und die Audio-Komponente (mit dem NamenAudio_EN) vorgesehen. Eine Ausgabe ist für die Untertitel-Komponente (mit dem NamenWebVTT_EN) vorgesehen.In diesem Beispiel enthalten einige Parameter keinen Wert oder verschachtelte leere Parameter. Beispielsweise enthält OutputSettings für die Ausgabe
Video_and_audiomehrere verschachtelte Parameter, 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 oder den Wert Null annimmt.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, von MediaLive generierten Wert an.
aws medialive create-channel \ --cli-input-jsonfile://channel-in-hls-out-hls-akamai.jsonInhalt 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 sowie die folgenden Werte. Alle Parameter sind alphabetisch sortiert.
ARNfür den Kanal. Der letzte Teil des ARN ist die eindeutige Kanal-ID. Der Wert fürEgressEndpointsist in diesem Beispielkanal leer, da er nur für PUSH-Eingaben verwendet wird. Wenn er angewendet wird, werden die Adressen auf MediaLive angezeigt, an die der Inhalt gesendet wird:OutputGroups,Outputs. Diese enthalten alle Parameter für die Ausgabegruppe und die Ausgaben, einschließlich der Parameter, die nicht eingezogen wurden, aber für diesen Kanal relevant sind. Die Parameter sind möglicherweise leer (was darauf hindeutet, dass der Parameter oder das Feature in dieser Kanalkonfiguration deaktiviert ist) oder sie entsprechen dem Standardwert.LogLevelist auf den Standardwert (DEAKTIVIERT) eingestellt.Tagsist auf den Standardwert (Null) eingestellt.PipelinesRunningCountundStatezeigen den aktuellen Status des Kanals an.Weitere Informationen finden Sie unter Erstellen eines neuen Kanals im Benutzerhandbuch zu AWS Elemental MediaLive.
-
Weitere Details zur API finden Sie unter CreateChannel
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie create-input verwendet wird.
- AWS CLI
-
So erstellen Sie eine Eingabe
Im folgenden Beispiel für
create-inputwird eineHLS PULL-Eingabe durch Übergabe einer JSON-Datei erstellt, die die Parameter enthält, die für diese Art von Eingabe gelten. Im JSON für diese Beispieleingabe werden zwei Quellen (Adressen) für die Eingabe angegeben, um Redundanz bei der Aufnahme zu unterstützen. Für diese Adressen sind Passwörter erforderlich.aws medialive create-input \ --cli-input-jsonfile://input-hls-pull-news.jsonInhalt 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 des ARN ist die eindeutige ID der Eingabe.Attached Channelsist bei einer neu erstellten Eingabe immer leer.Destinationsist in diesem Beispiel leer, weil der Parameter nur mit einer PUSH-Eingabe verwendet wird.Idfür die Eingabe, entspricht der ID im ARN.MediaConnectFlowsist in diesem Beispiel leer, weil der Parameter nur mit einer Eingabe vom Typ „MediaConnect“ verwendet wird.SecurityGroupsist in diesem Beispiel, weil der Parameter nur mit einer PUSH-Eingabe verwendet wird.Statefür diese Eingabe.Tagsist leer (die Standardeinstellung für diesen Parameter).Weitere Informationen finden Sie unter Erstellen einer Eingabe im Benutzerhandbuch zu AWS Elemental MediaLive.
-
Weitere Details zur API finden Sie unter CreateInput
in der AWS CLI-Befehlsreferenz.
-