AWS SDK-Beispiel-Code - Amazon Elastic Transcoder

Sparen Sie Kosten und erhalten Sie mehr Funktionen mit AWS Elemental MediaConvert

MediaConvert ist ein neuerer dateibasierter Videotranskodierungsdienst, der eine umfassende Suite erweiterter Transcodierungsfunktionen bietet. On-Demand-Tarife beginnen bei 0,0075 USD/Minute. Lesen Sie mehr.

Verwenden Sie bereits Amazon Elastic Transcoder? Die Migration darauf ist einfach. MediaConvert Weitere Informationen finden Sie in dieser Übersicht, die wertvolle Informationen über den Migrationsprozess und Links zu weiteren Ressourcen enthält.

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.

AWS SDK-Beispiel-Code

Der in diesem Abschnitt enthaltene Beispiel-Code zeigt, wie die AWS SDKs for Java, Ruby, PHP und Python verwendet werden, um folgende Operationen durchzuführen:

  • Erstellen Sie eine HLS-Playlist in Amazon Elastic Transcoder

  • Erstellen Sie einen Auftrag in Elas-Simple-Notification-Service erstellen

  • Amazon-Simple-Queue Amazon Simple Queue Service (Amazon SQS) -Warteschlange

  • Amazon-Simple-Notification-Service Simple Notification Service (Amazon SNS) -Thema

  • Bearbeitung der Benachrichtigung von Amazon SNS

Diese Operationen stellen die Best Practices von Elastic Transcoder dar. Die Abfrage einer Amazon SQS SQS-Warteschlange ermöglicht eine lange Abfrage, die effizienter skaliert werden kann als eine reguläre Abfrage. Durch die Einrichtung von Amazon SNS SNS-Benachrichtigungen kann Elastic Transcoder Nachrichten an die Amazon SQS SQS-Warteschlange senden.

Der Beispielcode zeigt, wie für HLS (HTTP Live Streaming) transkodiert wird und wie mit der Amazon SNS SNS-Benachrichtigung umgegangen wird, sobald sie aus der Amazon SQS SQS-Warteschlange entfernt wurde.

Wenn Sie eine Sprache verwenden, für die ein SDK vorhanden ist, empfehlen wir die Nutzung des SDKs, statt zu versuchen, sich durch die APIs zu arbeiten. Sie werden feststellen, dass die Nutzung der SDKs die Authentifizierung vereinfacht, leicht in Ihre Entwicklungsumgebung integriert werden kann und einen einfachen Zugriff auf zugehörige Befehle bietet.

Hintergrund für den AWS SDK-Beispiel-Code

HTTP Live Streaming (HLS)

Sie verwenden HTTP-Live-Streaming-Ausgänge (HLS), um Inhalte mit adaptiver Bitrate für HLS-fähige Player bereitzustellen. Beispiele für HLS-fähige Geräte sind Android 4+-Geräte, iOS-Geräte, Desktop-Mediaplayer wie QuickTime VLC und Browserplayer wie JWPlayer. Mit der adaptiven Bitrate können Sie die Qualität der bereitgestellten Inhalte automatisch an die Qualität der Client-Verbindung anpassen.

Benachrichtigungen

Wenn Sie dieReadJob API von Elastic Transcoder abfragen, um den Auftragsstatus zu verfolgen, müssen Sie jeden eingereichten Job kontinuierlich aufrufenReadJob. Diese Methode kann nicht skaliert werden, wenn die Anzahl der Transcode-Jobs zunimmt. Um dieses Problem zu lösen, kann Elastic Transcoder Benachrichtigungen auf Amazon SNS veröffentlichen, das einen ereignisgesteuerten Mechanismus zur Nachverfolgung des Auftragsstatus bietet.

Jede Elastic Transcoder Transcoder-Benachrichtigung wird als JSON-Objekt imMessage Feld gesendet. Da Benachrichtigungen selbst im JSON-Format gesendet werden, müssen Sie die Elastic Transcoder Transcoder-Benachrichtigung in der Nachrichtenzeichenfolge maskieren. Informationen zum Format und Inhalt von Elastic Transcoder Transcoder-Benachrichtigungen finden Sie im Abschnitt Benachrichtigungen.

Wenn Sie benutzerdefinierten Code für die Bearbeitung von Auftragsstatusbenachrichtigungen schreiben, folgen Sie diesen bewährten Methoden:

  • Handler müssen idempotent sein. Es ist möglich, dass eine Benachrichtigung mehr als einmal zugestellt wird.

  • Handler müssen Benachrichtigungen über defekte Bestellungen unterstützen. Es ist möglich, dass Benachrichtigungen nicht in der richtigen Reihenfolge zugestellt werden.

  • Handler müssen in der Lage sein, eine Benachrichtigung für jeden Job zu verarbeiten. Es kann nicht garantiert werden, dass eine Benachrichtigung für eine bestimmte Stelle einem bestimmten Arbeitnehmer zugestellt wird.

  • Handler sollten kurze Operationen sein. Alle Nachrichten müssen vor dem Sichtbarkeits-Timeout behandelt und gelöscht werden. Wenn das Sichtbarkeits-Timeout 15 Sekunden beträgt und maximal 5 Nachrichten von Amazon SQS zurückgegeben werden, muss jede Nachricht in weniger als 3 Sekunden bearbeitet und aus der Warteschlange gelöscht werden. Wenn die Bearbeitung länger dauert, wird bei unverarbeiteten Nachrichten das Timeout überschritten und sie werden an einen anderen Mitarbeiter zugestellt.

Für Java, Python und Ruby empfehlen wir, dass Sie Benachrichtigungen verwenden, indem Sie eine Amazon SQS SQS-Warteschlange abfragen, die Ihrem Benachrichtigungsthema zugeordnet ist. Da Amazon SQS einen Long-Poll-Mechanismus verwendet, bietet die Abfrage der Amazon SQS SQS-Warteschlange eine skalierbare Methode für die Verarbeitung von Jobbenachrichtigungen. Amazon SQS vereinfacht auch die Verfügbarkeit und Skalierung für den Fall, dass Hosts ausfallen oder in Zeiten hoher Auslastung, und erfordert im Allgemeinen keine spezielle ACL-Setup.

