Tutorials zum Streaming von Medien mit Amazon CloudFront

Warum Amazon CloudFront?

Kunden nutzen Amazon CloudFront, um Videos an Zuschauer auf der ganzen Welt zu streamen, indem eine Vielzahl von Protokollen über HTTP geschichtet wird.

Das Amazon Content Delivery Network (CDN) kann in Kombination mit AWS-Elemental-Medienservices für die Implementierung zwei verschiedener Typen von Video-Streams verwendet werden. Zunächst schauen wir uns das Streamen von in Amazon Simple Storage Service (Amazon S3) gespeicherten Inhalten auf Abruf an. Anschließend beschäftigen wir uns mit dem Live-Streaming von Veranstaltungen oder 24x7-Kanälen.

Bewährte Methoden finden Sie im Amazon CloudFront für Media White Paper.

Erstellung von serverlosen Video-Workflows

On-Demand-Streaming

Im Anwendungsfall für Streaming auf Abruf, werden Ihre Videoinhalte in Amazon S3 gespeichert. Ihre Zuschauer können sich diese zu einem beliebigen Zeitpunkt anschauen – daher die Bezeichnung „auf Abruf“. Eine komplette Lösung für das Streaming auf Abruf nutzt typischerweise Amazon S3 für die Speicherung, AWS Elemental MediaConvert für die dateibasierte Videoverarbeitung und Amazon CloudFront für die Bereitstellung.

Amazon S3 eignet sich optimal zum Speichern Ihrer Video-Assets. Es ist stufenlos skalierbar, hat eine eingebaute Redundanz und steht Ihnen auf Pay-as-you-go-Basis zur Verfügung. Zum Hochladen Ihrer Inhalte zu S3 gibt es zahlreiche Möglichkeiten. Bei einem geringen Volumen können Sie mit der AWS-Managementkonsole starten und anschließend bei steigendem Volumen zu einem automatischen System wechseln. Die Verwendung von S3 über die Konsole ist sehr einfach. Nachdem Sie Ihr AWS-Konto erstellt haben, melden Sie sich einfach an, erstellen einen S3-Bucket und laden dann Ihren Inhalt hoch. Wenn Sie ein automatisches System implementieren möchten, können Sie die AWS-Befehlszeilen-Schnittstelle in Ihren eigenen Skripten oder die Amazon S3-API in Ihrem eigenen Code verwenden.

Nach dem Hochladen müssen Sie Ihr Video möglicherweise in die Größe, Auflösung oder das Format konvertieren, die bzw. das für ein bestimmtes Fernsehgerät oder angeschlossenes Gerät erforderlich ist. Dafür kann idealerweise der AWS Elemental MediaConvert eingesetzt werden. MediaConvert übernimmt den Inhalt von S3, transcodiert ihn gemäß Ihren Vorgaben und speichert das Ergebnis wieder in S3. Die Transcodierung verarbeitet Videodateien und erstellt komprimierte Versionen des Originalinhalts, um seine Größe zu reduzieren, sein Format zu ändern oder die Kompatibilität mit Wiedergabegeräten zu erhöhen. Wie bereits erwähnt können Sie diesen Prozess über die AWS-Managementkonsole, die Befehlszeile oder über die MediaConvert-APIs verwalten.

Da Ihre Inhalte jetzt sicher gespeichert und in den von Ihren Benutzern gewünschten Formaten verfügbar sind, werden sie jetzt mit Amazon CloudFront global bereitgestellt. Das Amazon Content Delivery Network speichert Inhalte an den Rändern für niedrige Latenzzeiten und hohen Datendurchsatz. Dank der Skalierbarkeit können Sie so viele oder so wenige Videos ausgeben, wie Sie wollen. Unerwartete Abrufspitzen können Sie mit Leichtigkeit auf Pay-as-you-go-Basis bewältigen (mehr dazu in den CloudFront-Preisen).

An dieser Stelle haben Sie jetzt 2 Möglichkeiten. Sie können die gesamte Videodatei vor der Wiedergabe auf das Gerät übertragen oder auf das Gerät streamen.

Die erste Option ist sehr einfach zu implementieren und wird von nahezu jedem mobilen Gerät und Desktop unterstützt. Sie müssen Ihren Inhalt nur in einen S3-Bucket übertragen und eine CloudFront-Distribution erstellen, die auf den Bucket verweist. Der Videoplayer Ihres Benutzers verwendet zur Anforderung der Videodatei CloudFront-URLs (die als Teil der Distribution zugänglich sind). Die Anfrage wird je nach Standort des Benutzers an die beste Edge-Position weitergeleitet. Das CDN bedient das Video aus seinem Cache und holt es aus dem S3-Bucket, wenn es nicht bereits gecached ist. Diese Option hat jedoch einige Nachteile. Die Bandbreite des Zuschauers wird ineffizient genutzt. Wenn sich der Benutzer nicht die Mühe macht, das gesamte Video anzusehen, werden Inhalte, die nicht angesehen werden würden, trotzdem heruntergeladen und Sie bezahlen dafür.

