Überblick über IVS Serverseitige Zusammensetzung - Amazon IVS

Überblick über IVS Serverseitige Zusammensetzung

Dieses Diagramm veranschaulicht, wie serverseitige Zusammensetzung funktioniert:

Übertragung einer Stufe mithilfe serverseitiger Zusammensetzung.

Vorteile

Im Vergleich zur clientseitigen Zusammensetzung bietet die serverseitige Zusammensetzung die folgenden Vorteile:

  • Reduzierte Client-Last – Bei der serverseitigen Zusammensetzung wird die Last der Verarbeitung und Kombination von Audio- und Videoquellen von einzelnen Client-Geräten auf den Server selbst verlagert. Durch die serverseitige Zusammensetzung entfällt die Anforderung, dass Client-Geräte ihre CPU- und Netzwerkressourcen für die Zusammensetzung der Anzeige und deren Übertragung an IVS verwenden. Dies bedeutet, dass Zuschauer die Übertragung ansehen können, ohne dass ihre Geräte ressourcenintensive Aufgaben erledigen müssen, was zu einer verbesserten Akkulaufzeit und einem flüssigeren Seherlebnis führen kann.

  • Gleichbleibende Qualität – Die serverseitige Zusammensetzung ermöglicht eine präzise Kontrolle über die Qualität, Auflösung und Bitrate des endgültigen Streams. Dies gewährleistet ein einheitliches Seherlebnis für alle Zuschauer, unabhängig von den Fähigkeiten ihrer einzelnen Geräte.

  • Ausfallsicherheit – Durch die Zentralisierung des Zusammensetzungsprozesses auf dem Server wird die Übertragung stabiler. Selbst wenn ein Publisher-Gerät technischen Einschränkungen oder Schwankungen unterliegt, kann sich der Server anpassen und allen Zuschauermitgliedern einen reibungsloseren Stream bieten.

  • Bandbreiteneffizienz – Da der Server die Zusammensetzung übernimmt, müssen Stufen-Publisher keine zusätzliche Bandbreite für die Übertragung des Videos an IVS aufwenden.

Um eine Stufe an einen IVS-Kanal zu übertragen, können Sie alternativ die Zusammensetzung clientseitig durchführen; Weitere Informationen finden Sie unter Aktivierung mehrerer Hosts auf einem IVS-Stream im Benutzerhandbuch zum IVS-Streaming mit niedriger Latenz.

Lebenszyklus einer Zusammensetzung

Verwenden Sie das folgende Diagramm, um sich mit den Statusübergänge einer Zusammensetzung vertraut zu machen:

Lebenszyklus einer serverseitigen Zusammensetzungsressource.

Auf einer hohen Ebene sieht der Lebenszyklus einer Zusammensetzung wie folgt aus:

  1. Eine Composition-Ressource wird erstellt, wenn der Benutzer den Vorgang StartComposition aufruft.

  2. Sobald IVS die Zusammensetzung erfolgreich startet, wird ein EventBridge-Ereignis „Statusänderung IVS-Zusammensetzung (Sitzungsstart)“ gesendet. Einzelheiten zu Ereignissen finden Sie unter Verwenden von EventBridge mit IVS-Echtzeit-Streaming.

  3. Sobald sich eine Zusammensetzung im aktiven Status befindet, kann Folgendes passieren:

    • Benutzer hält die Zusammensetzung an – Wenn der Vorgang StopComposition aufgerufen wird, initiiert IVS ein ordnungsgemäßes Herunterfahren der Zusammensetzung und sendet „Zielende“-Ereignisse, gefolgt von einem „Sitzungsende“-Ereignis.

    • Zusammensetzung wird automatisch herunter gefahren – Wenn kein Teilnehmer in der IVS-Stufe aktiv veröffentlicht, wird die Zusammensetzung nach 60 Sekunden automatisch abgeschlossen und EventBridge-Ereignisse werden gesendet.

    • Zielfehler – Wenn ein Ziel unerwartet ausfällt (z. B. wenn der IVS-Kanal gelöscht wird), wechselt das Ziel in den RECONNECTING-Status und es wird ein Ereignis „Wiederverbindung zum Ziel“ gesendet. Wenn eine Wiederherstellung nicht möglich ist, versetzt IVS das Ziel in den FAILED-Status und es wird ein „Zielfehler“-Ereignis gesendet. IVS hält die Zusammensetzung aktiv, wenn mindestens eines ihrer Ziele aktiv ist.

  4. Sobald sich die Zusammensetzung im STOPPED- oder FAILED-Status befindet, wird sie nach fünf Minuten automatisch bereinigt. (Dann wird sie nicht mehr von ListCompositions oder GetComposition abgerufen.)