Für PHP, das in Apache ausgeführt wird, empfehlen wir Ihnen, Ihren Endpunkt direkt beim Amazon SNS SNS-Thema zu abonnieren. Dies setzt voraus, dass Ihr Endpunkt öffentlich verfügbar ist, da Amazon SNS in der Lage sein muss, Benachrichtigungen direkt an Sie zu senden.

Einrichten Ihrer Umgebung

Um den Beispiel-Code auszuführen, benötigen Sie eine eingerichtete AWS-Umgebung. Dieser Abschnitt führt Sie durch den Einrichtungsprozess und zeigt, wie Sie die AWS-Ressourcen erstellen, die Elastic Transcoder benötigt, um optimal zu funktionieren.

Einrichten Ihrer Java-Umgebung

In diesem Abschnitt werden Sie schrittweise durch die Einrichtung Ihrer Java-Umgebung geführt.

Der Beispiel-Code geht von zwei wesentlichen Annahmen aus:

  • Beispiele werden geschrieben, um mit Java-Version 1.6 oder höher zu arbeiten.

  • Beispiele werden mithilfe von Eclipse mit dem AWS Toolkit for Eclipse ausgeführt.

Einrichten des AWS SDKs for Java

Diese Beispiele nehmen an, dass Sie das AWS Toolkit for Eclipse verwenden. Sie benötigen das AWS SDK for Java und die folgenden Jackson JSON-Prozessor-JAR-Dateien:

  • Jackson Core

  • Jackson Databind

  • Jackson Annotations

Der Jackson JSON-Prozessor verarbeitet Benachrichtigungen des Auftragsstatus.

Wenn Sie Maven nutzen, um Ihre Abhängigkeiten zu verwalten, können Sie alternativ die folgenden Ausschnitte der Datei pom.xml hinzufügen:

Versionseigenschaft:

<jackson-2-version>2.2.3</jackson-2-version>

Abhängigkeiten:

<dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk</artifactId> <version>LATEST</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson-2-version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson-2-version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson-2-version}</version> </dependency>

Weitere Informationen finden Sie in der AWS SDK for Java-Dokumentation.

Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen

  1. Öffnen Sie die Amazon S3-Konsole.

  2. Klicken Sie in der Konsole auf Create Bucket.

  3. Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Eingabe-Bucket ein.

  4. Klicken Sie in der Amazon S3 S3-Konsole auf Bucket erstellen.

  5. Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Output-Bucket ein.

Erstellen eines Amazon-SNS-Themas

  1. Öffnen Sie die Amazon-SNS-Konsole.

  2. Klicken Sie in der Konsole auf Erstellen und Hinzufügen und wählen Sie Neues Thema erstellen aus.

  3. Geben Sie im Feld Themenname den Namen einets-sample-topic und klicken Sie dann auf Thema erstellen.

  4. Notieren Sie den ARN vonets-sample-topic.

Erstellen einer Amazon SQS SQS-Warteschlange zur Abfrage von Jobstatus-Benachrichtigungen

  1. Öffnen Sie die Amazon-SQS-Konsole.

  2. Klicken Sie in der Konsole auf Neue Warteschlange erstellen.

  3. Geben Sie im Feld Queue-Name den Wert Queue einets-sample-queue und klicken Sie dann auf Create Queue.

  4. Erstellen Sie die Amazon SQS SQS-Warteschlange.

Abonnieren Sie Ihre Amazon-SQS-Warteschlange für Ihr Amazon-SQS-Thema

  1. Öffnen Sie die Amazon-SQS-Konsole.

  2. Wählen Sie in der Konsole ets-sample-queueaus der Liste der Warteschlangen aus.

  3. Wählen Sie unter Warteschlangenaktionen die Option Thema Warteschlange für Amazon SNS abonnieren aus.

  4. Wählen Sie unter Wählen Sie ein Thema aus ets-sample-topicund klicken Sie dann auf Abonnieren.

Du solltest eine Bestätigung sehen, dass deine Warteschlange erfolgreich für dein Thema abonniert wurde.

Erstellen einer Elastic Transcoder Transcoder-Pipeline

  1. Öffnen Sie die Amazon Elastic Transcoder Transcoder-Konsole.

  2. Klicken Sie in der Konsole auf Neue Pipeline erstellen.

  3. Geben Sie im Feld Pipeline-Name den Wert einets-sample-pipeline.

  4. Geben Sie im Feld Eingabe-Bucket den Namen Ihres Eingabe-Buckets ein.

  5. Belassen Sie die IAM-Rolle alsConsole Default Role.

  6. Geben Sie unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren den Namen Ihres Ausgabe-Buckets ein.

  7. Wählen Sie weiterhin unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren die Standardspeicherklasse aus.

  8. Erstellen Sie das Dropdown-Menü „Benachrichtigungen.

  9. Wählen Sie für alle vier Ereignistypen die Option Bestehendes SNS-Thema verwenden aus und wählen Sie unter Thema auswählen die Option ausets-sample-topic.

  10. Klicken Sie auf Create Pipeline (Pipeline erstellen).

  11. Notieren Sie die Elastic Transcoder-Pipeline-ID.

