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 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.
Themen
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.
Themen
Einrichten Ihrer Java-Umgebung
In diesem Abschnitt werden Sie schrittweise durch die Einrichtung Ihrer Java-Umgebung geführt.
Themen
- Einrichten des AWS SDKs for Java
- Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen
- Erstellen eines Amazon-SNS-Themas
- Erstellen einer Amazon SQS SQS-Warteschlange zur Abfrage von Jobstatus-Benachrichtigungen
- Abonnieren Sie Ihre Amazon-SQS-Warteschlange für Ihr Amazon-SQS-Thema
- Erstellen einer Elastic Transcoder Transcoder-Pipeline
- Erstellung einer CloudFront Amazon-Distribution zur skalierbaren Bereitstellung von Inhalten
- Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck
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
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
Öffnen Sie die Amazon S3-Konsole
. Klicken Sie in der Konsole auf Create Bucket.
Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Eingabe-Bucket ein.
Klicken Sie in der Amazon S3 S3-Konsole auf Bucket erstellen.
Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Output-Bucket ein.
Erstellen eines Amazon-SNS-Themas
Öffnen Sie die Amazon-SNS-Konsole
. Klicken Sie in der Konsole auf Erstellen und Hinzufügen und wählen Sie Neues Thema erstellen aus.
Geben Sie im Feld Themenname den Namen ein
ets-sample-topic
und klicken Sie dann auf Thema erstellen.Notieren Sie den ARN von
ets-sample-topic
.
Erstellen einer Amazon SQS SQS-Warteschlange zur Abfrage von Jobstatus-Benachrichtigungen
Öffnen Sie die Amazon-SQS-Konsole
. Klicken Sie in der Konsole auf Neue Warteschlange erstellen.
Geben Sie im Feld Queue-Name den Wert Queue ein
ets-sample-queue
und klicken Sie dann auf Create Queue.Erstellen Sie die Amazon SQS SQS-Warteschlange.
Abonnieren Sie Ihre Amazon-SQS-Warteschlange für Ihr Amazon-SQS-Thema
Öffnen Sie die Amazon-SQS-Konsole
. Wählen Sie in der Konsole ets-sample-queueaus der Liste der Warteschlangen aus.
Wählen Sie unter Warteschlangenaktionen die Option Thema Warteschlange für Amazon SNS abonnieren aus.
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
Öffnen Sie die Amazon Elastic Transcoder Transcoder-Konsole
. Klicken Sie in der Konsole auf Neue Pipeline erstellen.
Geben Sie im Feld Pipeline-Name den Wert ein
ets-sample-pipeline
.Geben Sie im Feld Eingabe-Bucket den Namen Ihres Eingabe-Buckets ein.
Belassen Sie die IAM-Rolle als
Console Default Role
.Geben Sie unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren den Namen Ihres Ausgabe-Buckets ein.
Wählen Sie weiterhin unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren die Standardspeicherklasse aus.
Erstellen Sie das Dropdown-Menü „Benachrichtigungen.
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 aus
ets-sample-topic
.Klicken Sie auf Create Pipeline (Pipeline erstellen).
Notieren Sie die Elastic Transcoder-Pipeline-ID.
Erstellung einer CloudFront Amazon-Distribution zur skalierbaren Bereitstellung von Inhalten
Öffnen Sie die CloudFront Amazon-Konsole
. Erweitern Sie im Navigationsbereich der Konsole Private Inhalte und klicken Sie dann auf Origin Access Identity.
Klicken Sie auf Origin Access Identity erstellen.
Klicken Sie auf Create.
Notieren Sie die kanonische Amazon S3 S3-Benutzer-ID, die generiert wird, wenn Sie Ihre ursprüngliche Zugriffsidentität erstellen.
Klicken Sie im Navigationsbereich auf Distribution.
Klicken Sie auf Create Distribution.
Wählen Sie Web aus und klicken Sie dann auf Weiter.
Geben Sie unter Origin-Einstellungen Ihren Amazon S3 S3-Output-Bucket als Original-Domainnamen ein.
Geben Sie im Feld Origin-ID den Wert ein
S3-transcoder-sample-output
.Wählen Sie für Restrict Bucket Access die Option Ja aus.
Klicken Sie auf Distribution erstellen und notieren Sie den Domainnamen der Distribution.
Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck
Öffnen Sie die Amazon S3-Konsole
. Klicken Sie neben dem Ausgabe-Bucket auf das Lupensymbol, um die Bucket-Eigenschaften aufzurufen.
Erweitern Sie die Berechtigungen und klicken Sie auf Bucket-Richtlinie hinzufügen.
Geben Sie die folgende Richtlinienerklärung ein und ersetzen Sie CloudFront-oai-s3-canonical-user-id durch
your recorded Amazon S3 canonical user ID
und s3-output-bucket-name durchthe name of your output bucket
.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.
Themen
- Einrichten des AWS SDKs for Ruby
- Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen
- Erstellen eines Amazon-SNS-Themas
- Erstellen einer Amazon SQS SQS-Warteschlange zur Abfrage von Jobstatus-Benachrichtigungen
- Abonnieren Sie Ihre Amazon-SQS-Warteschlange für Ihr Amazon-SQS-Thema
- Erstellen einer Elastic Transcoder Transcoder-Pipeline
- Erstellung einer CloudFront Amazon-Distribution zur skalierbaren Bereitstellung von Inhalten
- Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck
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
gem install aws-sdk
Weitere Informationen finden Sie in der AWS SDK for Ruby-Dokumentation
Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen
Öffnen Sie die Amazon S3-Konsole
. Klicken Sie in der Konsole auf Create Bucket.
Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Eingabe-Bucket ein.
Klicken Sie in der Amazon S3 S3-Konsole auf Bucket erstellen.
Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Output-Bucket ein.
Erstellen eines Amazon-SNS-Themas
Öffnen Sie die Amazon-SNS-Konsole
. Klicken Sie in der Konsole auf Erstellen und Hinzufügen und wählen Sie Neues Thema erstellen aus.
Geben Sie im Feld Themenname den Namen ein
ets-sample-topic
und klicken Sie dann auf Thema erstellen.Notieren Sie den ARN von
ets-sample-topic
.
Erstellen einer Amazon SQS SQS-Warteschlange zur Abfrage von Jobstatus-Benachrichtigungen
Öffnen Sie die Amazon-SQS-Konsole
. Klicken Sie in der Konsole auf Neue Warteschlange erstellen.
Geben Sie im Feld Queue-Name den Wert Queue ein
ets-sample-queue
und klicken Sie dann auf Create Queue.Erstellen Sie die Amazon SQS SQS-Warteschlange.
Abonnieren Sie Ihre Amazon-SQS-Warteschlange für Ihr Amazon-SQS-Thema
Öffnen Sie die Amazon-SQS-Konsole
. Wählen Sie in der Konsole ets-sample-queueaus der Liste der Warteschlangen aus.
Wählen Sie unter Warteschlangenaktionen die Option Thema Warteschlange für Amazon SNS abonnieren aus.
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
Öffnen Sie die Amazon Elastic Transcoder Transcoder-Konsole
. Klicken Sie in der Konsole auf Neue Pipeline erstellen.
Geben Sie im Feld Pipeline-Name den Wert ein
ets-sample-pipeline
.Geben Sie im Feld Eingabe-Bucket den Namen Ihres Eingabe-Buckets ein.
Belassen Sie die IAM-Rolle als
Console Default Role
.Geben Sie unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren den Namen Ihres Ausgabe-Buckets ein.
Wählen Sie weiterhin unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren die Standardspeicherklasse aus.
Erstellen Sie das Dropdown-Menü „Benachrichtigungen.
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 aus
ets-sample-topic
.Klicken Sie auf Create Pipeline (Pipeline erstellen).
Notieren Sie die Elastic Transcoder-Pipeline-ID.
Erstellung einer CloudFront Amazon-Distribution zur skalierbaren Bereitstellung von Inhalten
Öffnen Sie die CloudFront Amazon-Konsole
. Erweitern Sie im Navigationsbereich der Konsole Private Inhalte und klicken Sie dann auf Origin Access Identity.
Klicken Sie auf Origin Access Identity erstellen.
Klicken Sie auf Create.
Notieren Sie die kanonische Amazon S3 S3-Benutzer-ID, die generiert wird, wenn Sie Ihre ursprüngliche Zugriffsidentität erstellen.
Klicken Sie im Navigationsbereich auf Distribution.
Klicken Sie auf Create Distribution.
Wählen Sie Web aus und klicken Sie dann auf Weiter.
Geben Sie unter Origin-Einstellungen Ihren Amazon S3 S3-Output-Bucket als Original-Domainnamen ein.
Geben Sie im Feld Origin-ID den Wert ein
S3-transcoder-sample-output
.Wählen Sie für Restrict Bucket Access die Option Ja aus.
Klicken Sie auf Distribution erstellen und notieren Sie den Domainnamen der Distribution.
Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck
Öffnen Sie die Amazon S3-Konsole
. Klicken Sie neben dem Ausgabe-Bucket auf das Lupensymbol, um die Bucket-Eigenschaften aufzurufen.
Erweitern Sie die Berechtigungen und klicken Sie auf Bucket-Richtlinie hinzufügen.
Geben Sie die folgende Richtlinienerklärung ein und ersetzen Sie CloudFront-oai-s3-canonical-user-id durch
your recorded Amazon S3 canonical user ID
und s3-output-bucket-name durchthe name of your output bucket
.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.
Themen
- Installieren des Beispiel-Codes
- Einrichten des AWS SDKs for PHP
- Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen
- Amazon-SNS-Thema erstellen
- Ihren Server bei Amazon SNS abonnieren
- Erstellen einer Elastic Transcoder Transcoder-Pipeline
- Schaffung eines CloudFront Amazon-Vertriebs zur skalierbaren Bereitstellung von Inhalten
- Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck
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
Weitere Informationen finden Sie in der AWS SDK for PHP-Dokumentation
Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen
Öffnen Sie die Amazon S3-Konsole
. Klicken Sie in der Konsole auf Create Bucket.
Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Eingabe-Bucket ein.
Klicken Sie in der Amazon S3 S3-Konsole auf Bucket erstellen.
Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Output-Bucket ein.
Amazon-SNS-Thema erstellen
Öffnen Sie die Amazon-SNS-Konsole
. Klicken Sie in der Konsole auf Erstellen und Hinzufügen und wählen Sie Neues Thema erstellen aus.
Geben Sie im Feld Themenname den Namen ein
ets-sample-topic
und klicken Sie dann auf Thema erstellen.Notieren Sie den ARN von
ets-sample-topic
.
Ihren Server bei Amazon SNS abonnieren
Überprüfen Sie, ob der PHP-Beispiel-Code installiert wurde.
Öffnen Sie die Amazon-SNS-Konsole
. Klicken Sie unter AdditionalActionsauf Abonnement erstellen.
Wählen Sie je nach Serverkonfiguration HTTP oder HTTPS aus.
Geben Sie unter Endpoint den Endpunkt Ihres Servers ein. Der Pfad des Endpunkts sollte auf
JobStatusNotificationsSampleNotificationHandler.php
verweisen.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
Öffnen Sie die Amazon Elastic Transcoder Transcoder-Konsole
. Klicken Sie in der Konsole auf Neue Pipeline erstellen.
Geben Sie im Feld Pipeline-Name den Wert ein
ets-sample-pipeline
.Geben Sie im Feld Eingabe-Bucket den Namen Ihres Eingabe-Buckets ein.
Belassen Sie die IAM-Rolle als
Console Default Role
.Geben Sie unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren den Namen Ihres Ausgabe-Buckets ein.
Wählen Sie weiterhin unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren die Standardspeicherklasse aus.
Erstellen Sie das Dropdown-Menü „Benachrichtigungen.
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 aus
ets-sample-topic
.Klicken Sie auf Create Pipeline (Pipeline erstellen).
Notieren Sie die Elastic Transcoder-Pipeline-ID.
Schaffung eines CloudFront Amazon-Vertriebs zur skalierbaren Bereitstellung von Inhalten
Öffnen Sie die CloudFront Amazon-Konsole
. Erweitern Sie im Navigationsbereich der Konsole Private Inhalte und klicken Sie dann auf Origin Access Identity.
Klicken Sie auf Origin Access Identity erstellen.
Klicken Sie auf Create.
Notieren Sie die kanonische Amazon S3 S3-Benutzer-ID, die generiert wird, wenn Sie Ihre ursprüngliche Zugriffsidentität erstellen.
Klicken Sie im Navigationsbereich auf Distribution.
Klicken Sie auf Create Distribution.
Wählen Sie Web aus und klicken Sie dann auf Weiter.
Geben Sie unter Origin-Einstellungen Ihren Amazon S3 S3-Output-Bucket als Original-Domainnamen ein.
Geben Sie im Feld Origin-ID den Wert ein
S3-transcoder-sample-output
.Wählen Sie für Restrict Bucket Access die Option Ja aus.
Klicken Sie auf Distribution erstellen und notieren Sie den Domainnamen der Distribution.
Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck
Öffnen Sie die Amazon S3-Konsole
. Klicken Sie neben dem Ausgabe-Bucket auf das Lupensymbol, um die Bucket-Eigenschaften aufzurufen.
Erweitern Sie die Berechtigungen und klicken Sie auf Bucket-Richtlinie hinzufügen.
Geben Sie die folgende Richtlinienerklärung ein und ersetzen Sie CloudFront-oai-s3-canonical-user-id durch
your recorded Amazon S3 canonical user ID
und s3-output-bucket-name durchthe name of your output bucket
.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.
Themen
- Einrichten des AWS SDKs for Python
- Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen
- Amazon-SNS-Thema erstellen
- Amazon SQS SQS-Warteschlange erstellen, um Benachrichtigungen über den Jobstatus abzufragen
- Abonnieren Sie Ihre Amazon-SQS-Warteschlange für Ihr Amazon-SQS-Thema
- Erstellen einer Elastic Transcoder Transcoder-Pipeline
- Schaffung eines CloudFront Amazon-Vertriebs zur skalierbaren Bereitstellung von Inhalten
- Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck
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
pip-2.7 install boto
Weitere Informationen finden Sie in der AWS SDK for Python-Dokumentation
Amazon S3 S3-Eingabe- und Ausgabe-Buckets erstellen
Öffnen Sie die Amazon S3-Konsole
. Klicken Sie in der Konsole auf Create Bucket.
Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Eingabe-Bucket ein.
Klicken Sie in der Amazon S3 S3-Konsole auf Bucket erstellen.
Geben Sie im Feld Bucket-Name den gewünschten Namen für Ihren Output-Bucket ein.
Amazon-SNS-Thema erstellen
Öffnen Sie die Amazon-SNS-Konsole
. Klicken Sie in der Konsole auf Erstellen und Hinzufügen und wählen Sie Neues Thema erstellen aus.
Geben Sie im Feld Themenname den Namen ein
ets-sample-topic
und klicken Sie dann auf Thema erstellen.Notieren Sie den ARN von
ets-sample-topic
.
Amazon SQS SQS-Warteschlange erstellen, um Benachrichtigungen über den Jobstatus abzufragen
Öffnen Sie die Amazon-SQS-Konsole
. Klicken Sie in der Konsole auf Neue Warteschlange erstellen.
Geben Sie im Feld Queue-Name den Wert Queue ein
ets-sample-queue
und klicken Sie dann auf Create Queue.Erstellen Sie die Amazon SQS SQS-Warteschlange.
Abonnieren Sie Ihre Amazon-SQS-Warteschlange für Ihr Amazon-SQS-Thema
Öffnen Sie die Amazon-SQS-Konsole
. Wählen Sie in der Konsole ets-sample-queueaus der Liste der Warteschlangen aus.
Wählen Sie unter Warteschlangenaktionen die Option Thema Warteschlange für Amazon SNS abonnieren aus.
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
Öffnen Sie die Amazon Elastic Transcoder Transcoder-Konsole
. Klicken Sie in der Konsole auf Neue Pipeline erstellen.
Geben Sie im Feld Pipeline-Name den Wert ein
ets-sample-pipeline
.Geben Sie im Feld Eingabe-Bucket den Namen Ihres Eingabe-Buckets ein.
Belassen Sie die IAM-Rolle als
Console Default Role
.Geben Sie unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren den Namen Ihres Ausgabe-Buckets ein.
Wählen Sie weiterhin unter Amazon S3 S3-Bucket für transcodierte Dateien und Playlisten konfigurieren die Standardspeicherklasse aus.
Erstellen Sie das Dropdown-Menü „Benachrichtigungen.
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 aus
ets-sample-topic
.Klicken Sie auf Create Pipeline (Pipeline erstellen).
Notieren Sie die Elastic Transcoder-Pipeline-ID.
Schaffung eines CloudFront Amazon-Vertriebs zur skalierbaren Bereitstellung von Inhalten
Öffnen Sie die CloudFront Amazon-Konsole
. Erweitern Sie im Navigationsbereich der Konsole Private Inhalte und klicken Sie dann auf Origin Access Identity.
Klicken Sie auf Origin Access Identity erstellen.
Klicken Sie auf Create.
Notieren Sie die kanonische Amazon S3 S3-Benutzer-ID, die generiert wird, wenn Sie Ihre ursprüngliche Zugriffsidentität erstellen.
Klicken Sie im Navigationsbereich auf Distribution.
Klicken Sie auf Create Distribution.
Wählen Sie Web aus und klicken Sie dann auf Weiter.
Geben Sie unter Origin-Einstellungen Ihren Amazon S3 S3-Output-Bucket als Original-Domainnamen ein.
Geben Sie im Feld Origin-ID den Wert ein
S3-transcoder-sample-output
.Wählen Sie für Restrict Bucket Access die Option Ja aus.
Klicken Sie auf Distribution erstellen und notieren Sie den Domainnamen der Distribution.
Amazon-S3-BuckAmazon-S3-BuckAmazon-S3-BuckBuckBuckBuck
Öffnen Sie die Amazon S3-Konsole
. Klicken Sie neben dem Ausgabe-Bucket auf das Lupensymbol, um die Bucket-Eigenschaften aufzurufen.
Erweitern Sie die Berechtigungen und klicken Sie auf Bucket-Richtlinie hinzufügen.
Geben Sie die folgende Richtlinienerklärung ein und ersetzen Sie CloudFront-oai-s3-canonical-user-id durch
your recorded Amazon S3 canonical user ID
und s3-output-bucket-name durchthe name of your output bucket
.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.
Herunterladen eines Java HLS-Beispiels
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:
Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Java-Umgebung
Laden Sie den Beispiel-Code herunter.
Öffnen Sie in Eclipse
com/amazonaws/services/elastictranscoder/samples/HlsJobCreationSample.java
.Ersetzen Sie PIPELINE_ID und INPUT_KEY durch die entsprechenden Werte.
Führen Sie die Beispiele in Eclipse aus.
Benachrichtigungsbeispiele
Themen
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" }
Herunterladen eines Java-Benachrichtigungsbeispiels
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 Klasse
JobStatusNotification
: DieJobStatusNotification
Klasse modelliert eine Elastic Transcoder Transcoder-Benachrichtigung.Die Klasse
SqsQueueNotificationWorker
: 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: DieJobStatusNotificationHandler
-Schnittstelle kann implementiert werden, um eine benutzerdefinierte Verarbeitung von Benachrichtigungen zu erlauben.Die
JobStatusNotificationsSample
-Klasse: DieJobStatusNotificationsSample
-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:
Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Java-Umgebung.
Laden Sie den Beispiel-Code herunter.
Extrahieren Sie den Beispiel-Code in das Quellverzeichnis Ihres JAVA-Projekts.
Öffnen Sie in Eclipse
com/amazonaws/services/elastictranscoder/samples/JobStatusNotificationsSample.java
.Ersetzen Sie PIPELINE_ID, SQS_QUEUE_URL und INPUT_KEY durch die entsprechenden Werte.
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.
Herunterladen eines Ruby HLS-Beispiels
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:
Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Ruby-Umgebung
Laden Sie den Beispiel-Code herunter.
Extrahieren Sie den Beispiel-Code in das Quellverzeichnis Ihres Ruby-Projekts.
Bearbeiten Sie
HlsJobCreationSample.rb
und ersetzen pipeline_id und input_key durch die entsprechenden Werte.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
Themen
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" }
Herunterladen eines Ruby-Benachrichtigungsbeispiels
Sie können den Beispielcode hier herunterladen.
Teile des Beispiel-Codes
Der Ruby-Beispiel-Code enthält:
Die Klasse
SqsQueueNotificationWorker
: 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 Skript
JobStatusNotificationsSample.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:
Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Ruby-Umgebung
Laden Sie den Beispiel-Code herunter.
Extrahieren Sie den Beispiel-Code in das Quellverzeichnis Ihres Ruby-Projekts.
Bearbeiten Sie
JobStatusNotificationsSample.rb
und ersetzen pipeline_id, sqs_queue_url und input_key durch die entsprechenden Werte.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.
Herunterladen eines PHP HLS-Beispiels
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:
Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer PHP-Umgebung
Laden Sie den Beispiel-Code herunter.
Laden Sie in Ihrem Browser die Seite http://<your-endpoint>/transcoder-samples/HlsJobCreationSample .php.
Geben Sie die Pipeline-ID und den Input-Key an und senden Sie das Formular ab, um einen Auftrag zu erstellen.
Benachrichtigungsbeispiele
Themen
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" }
Herunterladen eines PHP-Benachrichtigungsbeispiels
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ädtJobStatusNotificationsSample.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:
Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer PHP-Umgebung
Laden Sie den Beispiel-Code herunter.
Extrahieren Sie den Beispiel-Code in das Quellverzeichnis Ihres PHP-Projekts.
Laden Sie in Ihrem Browser die Seite http://<your-endpoint>/transcoder-samples/JobStatusNotificationsSample .php.
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.
Herunterladen eines Python HLS-Beispiels
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:
Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Python-Umgebung
Laden Sie den Beispiel-Code herunter.
Extrahieren Sie den Beispiel-Code.
Bearbeiten Sie
HlsJobCreationSample.py
und ersetzen pipeline_id und input_key durch die entsprechenden Werte.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
Themen
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" }
Herunterladen eines Python-Benachrichtigungsbeispiels
Sie können den Beispielcode hier herunterladen.
Teile des Beispiel-Codes
Der Python-Beispiel-Code enthält:
Die Klasse
SqsQueueNotificationWorker.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 Skript
JobStatusNotificationSample.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:
Richten Sie Ihre Umgebung entsprechend dieser Anleitungen ein: Einrichten Ihrer Python-Umgebung
Laden Sie den Beispiel-Code herunter.
Extrahieren Sie den Beispiel-Code in einen lokalen Ordner.
Bearbeiten Sie
JobStatusNotificationsSample.py
und ersetzen pipeline_id, sqs_queue_url und input_key durch die entsprechenden Werte.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