IVS-API

Die serverseitige Zusammensetzung verwendet diese wichtigen API-Elemente:

  • Mit einem EncoderConfiguration-Objekt können Sie das Format des zu generierenden Videos anpassen (Höhe, Breite, Bitrate und andere Streaming-Parameter). Sie können eine EncoderConfiguration bei jedem Aufruf des Vorgangs StartComposition wiederverwenden.

  • Composition-Vorgänge verfolgen die Video-Zusammensetzung und die Ausgabe über einen IVS-Kanal.

  • StorageConfiguration verfolgt den S3-Bucket, in dem Zusammensetzungen aufgezeichnet werden.

Um die serverseitige Zusammensetzung zu verwenden, müssen Sie eine EncoderConfiguration erstellen und diese beim Aufruf des Vorgangs StartComposition anfügen. In diesem Beispiel wird die SquareVideo EncoderConfiguration in zwei Zusammensetzungen verwendet:

Bei der serverseitigen Zusammensetzung werden zwei wichtige API-Elemente verwendet.

Vollständige Informationen finden Sie unter API-Referenz zu IVS-Echtzeit-Streaming.

Layouts

Der Vorgang StartComposition bietet zwei Layoutoptionen: Raster und PiP (Bild-in-Bild).

Raster-Layout

Das Raster-Layout ordnet Bühnenteilnehmer in einem Raster aus gleichgroßen Slots an. Er bietet mehrere anpassbare Eigenschaften:

  • videoAspectRatio legt den Anzeigemodus für Teilnehmer fest, um das Seitenverhältnis von Videokacheln zu steuern.

  • videoFillMode legt fest, wie Videoinhalte in die Teilnehmerkachel passen.

  • gridGap gibt den Abstand zwischen Teilnehmerkacheln in Pixeln an.

  • omitStoppedVideo ermöglicht das Ausschließen gestoppter Videostreams aus der Zusammensetzung.

  • featuredParticipantAttribute identifiziert den hervorgehobenen Slot. Wenn diese Option aktiviert ist, wird der hervorgehobene Teilnehmer in einem größeren Slot auf dem Hauptbildschirm angezeigt, andere Teilnehmer werden darunter angezeigt.

Einzelheiten zum Raster-Layout (einschließlich gültiger Werte und Standardwerte für alle Felder) finden Sie unter dem Datentyp GridConfiguration.

Raster-Layout für serverseitige Zusammensetzung

Bild-in-Bild (PiP)-Layout

Das PiP-Layout ermöglicht die Anzeige eines Teilnehmers in einem Overlay-Fenster mit konfigurierbarer Größe, Position und Verhaltensweise. Zu den wichtigsten Eigenschaften gehören:

  • pipParticipantAttribute gibt den Teilnehmer für das PiP-Fenster an.

  • pipPosition bestimmt die Eckposition des PiP-Fensters.

  • pipWidth und pipHeight konfigurieren die Breite und Höhe des PiP-Fensters.

  • pipOffset legt die Versatzposition des PiP-Fensters in Pixeln von den nächstgelegenen Kanten fest.

  • pipBehavior definiert das PiP-Verhalten, wenn alle anderen Teilnehmer gegangen sind.

Wie das Raster-Layout unterstützt auch das PiP featuredParticipantAttribute, omitStoppedVideo, videoFillMode und gridGap zur weiteren Anpassung der Zusammensetzung.

Einzelheiten zum PiP-Layout (einschließlich gültiger Werte und Standardwerte für alle Felder) finden Sie unter dem Datentyp PipConfiguration.

Bild-in-Bild (PiP)-Layout für serverseitige Zusammensetzung

Hinweis: Die maximale Auflösung, die von einem Stufen-Publisher bei serverseitiger Zusammensetzung unterstützt wird, beträgt 1080 p. Wenn ein Publisher Videos mit einer höheren Auflösung als 1080 p sendet, wird der Publisher als reiner Audio-Teilnehmer gerendert.

Wichtig: Stellen Sie sicher, dass Ihre Anwendung nicht von den spezifischen Features des aktuellen Layouts abhängt, z. B. von Größe und Position der Kacheln. Visuelle Verbesserungen an Layouts können jederzeit vorgenommen werden.