Erstellung einer CloudFront Amazon-Distribution zur skalierbaren Bereitstellung von Inhalten

  1. Öffnen Sie die CloudFront Amazon-Konsole.

  2. Erweitern Sie im Navigationsbereich der Konsole Private Inhalte und klicken Sie dann auf Origin Access Identity.

  3. Klicken Sie auf Origin Access Identity erstellen.

  4. Klicken Sie auf Create.

  5. Notieren Sie die kanonische Amazon S3 S3-Benutzer-ID, die generiert wird, wenn Sie Ihre ursprüngliche Zugriffsidentität erstellen.

  6. Klicken Sie im Navigationsbereich auf Distribution.

  7. Klicken Sie auf Create Distribution.

  8. Wählen Sie Web aus und klicken Sie dann auf Weiter.

  9. Geben Sie unter Origin-Einstellungen Ihren Amazon S3 S3-Output-Bucket als Original-Domainnamen ein.

  10. Geben Sie im Feld Origin-ID den Wert einS3-transcoder-sample-output.

  11. Wählen Sie für Restrict Bucket Access die Option Ja aus.

  12. Klicken Sie auf Distribution erstellen und notieren Sie den Domainnamen der Distribution.

Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck

  1. Öffnen Sie die Amazon S3-Konsole.

  2. Klicken Sie neben dem Ausgabe-Bucket auf das Lupensymbol, um die Bucket-Eigenschaften aufzurufen.

  3. Erweitern Sie die Berechtigungen und klicken Sie auf Bucket-Richtlinie hinzufügen.

  4. Geben Sie die folgende Richtlinienerklärung ein und ersetzen Sie CloudFront-oai-s3-canonical-user-id durchyour recorded Amazon S3 canonical user ID und s3-output-bucket-name durchthe name of your output bucket.

  5. Klicken Sie auf Speichern.

{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }

Wechseln Sie zum Java-Beispiele.

Einrichten Ihrer Ruby-Umgebung

In diesem Abschnitt werden Sie schrittweise durch die Einrichtung Ihrer Ruby-Umgebung geführt.

Der Beispiel-Code geht von einer wesentlichen Annahme aus:

  • Beispiele werden geschrieben, um mit Ruby-Version 1.9 kompatibel zu sein.

Einrichten des AWS SDKs for Ruby

Das AWS SDK for Ruby ist hier verfügbar. Sie können es einfach installieren, indem Sie Ruby-Gems mit folgendem Befehl verwenden:

gem install aws-sdk

Weitere Informationen finden Sie in der AWS SDK for Ruby-Dokumentation.

Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen

  1. Öffnen Sie die Amazon S3-Konsole.

  2. Klicken Sie in der Konsole auf Create Bucket.

  3. Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Eingabe-Bucket ein.

  4. Klicken Sie in der Amazon S3 S3-Konsole auf Bucket erstellen.

  5. Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Output-Bucket ein.

Erstellen eines Amazon-SNS-Themas

  1. Öffnen Sie die Amazon-SNS-Konsole.

  2. Klicken Sie in der Konsole auf Erstellen und Hinzufügen und wählen Sie Neues Thema erstellen aus.

  3. Geben Sie im Feld Themenname den Namen einets-sample-topic und klicken Sie dann auf Thema erstellen.

  4. Notieren Sie den ARN vonets-sample-topic.

Erstellen einer Amazon SQS SQS-Warteschlange zur Abfrage von Jobstatus-Benachrichtigungen

  1. Öffnen Sie die Amazon-SQS-Konsole.

  2. Klicken Sie in der Konsole auf Neue Warteschlange erstellen.

  3. Geben Sie im Feld Queue-Name den Wert Queue einets-sample-queue und klicken Sie dann auf Create Queue.

  4. Erstellen Sie die Amazon SQS SQS-Warteschlange.

Abonnieren Sie Ihre Amazon-SQS-Warteschlange für Ihr Amazon-SQS-Thema

  1. Öffnen Sie die Amazon-SQS-Konsole.

  2. Wählen Sie in der Konsole ets-sample-queueaus der Liste der Warteschlangen aus.

  3. Wählen Sie unter Warteschlangenaktionen die Option Thema Warteschlange für Amazon SNS abonnieren aus.

  4. Wählen Sie unter Wählen Sie ein Thema aus ets-sample-topicund klicken Sie dann auf Abonnieren.

Du solltest eine Bestätigung sehen, dass deine Warteschlange erfolgreich für dein Thema abonniert wurde.

Erstellen einer Elastic Transcoder Transcoder-Pipeline

  1. Öffnen Sie die Amazon Elastic Transcoder Transcoder-Konsole.

  2. Klicken Sie in der Konsole auf Neue Pipeline erstellen.

  3. Geben Sie im Feld Pipeline-Name den Wert einets-sample-pipeline.

  4. Geben Sie im Feld Eingabe-Bucket den Namen Ihres Eingabe-Buckets ein.

  5. Belassen Sie die IAM-Rolle alsConsole Default Role.

  6. Geben Sie unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren den Namen Ihres Ausgabe-Buckets ein.

  7. Wählen Sie weiterhin unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren die Standardspeicherklasse aus.

  8. Erstellen Sie das Dropdown-Menü „Benachrichtigungen.

  9. Wählen Sie für alle vier Ereignistypen die Option Bestehendes SNS-Thema verwenden aus und wählen Sie unter Thema auswählen die Option ausets-sample-topic.

  10. Klicken Sie auf Create Pipeline (Pipeline erstellen).

  11. Notieren Sie die Elastic Transcoder-Pipeline-ID.