Die zweite Option wird nahezu immer bevorzugt. Eine Reihe von Video-Streaming-Protokollen, einschließlich HTTP Live Streaming von Apple (HLS), Dynamisches adaptives Streaming über HTTP. (DASH), Microsoft Smooth Streaming (MSS) und HTTP Dynamic Streaming von Adobe (HDS), verbessern die Benutzerfreundlichkeit, indem sie Videos bereitstellen, während sie angesehen werden, und Inhalte in der Regel einige Sekunden vor dem Zeitpunkt abrufen, zu dem sie benötigt werden. Die Wiedergabe startet schneller, der Schnellvorlauf ist effizienter und die Benutzerfreundlichkeit ist insgesamt besser. Mit dieser Option zahlen Sie nur für das, was der Zuschauer sieht, Sie verschwenden keine Bandbreite und die Benutzer sehen schneller den gewünschten Inhalt.

Die Implementierung der zweiten Option ist nur etwas aufwendiger. Zuerst verwenden Sie MediaConvert, um Ihre Videodateien in das HLS-Format (das am meisten unterstützte Streaming-Protokoll) zu konvertieren. Dadurch wird das Video in kurze Segmente aufgeteilt und eine Manifest-Datei erstellt. Dann weisen Sie die CloudFront-Distribution der Manifest-Datei zu. Um den Live-Stream abzuspielen, betten Sie die Manifest-URL in die Player ein, mit denen Ihre Benutzer den Live-Stream abspielen werden. Um beispielsweise einen Live-Stream abzuspielen, dessen Manifest-Datei myStream/playlist.m3u8 und die CloudFront-Distribution d111111abcdef8.cloudfront.net ist, betten Sie die folgende URL in die Player ein: http://d111111abcdef8.cloudfront.net/myStream/playlist.m3u8.

Die Seite „Video on Demand on AWS“ bietet bewährte Methoden und Anleitungen für die Implementierung eines Video-on-Demand-Workflows in der AWS Cloud und stellt eine AWS-Lösung vor, die automatisch die für den Aufbau einer skalierbaren, verteilten Architektur erforderlichen Dienste zur Verfügung stellt, die Videoinhalte aufnimmt, speichert, verarbeitet und bereitstellt.

Live-Streaming

Im Anwendungsfall für Live-Streaming sind Ihre Inhalte entweder eine Live-Veranstaltung oder ein rund um die Uhr verfügbarer Live-Kanal. Beispiele für die ersten sind Broadcaster und Content-Aggregators, die Sportturniere, Preisverleihungen, Keynote-Reden und andere Live-Veranstaltungen mit hohen Zuschauerzahlen übertragen. Beispiele für letztere sind Studios, Rundfunkanstalten und Pay-TV-Anbieter, die lineare Live-Kanäle ohne eine Vertriebsplattform eines Drittanbieters über das Internet für ihr Publikum direkt bereitstellen möchten.

Mit AWS können Sie mit wenigen einfachen Schritten kostengünstig Live-Inhalte an ein globales Publikum senden.

Der erste Schritt ist die Live-Videoverarbeitung. Hierfür können Sie AWS Elemental MediaLive verwenden, das Ihre Live-Videostreams in Echtzeit kodiert, indem eine größere Live-Videoquelle – beispielsweise von einem On-Premises-Encoder wie AWS Elemental Live – in kleinere Versionen zur Verteilung an Ihre Zuschauer komprimiert wird. Für den zweiten Schritt haben Sie je nach Anwendungsfall zwei Möglichkeiten. Sie können einen Just-in-Time-Packaging-Ursprung wie AWS Elemental MediaPackage verwenden, um Videoinhalte von einem einzigen Format in mehrere Formate zu konvertieren und sicher für verschiedene Gerätetypen zu verpacken. Mit MediaPackage ist die Bereitstellung gängiger Videofunktionen für die Konsumenten Ihrer Videos (Wiederholung, Pause, Zurückspulen usw.), wie sie es von DVRs gewohnt sind, ein Kinderspiel. Darüber hinaus werden Ihre Inhalte durch Digital Rights Management (DRM) geschützt. Alternativ können Sie, wenn der Encoder den Inhalt bereits in das Format bringt, welches von allen Ihren Endbenutzergeräten benötigt wird, einen hochleistungsfähigen skalierbaren Ursprung wie AWS Elemental MediaStore verwenden. MediaPackage und MediaStore liefern die Inhalte an Amazon CloudFront, die sie an das Publikum weiterleitet, das die Live-Veranstaltung sieht.

Sobald Ihre Lösung in Betrieb ist, kann die Live-Veranstaltung skalierbar und kostengünstig weltweit übertragen werden. Das CDN ist für ein Publikum in unterschiedlicher Größe und für „Flash-Crowds“ geeignet.

Die Seite „Live Video Streaming“ bietet bewährte Methoden und Anleitungen zur Auswahl eines Live-Video-Streaming-Workflows in der AWS Cloud und stellt eine AWS-Lösung vor, die automatisch die erforderlichen Dienste bereitstellt, um eine hochverfügbare und kostengünstige Architektur zu erstellen, die eine außergewöhnliche Echtzeit-Anzeigeerfahrung bietet.