Erstellung einer CloudFront Amazon-Distribution zur skalierbaren Bereitstellung von Inhalten

  1. Öffnen Sie die CloudFront Amazon-Konsole.

  2. Erweitern Sie im Navigationsbereich der Konsole Private Inhalte und klicken Sie dann auf Origin Access Identity.

  3. Klicken Sie auf Origin Access Identity erstellen.

  4. Klicken Sie auf Create.

  5. Notieren Sie die kanonische Amazon S3 S3-Benutzer-ID, die generiert wird, wenn Sie Ihre ursprüngliche Zugriffsidentität erstellen.

  6. Klicken Sie im Navigationsbereich auf Distribution.

  7. Klicken Sie auf Create Distribution.

  8. Wählen Sie Web aus und klicken Sie dann auf Weiter.

  9. Geben Sie unter Origin-Einstellungen Ihren Amazon S3 S3-Output-Bucket als Original-Domainnamen ein.

  10. Geben Sie im Feld Origin-ID den Wert einS3-transcoder-sample-output.

  11. Wählen Sie für Restrict Bucket Access die Option Ja aus.

  12. Klicken Sie auf Distribution erstellen und notieren Sie den Domainnamen der Distribution.

Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck

  1. Öffnen Sie die Amazon S3-Konsole.

  2. Klicken Sie neben dem Ausgabe-Bucket auf das Lupensymbol, um die Bucket-Eigenschaften aufzurufen.

  3. Erweitern Sie die Berechtigungen und klicken Sie auf Bucket-Richtlinie hinzufügen.

  4. Geben Sie die folgende Richtlinienerklärung ein und ersetzen Sie CloudFront-oai-s3-canonical-user-id durchyour recorded Amazon S3 canonical user ID und s3-output-bucket-name durchthe name of your output bucket.

  5. Klicken Sie auf Speichern.

{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }

Wechseln Sie zum Ruby-Beispiele.

Einrichten Ihrer PHP-Umgebung

In diesem Abschnitt werden Sie schrittweise durch die Einrichtung Ihrer PHP-Umgebung geführt.

Der Beispiel-Code geht von drei wesentlichen Annahmen aus:

  • PHP-Beispiele werden innerhalb eines Apache-Servers ausgeführt.

  • Der Apache-Server muss in der Lage sein, Eingaben aus dem Internet entgegenzunehmen, um Amazon SNS SNS-Benachrichtigungen zu empfangen.

  • Beispiele werden geschrieben, um mit PHP-Version 5.4 oder höher zu arbeiten.

Installieren des Beispiel-Codes

Um den PHP-Beispiel-Code zu verwenden, müssen Sie diesen zuerst herunterladen und installieren.

  • Laden Sie den Beispiel-Code herunter:

  • Extrahieren Sie den Beispiel-Code.

  • Platzieren Sie den Code unter dem Ihres Apache-Servers DocumentRoot.

  • Entfernen Sie die heruntergeladene Zip-Datei des Beispiel-Codes.

  • Aktualisieren Sie den Pfad zu Ihrer AWS SDK-Installation.

Anmerkung

In HlsJobCreationSample.php und JobStatusNotificationsSample.php müssen Sie den Pfad zu Ihrem autoload.php aktualisieren. Wenn Sie die Phar-Installation verwenden, können Sie den Pfad zur Datei aws.phar, die Sie heruntergeladen haben, nutzen. Diese enthält alle nötigen Abhängigkeiten.

Einrichten des AWS SDKs for PHP

Sie finden das AWS SDK for PHP hier. Für dieses Tutorial empfehlen wir die Phar-Installation. Allerdings werden langfristige Projekte mit Composer besser verwaltet.

Weitere Informationen finden Sie in der AWS SDK for PHP-Dokumentation.

Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen

  1. Öffnen Sie die Amazon S3-Konsole.

  2. Klicken Sie in der Konsole auf Create Bucket.

  3. Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Eingabe-Bucket ein.

  4. Klicken Sie in der Amazon S3 S3-Konsole auf Bucket erstellen.

  5. Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Output-Bucket ein.

Amazon-SNS-Thema erstellen

  1. Öffnen Sie die Amazon-SNS-Konsole.

  2. Klicken Sie in der Konsole auf Erstellen und Hinzufügen und wählen Sie Neues Thema erstellen aus.

  3. Geben Sie im Feld Themenname den Namen einets-sample-topic und klicken Sie dann auf Thema erstellen.

  4. Notieren Sie den ARN vonets-sample-topic.

Ihren Server bei Amazon SNS abonnieren

  1. Überprüfen Sie, ob der PHP-Beispiel-Code installiert wurde.

  2. Öffnen Sie die Amazon-SNS-Konsole.

  3. Klicken Sie unter AdditionalActionsauf Abonnement erstellen.

  4. Wählen Sie je nach Serverkonfiguration HTTP oder HTTPS aus.

  5. Geben Sie unter Endpoint den Endpunkt Ihres Servers ein. Der Pfad des Endpunkts sollte auf JobStatusNotificationsSampleNotificationHandler.php verweisen.

  6. Klicken Sie auf Subscribe. Dadurch wird eine Abonnementanforderung an Ihren PHP-Endpunkt gesendet.

Der PHP-Beispiel-Code verarbeitet automatisch die Abonnementanforderung und bestätigt ein Abonnement. Die Abonnementanforderung und -antwort werden in /tmp/subscribe_requests.txt geschrieben.

Erstellen einer Elastic Transcoder Transcoder-Pipeline

  1. Öffnen Sie die Amazon Elastic Transcoder Transcoder-Konsole.

  2. Klicken Sie in der Konsole auf Neue Pipeline erstellen.

  3. Geben Sie im Feld Pipeline-Name den Wert einets-sample-pipeline.

  4. Geben Sie im Feld Eingabe-Bucket den Namen Ihres Eingabe-Buckets ein.

  5. Belassen Sie die IAM-Rolle alsConsole Default Role.

  6. Geben Sie unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren den Namen Ihres Ausgabe-Buckets ein.

  7. Wählen Sie weiterhin unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren die Standardspeicherklasse aus.

  8. Erstellen Sie das Dropdown-Menü „Benachrichtigungen.

  9. Wählen Sie für alle vier Ereignistypen die Option Bestehendes SNS-Thema verwenden aus und wählen Sie unter Thema auswählen die Option ausets-sample-topic.

  10. Klicken Sie auf Create Pipeline (Pipeline erstellen).

  11. Notieren Sie die Elastic Transcoder-Pipeline-ID.

Schaffung eines CloudFront Amazon-Vertriebs zur skalierbaren Bereitstellung von Inhalten

  1. Öffnen Sie die CloudFront Amazon-Konsole.

  2. Erweitern Sie im Navigationsbereich der Konsole Private Inhalte und klicken Sie dann auf Origin Access Identity.

  3. Klicken Sie auf Origin Access Identity erstellen.

  4. Klicken Sie auf Create.

  5. Notieren Sie die kanonische Amazon S3 S3-Benutzer-ID, die generiert wird, wenn Sie Ihre ursprüngliche Zugriffsidentität erstellen.

  6. Klicken Sie im Navigationsbereich auf Distribution.

  7. Klicken Sie auf Create Distribution.

  8. Wählen Sie Web aus und klicken Sie dann auf Weiter.

  9. Geben Sie unter Origin-Einstellungen Ihren Amazon S3 S3-Output-Bucket als Original-Domainnamen ein.

  10. Geben Sie im Feld Origin-ID den Wert einS3-transcoder-sample-output.

  11. Wählen Sie für Restrict Bucket Access die Option Ja aus.

  12. Klicken Sie auf Distribution erstellen und notieren Sie den Domainnamen der Distribution.

Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck

  1. Öffnen Sie die Amazon S3-Konsole.

  2. Klicken Sie neben dem Ausgabe-Bucket auf das Lupensymbol, um die Bucket-Eigenschaften aufzurufen.

  3. Erweitern Sie die Berechtigungen und klicken Sie auf Bucket-Richtlinie hinzufügen.

  4. Geben Sie die folgende Richtlinienerklärung ein und ersetzen Sie CloudFront-oai-s3-canonical-user-id durchyour recorded Amazon S3 canonical user ID und s3-output-bucket-name durchthe name of your output bucket.

  5. Klicken Sie auf Speichern.

{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }

Wechseln Sie zum PHP-Beispiele.

Einrichten Ihrer Python-Umgebung

In diesem Abschnitt werden Sie schrittweise durch die Einrichtung Ihrer Python-Umgebung geführt.

Er geht von einer wesentlichen Annahme aus:

  • Beispiele werden geschrieben, um mit Python-Version 2.7 kompatibel zu sein.

Einrichten des AWS SDKs for Python

Sie finden das AWS SDK for Python hier. Sie können es auch einfach installieren, indem Sie PIP mit folgendem Befehl verwenden:

pip-2.7 install boto

Weitere Informationen finden Sie in der AWS SDK for Python-Dokumentation.

Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen

  1. Öffnen Sie die Amazon S3-Konsole.

  2. Klicken Sie in der Konsole auf Create Bucket.

  3. Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Eingabe-Bucket ein.

  4. Klicken Sie in der Amazon S3 S3-Konsole auf Bucket erstellen.

  5. Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Output-Bucket ein.

Amazon-SNS-Thema erstellen

  1. Öffnen Sie die Amazon-SNS-Konsole.

  2. Klicken Sie in der Konsole auf Erstellen und Hinzufügen und wählen Sie Neues Thema erstellen aus.

  3. Geben Sie im Feld Themenname den Namen einets-sample-topic und klicken Sie dann auf Thema erstellen.

  4. Notieren Sie den ARN vonets-sample-topic.

Amazon SQS SQS-Warteschlange erstellen, um Benachrichtigungen über den Jobstatus abzufragen

  1. Öffnen Sie die Amazon-SQS-Konsole.

  2. Klicken Sie in der Konsole auf Neue Warteschlange erstellen.

  3. Geben Sie im Feld Queue-Name den Wert Queue einets-sample-queue und klicken Sie dann auf Create Queue.

  4. Erstellen Sie die Amazon SQS SQS-Warteschlange.

Abonnieren Sie Ihre Amazon-SQS-Warteschlange für Ihr Amazon-SQS-Thema

  1. Öffnen Sie die Amazon-SQS-Konsole.

  2. Wählen Sie in der Konsole ets-sample-queueaus der Liste der Warteschlangen aus.

  3. Wählen Sie unter Warteschlangenaktionen die Option Thema Warteschlange für Amazon SNS abonnieren aus.

  4. Wählen Sie unter Wählen Sie ein Thema aus ets-sample-topicund klicken Sie dann auf Abonnieren.

Du solltest eine Bestätigung sehen, dass deine Warteschlange erfolgreich für dein Thema abonniert wurde.

Erstellen einer Elastic Transcoder Transcoder-Pipeline

  1. Öffnen Sie die Amazon Elastic Transcoder Transcoder-Konsole.

  2. Klicken Sie in der Konsole auf Neue Pipeline erstellen.

  3. Geben Sie im Feld Pipeline-Name den Wert einets-sample-pipeline.

  4. Geben Sie im Feld Eingabe-Bucket den Namen Ihres Eingabe-Buckets ein.

  5. Belassen Sie die IAM-Rolle alsConsole Default Role.

  6. Geben Sie unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren den Namen Ihres Ausgabe-Buckets ein.

  7. Wählen Sie weiterhin unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren die Standardspeicherklasse aus.

  8. Erstellen Sie das Dropdown-Menü „Benachrichtigungen.

  9. Wählen Sie für alle vier Ereignistypen die Option Bestehendes SNS-Thema verwenden aus und wählen Sie unter Thema auswählen die Option ausets-sample-topic.

  10. Klicken Sie auf Create Pipeline (Pipeline erstellen).

  11. Notieren Sie die Elastic Transcoder-Pipeline-ID.

Schaffung eines CloudFront Amazon-Vertriebs zur skalierbaren Bereitstellung von Inhalten

  1. Öffnen Sie die CloudFront Amazon-Konsole.

  2. Erweitern Sie im Navigationsbereich der Konsole Private Inhalte und klicken Sie dann auf Origin Access Identity.

  3. Klicken Sie auf Origin Access Identity erstellen.

  4. Klicken Sie auf Create.

  5. Notieren Sie die kanonische Amazon S3 S3-Benutzer-ID, die generiert wird, wenn Sie Ihre ursprüngliche Zugriffsidentität erstellen.

  6. Klicken Sie im Navigationsbereich auf Distribution.

  7. Klicken Sie auf Create Distribution.

  8. Wählen Sie Web aus und klicken Sie dann auf Weiter.

  9. Geben Sie unter Origin-Einstellungen Ihren Amazon S3 S3-Output-Bucket als Original-Domainnamen ein.

  10. Geben Sie im Feld Origin-ID den Wert einS3-transcoder-sample-output.

  11. Wählen Sie für Restrict Bucket Access die Option Ja aus.

  12. Klicken Sie auf Distribution erstellen und notieren Sie den Domainnamen der Distribution.

Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck

  1. Öffnen Sie die Amazon S3-Konsole.

  2. Klicken Sie neben dem Ausgabe-Bucket auf das Lupensymbol, um die Bucket-Eigenschaften aufzurufen.

  3. Erweitern Sie die Berechtigungen und klicken Sie auf Bucket-Richtlinie hinzufügen.

  4. Geben Sie die folgende Richtlinienerklärung ein und ersetzen Sie CloudFront-oai-s3-canonical-user-id durchyour recorded Amazon S3 canonical user ID und s3-output-bucket-name durchthe name of your output bucket.

  5. Klicken Sie auf Speichern.

{ "Version":"2012-10-17", "Id":"PolicyForCloudFrontPrivateContent", "Statement":[{ "Sid":" Granting CloudFront OAI access to private content", "Effect":"Allow", "Principal":{ "CanonicalUser":"<CloudFront-oai-s3-canonical-user-id>" }, "Action":"s3:GetObject", "Resource":"arn:aws:s3:::<s3-output-bucket-name>/*" }] }

Wechseln Sie zum Python-Beispiele.

Java-Beispiele

Alle Java-Beispiele gehen von zwei Annahmen aus:

  • Beispiele werden geschrieben, um mit Java-Version 1.6 oder höher zu arbeiten.

  • Beispiele werden mithilfe von Eclipse mit dem AWS Toolkit for Eclipse ausgeführt.

HLS-Beispiele

Dieses Beispiel zeigt Ihnen, wie Sie einen HLS-Job und eine HLS-Playlist-Datei erstellen, die zum Abspielen eines Streams mit adaptiver Bitrate verwendet werden können.

Sie können den Beispielcode hier herunterladen.

Teile des Beispiel-Codes

Das Java-Code-Beispiel enthält:

  • Die HlsJobCreationSample-Klasse

Aufgaben

Zur Ausführung des Beispiels befolgen Sie diese Schritte:

  1. Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Java-Umgebung

  2. Laden Sie den Beispiel-Code herunter.

  3. Öffnen Sie in Eclipse com/amazonaws/services/elastictranscoder/samples/HlsJobCreationSample.java.

  4. Ersetzen Sie PIPELINE_ID und INPUT_KEY durch die entsprechenden Werte.

  5. Führen Sie die Beispiele in Eclipse aus.

Benachrichtigungsbeispiele

Beispiel einer Benachrichtigungssyntax

{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }

Sie können den Beispielcode hier herunterladen.

Teile des Beispiel-Codes

Das Java-Code-Beispiel enthält:

  • Die Notification-Klasse: Um Benachrichtigungen von Java zu verarbeiten, verwenden wir die Jackson JSON-Bibliothek für die Deserialisierung der Auftragsstatusbenachrichtigungen in POJOs. DieNotification Klasse modelliert die Nachricht, die wir aus der Amazon SQS SQS-Warteschlange erhalten.

  • Die KlasseJobStatusNotification: DieJobStatusNotification Klasse modelliert eine Elastic Transcoder Transcoder-Benachrichtigung.

  • Die KlasseSqsQueueNotificationWorker: DerSqsQueueNotificationWorker Kurs kann in einem separaten Thread gestartet werden, um Amazon SQS abzufragen und Benachrichtigungen über den Jobstatus zu bearbeiten. Diese Klasse empfängt Nachrichten, ruft alle registrierten Handler für jede empfangene Benachrichtigung auf und löscht die Nachricht aus der Warteschlange.

  • Die JobStatusNotificationHandler-Schnittstelle: Die JobStatusNotificationHandler-Schnittstelle kann implementiert werden, um eine benutzerdefinierte Verarbeitung von Benachrichtigungen zu erlauben.

  • Die JobStatusNotificationsSample-Klasse: Die JobStatusNotificationsSample-Klasse erstellt einen Auftrag und wartet darauf, dass dieser abgeschlossen wird. Wenn der Auftrag in den Endstatus übergeht, wird der Warteschlangenarbeitsprozess abgeschaltet und die Anwendung wird beendet.

Aufgaben

Zur Ausführung des Beispiels befolgen Sie diese Schritte:

  1. Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Java-Umgebung.

  2. Laden Sie den Beispiel-Code herunter.

  3. Extrahieren Sie den Beispiel-Code in das Quellverzeichnis Ihres JAVA-Projekts.

  4. Öffnen Sie in Eclipse com/amazonaws/services/elastictranscoder/samples/JobStatusNotificationsSample.java.

  5. Ersetzen Sie PIPELINE_ID, SQS_QUEUE_URL und INPUT_KEY durch die entsprechenden Werte.

  6. Führen Sie das Beispiel in Eclipse aus.

Ruby-Beispiele

Alle Ruby-Beispiele gehen von einer wesentlichen Annahme aus:

  • Beispiele werden geschrieben, um mit Ruby-Version 1.9 kompatibel zu sein.

HLS-Beispiele

Dieses Beispiel zeigt Ihnen, wie Sie einen HLS-Job und eine HLS-Playlist-Datei erstellen, die zum Abspielen eines Streams mit adaptiver Bitrate verwendet werden können.

Sie können den Beispielcode hier herunterladen.

Teile des Beispiel-Codes

Der Ruby-Beispiel-Code enthält:

  • Die Datei HlsJobCreationSample.rb

Aufgaben

Zur Ausführung des Beispiels befolgen Sie diese Schritte:

  1. Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Ruby-Umgebung

  2. Laden Sie den Beispiel-Code herunter.

  3. Extrahieren Sie den Beispiel-Code in das Quellverzeichnis Ihres Ruby-Projekts.

  4. Bearbeiten Sie HlsJobCreationSample.rb und ersetzen pipeline_id und input_key durch die entsprechenden Werte.

  5. Navigieren Sie über einen Terminal zu dem Verzeichnis, in das Sie den Beispiel-Code extrahiert haben und führen Sie Folgendes aus:

$ruby HlsJobCreationSample.rb

Benachrichtigungsbeispiele

Beispiel einer Benachrichtigungssyntax

{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }

Sie können den Beispielcode hier herunterladen.

Teile des Beispiel-Codes

Der Ruby-Beispiel-Code enthält:

  • Die KlasseSqsQueueNotificationWorker: DieSqsQueueNotificationWorker Klasse fragt Amazon SQS nach Benachrichtigungen ab, ruft alle registrierten Handler für jede Benachrichtigung auf und löscht die Nachricht aus der Warteschlange. Beachten Sie, dass der Arbeitsprozess in einem getrennten Thread ausgeführt wird. Wenn die verwendete Implementierung von Ruby über "grüne" Threads verfügt, dann wird jeweils nur ein einziger Thread ausgeführt (keine echte Mehrfachverarbeitung).

  • Das SkriptJobStatusNotificationsSample.rb: Dieses Skript erstellt einen Elastic Transcoder Transcoder-Job, startet einen Amazon SQS SQS-Worker und wartet, bis der Job abgeschlossen ist. Der bereitgestellte Handler weist den Amazon SQS SQS-Worker an, anzuhalten, wenn die Verarbeitung des erstellten Jobs abgeschlossen ist. Die Verarbeitung von Benachrichtigungen erfolgt durch Aufrufen der add_handlers-Methode und der Bereitstellung eines Proc oder Lambda als Handler, der ein einzelnes Argument entgegennimmt. Für jede empfangene Benachrichtigung werden alle registrierten Handler mit der als Eingabeargument bereitgestellten Benachrichtigung an den Handler aufgerufen.

Aufgaben

Zur Ausführung des Beispiels befolgen Sie diese Schritte:

  1. Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Ruby-Umgebung

  2. Laden Sie den Beispiel-Code herunter.

  3. Extrahieren Sie den Beispiel-Code in das Quellverzeichnis Ihres Ruby-Projekts.

  4. Bearbeiten Sie JobStatusNotificationsSample.rb und ersetzen pipeline_id, sqs_queue_url und input_key durch die entsprechenden Werte.

  5. Navigieren Sie über einen Terminal zu dem Verzeichnis, in das Sie den Beispiel-Code extrahiert haben und führen Sie Folgendes aus:

$ruby JobStatusNotificationsSample.rb

PHP-Beispiele

Alle PHP-Beispiele gehen von drei wesentlichen Annahmen aus:

  • PHP-Beispiele werden innerhalb eines Apache-Servers ausgeführt.

  • Der Apache-Server muss in der Lage sein, Eingaben aus dem Internet entgegenzunehmen, um Amazon SNS SNS-Benachrichtigungen zu empfangen.

  • Beispiele werden geschrieben, um mit PHP-Version 5.4 oder höher zu arbeiten.

HLS-Beispiele

Dieses Beispiel zeigt Ihnen, wie Sie einen HLS-Job und eine HLS-Playlist-Datei erstellen, die zum Abspielen eines Streams mit adaptiver Bitrate verwendet werden können.

Sie können den Beispielcode hier herunterladen.

Teile des Beispiel-Codes

Der PHP-Beispiel-Code enthält:

  • Die Datei HlsJobCreationSample.php

Aufgaben

Zur Ausführung des Beispiels befolgen Sie diese Schritte:

  1. Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer PHP-Umgebung

  2. Laden Sie den Beispiel-Code herunter.

  3. Laden Sie in Ihrem Browser die Seite http://<your-endpoint>/transcoder-samples/HlsJobCreationSample .php.

  4. Geben Sie die Pipeline-ID und den Input-Key an und senden Sie das Formular ab, um einen Auftrag zu erstellen.

Benachrichtigungsbeispiele

Beispiel einer Benachrichtigungssyntax

{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }

Sie können den Beispielcode hier herunterladen.

Teile des Beispiel-Codes

Der PHP-Beispiel-Code enthält:

  • Die Datei JobStatusNotificationsSampleNotificationHandler.php: Wenn eine Benachrichtigung an Ihren Server gesendet wird, schreibt der Benachrichtigungs-Handler den Status in eine Datei unter /tmp/<job-id> zurück.

  • Die Datei JobStatusNotificationsSample.php: Sobald der Benachrichtigungs-Handler den Status in eine Datei unter /tmp/<job-id> zurückschreibt, lädt JobStatusNotificationsSample.php die Statusdatei /tmp/<job-id>, die durch die ID in der ihr gegebenen Abfragezeichenfolge spezifiziert wird.

Aufgaben

Zur Ausführung des Beispiels befolgen Sie diese Schritte:

  1. Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer PHP-Umgebung

  2. Laden Sie den Beispiel-Code herunter.

  3. Extrahieren Sie den Beispiel-Code in das Quellverzeichnis Ihres PHP-Projekts.

  4. Laden Sie in Ihrem Browser die Seite http://<your-endpoint>/transcoder-samples/JobStatusNotificationsSample .php.

  5. Geben Sie die Pipeline-ID und den Input-Key an, die Sie transcodieren möchten, und klicken auf die Schaltfläche Create Job.

Python-Beispiele

Alle Python-Beispiele gehen von einer wesentlichen Annahme aus:

  • Beispiele werden geschrieben, um mit Python-Version 2.7 kompatibel zu sein.

HLS-Beispiele

Dieses Beispiel zeigt Ihnen, wie Sie einen HLS-Job und eine HLS-Playlist-Datei erstellen, die zum Abspielen eines Streams mit adaptiver Bitrate verwendet werden können.

Sie können den Beispielcode hier herunterladen.

Teile des Beispiel-Codes

Der Python-Beispiel-Code enthält:

  • Die Datei HlsJobCreationSample.py

Aufgaben

Zur Ausführung des Beispiels befolgen Sie diese Schritte:

  1. Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Python-Umgebung

  2. Laden Sie den Beispiel-Code herunter.

  3. Extrahieren Sie den Beispiel-Code.

  4. Bearbeiten Sie HlsJobCreationSample.py und ersetzen pipeline_id und input_key durch die entsprechenden Werte.

  5. Navigieren Sie über einen Terminal zu dem Verzeichnis, in das Sie den Beispiel-Code extrahiert haben und führen Sie Folgendes aus:

$python HlsJobCreationSample.py

Benachrichtigungsbeispiele

Beispiel einer Benachrichtigungssyntax

{ "Type" : "Notification", "MessageId" : "341527b6-9081-5f3d-b933-6c8472c3be40", "TopicArn" : "arn:aws:sns:us-east-1:123456789012:ets-sample-topic", "Subject" : "Amazon Elastic Transcoder has scheduled job 1387847681009 -abcdef for transcoding.", "Message" : "{\n \"state\" : \"PROGRESSING\",\n \"version\" : \"2012-09-25\",\n \"jobId\" : \"1387847681009-abcdef\", \n \"pipelineId\" : \"1387847629327-fedcba\",\n \"input\" : {\n \"key\" : \"input/example/key.mp4\",\n \"frameRate\" : \"auto\",\n \"resolution\" : \"auto\",\n \"aspectRatio\" : \"auto\",\n \"interlaced\" : \"auto\",\n \"container\" : \"auto\"\n },\n \"outputKeyPrefix\" : \"elastic-transcoder-samples/\",\n \"outputs\" : [ {\n \"id\" : \"1\",\n \"presetId\" : \"1351620000001-000020\",\n \"key\" : \"output/example/key.mp4\",\n \"thumbnailPattern\" : \"\",\n \"rotate\" : \"auto\",\n \"status\" : \"Progressing\"\n } ]\n}", "Timestamp" : "2013-12-24T01:14:42.493Z", "SignatureVersion" : "1", "Signature" : "ElSqJW3ZksCPViYGTayI/p+LjdF2HB42iJlIJRJ+jWzWwygXdiJXvZXl94qhd/tLln1lxPqijjivb5RWu7n5yzdZwbod6lpLwyZ2TfWM6dZt57OzsG3GbdTxgqwVsztVSyWCYhcV8f+CrT3IQrfrU3Me/SRYVUqrSUXXsu4Ls7A2q9mosG7v0Sn+3Z1rAa9+Rf6QmkfAg05UX0sLyA+I2hFqTu5oAGDK4Cm6FHuIwV+oYJXNBbGWuS7tD6mRNwrYvPBlUvBLXx9m3CbqSXv5Yoj39vglv+1djtaLA3GpwX+B1hHx8QT373lgmmsmGDRWhSQretpOTWDYb81PV2K0bg==", "SigningCertURL" : "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-e372f8ca30337fdb084e8ac449342c77.pem", "UnsubscribeURL" : "https://sns.us-east-1.amazonaws.com/?Action= Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:ets- sample-topic:b3ec47e5-e1f0-401f-a0a5-98c7fe405c2b" }

Sie können den Beispielcode hier herunterladen.

Teile des Beispiel-Codes

Der Python-Beispiel-Code enthält:

  • Die KlasseSqsQueueNotificationWorker.py: DieSqsQueueNotificationWorker Klasse fragt Amazon SQS ab und verarbeitet Benachrichtigungen in einem separaten Prozess. Dies ermöglicht eine echte Mehrfachverarbeitung in Python. Diese Klasse empfängt Nachrichten, ruft alle registrierten Handler für jede empfangene Benachrichtigung auf und löscht die Nachricht aus der Warteschlange. Diese Klasse enthält auch die Definition für dieJobStatusNotificationHandler Klasse, die als Framework für die Verarbeitung von Elastic Transcoder Transcoder-Benachrichtigungen bereitgestellt wird. Diese Klasse ist erweiterbar und die Handle-Methode kann überschrieben werden, um eine benutzerdefinierte Auftragsverarbeitung bereitzustellen. Beachten Sie, dass dies nicht den Python-Standards des Duck-Typing entspricht, aber es wird eine formale Definition von Handlern im Sinne dieses Beispiels gegeben.

  • Das SkriptJobStatusNotificationSample.py: DasJobStatusNotificationSample.py Skript erstellt einen Job in Elastic Transcoder und wartet, bis er abgeschlossen ist. Wenn der Auftrag abgeschlossen wird, stoppt es den Abrufprozess der Warteschlange und beendet den Vorgang. Eine prozessübergreifende Synchronisierung mithilfe des Wertobjekts der Mehrfachverarbeitung ist notwendig, weil der Handler in einem anderen Prozess ausgeführt wird, als die Warteschlange, die er abruft.

Aufgaben

Zur Ausführung des Beispiels befolgen Sie diese Schritte:

  1. Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Python-Umgebung

  2. Laden Sie den Beispiel-Code herunter.

  3. Extrahieren Sie den Beispiel-Code in einen lokalen Ordner.

  4. Bearbeiten Sie JobStatusNotificationsSample.py und ersetzen pipeline_id, sqs_queue_url und input_key durch die entsprechenden Werte.

  5. Navigieren Sie über einen Terminal zu dem Verzeichnis, in das Sie den Beispiel-Code extrahiert haben und führen Sie Folgendes aus:

$python JobStatusNotificationsSample.py