

# Serverseitige Zusammensetzung von IVS \$1 Echtzeit-Streaming
<a name="server-side-composition"></a>

Die serverseitige Zusammensetzung verwendet einen IVS-Server, um Audio- und Videodaten von allen Teilnehmern der Stufe zu mischen und sendet dieses gemischte Video dann an einen IVS-Kanal (z. B. um ein größeres Publikum zu erreichen) oder einen S3-Bucket. Die serverseitige Zusammensetzung wird über Vorgänge der IVS-Steuerebene in der Heimatregion der Stufe aufgerufen.

Die Übertragung oder Aufzeichnung einer Stufe mittels serverseitiger Zusammensetzung bietet zahlreiche Vorteile und ist daher eine attraktive Wahl für Benutzer, die effiziente und zuverlässige cloudbasierte Video-Workflows suchen.

**Topics**
+ [Überblick über IVS Serverseitige Zusammensetzung](ssc-overview.md)
+ [Erste Schritte mit IVS Serverseitige Zusammensetzung](ssc-getting-started.md)
+ [Benutzerdefinierte Teilnehmeranordnung](ssc-getting-started-custom-participant-ordering.md)
+ [Bildschirmfreigabe in IVS Serverseitige Zusammensetzung aktivieren](ssc-getting-started-screen-share.md)
+ [Bekannte Probleme und Problemumgehungen](ssc-known-issues.md)

# Überblick über IVS Serverseitige Zusammensetzung
<a name="ssc-overview"></a>

Dieses Diagramm veranschaulicht, wie serverseitige Zusammensetzung funktioniert:

![\[Übertragung einer Stufe mithilfe serverseitiger Zusammensetzung.\]](http://docs.aws.amazon.com/de_de/ivs/latest/RealTimeUserGuide/images/ssc_Intro_Composite_Recording.png)


## Vorteile
<a name="ssc-benefits"></a>

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](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/multiple-hosts.html) im *Benutzerhandbuch zum IVS-Streaming mit niedriger Latenz*.

## Lebenszyklus einer Zusammensetzung
<a name="ssc-composition-endpoint"></a>

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

![\[Lebenszyklus einer serverseitigen Zusammensetzungsressource.\]](http://docs.aws.amazon.com/de_de/ivs/latest/RealTimeUserGuide/images/ssc_Composition_Lifecycle.png)


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.

1. 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](eventbridge.md).

1. 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 heruntergefahren – Wenn die IVS-Stufe gelöscht wird oder 60 Sekunden lang kein Teilnehmer in der IVS-Stufe aktiv veröffentlicht, wird die Zusammensetzung 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.

1. 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
<a name="ssc-api"></a>

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.\]](http://docs.aws.amazon.com/de_de/ivs/latest/RealTimeUserGuide/images/ssc_IVS_API_Composite_Recording.png)


Vollständige Informationen finden Sie unter [API-Referenz zu IVS-Echtzeit-Streaming](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/Welcome.html).

## Layouts
<a name="ssc-api-layouts"></a>

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

### Raster-Layout
<a name="ssc-api-layouts-grid"></a>

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.
+ `participantOrderAttribute` ermöglicht eine benutzerdefinierte Teilnehmeranordnung auf Grundlage der Attributwerte in den Teilnehmer-Token. Wenn diese Option angegeben ist, werden die Teilnehmer numerisch nach ihren Attributwerten angeordnet. Bei Teilnehmern ohne das Attribut erfolgt die Anordnung wieder nach der Ankunftszeit. Das bietet eine optionale deterministische Positionierung und ermöglicht rollenbasierte Layouts.

Einzelheiten zum Raster-Layout (einschließlich gültiger Werte und Standardwerte für alle Felder) finden Sie unter dem Datentyp [GridConfiguration](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_GridConfiguration.html).

![\[Raster-Layout für serverseitige Zusammensetzung\]](http://docs.aws.amazon.com/de_de/ivs/latest/RealTimeUserGuide/images/ssc_Grid_Layout.png)


### Bild-in-Bild (PiP)-Layout
<a name="ssc-api-layouts-pip"></a>

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-Layout `featuredParticipantAttribute`, `omitStoppedVideo`, `videoFillMode`, `gridGap` und `participantOrderAttribute` zur weiteren Anpassung der Zusammensetzung. Das `participantOrderAttribute` ermöglicht eine benutzerdefinierte Teilnehmeranordnung für die Auswahl der Teilnehmer für das PiP-Fenster und für die Positionierung der Raster-Teilnehmer auf Grundlage der Attributwerte in den Teilnehmer-Token.

Einzelheiten zum PiP-Layout (einschließlich gültiger Werte und Standardwerte für alle Felder) finden Sie unter dem Datentyp [PipConfiguration](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_PipConfiguration.html).

![\[Bild-in-Bild (PiP)-Layout für serverseitige Zusammensetzung\]](http://docs.aws.amazon.com/de_de/ivs/latest/RealTimeUserGuide/images/ssc_PiP_Layout.png)


**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*. 

# Erste Schritte mit IVS Serverseitige Zusammensetzung
<a name="ssc-getting-started"></a>

Dieses Dokument führt Sie durch die Schritte zum Einstieg in IVS Serverseitige Zusammensetzung.

## Voraussetzungen
<a name="ssc-getting-started-prerequisites"></a>

Um die serverseitige Zusammensetzung verwenden zu können, müssen Sie über eine Stage mit aktiven Publishern verfügen und einen IVS-Kanal und/oder einen S3-Bucket als Zusammensetzungsziel verwenden.

Informationen zum Erstellen eines S3-Buckets finden Sie in der S3-Dokumentation zum [Erstellen von Buckets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). Der S3-Bucket muss in der gleichen AWS-Region wie die IVS-Stage erstellt werden.

**Wichtig**: Wenn Sie einen vorhandenen S3-Bucket nutzen, ist Folgendes zu berücksichtigen:
+ Für die Einstellung **Objekteigentümerschaft** muss entweder **Bucket-Eigentümer erzwungen** oder **Bucket-Eigentümer bevorzugt** aktiviert sein.
+ Die **Standardverschlüsselung** muss **Serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3)** sein.

Einzelheiten finden Sie in der S3-Dokumentation zum [Steuern der Eigentümerschaft von Objekten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) und zum [Datenschutz durch Verschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html).

## API-Anweisungen
<a name="ssc-getting-started-api-instructions"></a>

Nachfolgend wird ein möglicher Workflow beschrieben, der EventBridge-Ereignisse verwendet, um eine Zusammensetzung zu starten, die die Stage an einen IVS-Kanal sendet, wenn ein Teilnehmer etwas veröffentlicht. Alternativ können Sie Zusammensetzungen basierend auf Ihrer eigenen App-Logik starten und stoppen. Unter [Zusammengesetzte Aufzeichnung](rt-composite-recording.md) finden Sie ein weiteres Beispiel, das die Verwendung serverseitiger Zusammensetzung zur direkten Aufzeichnung einer Stage in einem S3-Bucket demonstriert.

1. Erstellen Sie einen IVS-Kanal. Weitere Informationen finden Sie unter [Erste Schritte mit Amazon-IVS-Streaming mit niedriger Latenz](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/getting-started.html).

1. Erstellen Sie für jeden Publisher eine IVS-Stage und Teilnehmer-Tokens.

1. Erstellen Sie eine [EncoderConfiguration](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_EncoderConfiguration.html).

1. Treten Sie der Stage bei und veröffentlichen Sie dort. (Weitere Informationen finden Sie in den Abschnitten „Veröffentlichen und Abonnieren“ der SDK-Anleitungen für Echtzeit-Streaming-Broadcasts: [Web](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/web-publish-subscribe.html), [Android](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/android-publish-subscribe.html) und [iOS](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/ios-publish-subscribe.html).)

1. Wenn Sie ein vom Teilnehmer veröffentlichtes EventBridge-Ereignis erhalten, rufen Sie [StartComposition](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_StartComposition.html) mit Ihrer gewünschten Layout-Konfiguration auf.

1. Warten Sie einige Sekunden und sehen Sie sich die zusammengesetzte Ansicht in der Kanalwiedergabe an.

![\[Serverseitiger Zusammensetzungs-Workflow, der EventBridge-Ereignisse verwendet, um eine Zusammensetzung zu starten, wenn ein Teilnehmer etwas veröffentlicht.\]](http://docs.aws.amazon.com/de_de/ivs/latest/RealTimeUserGuide/images/ssc_Workflow.png)


**Hinweis**: Eine Zusammensetzung wird nach 60 Sekunden Inaktivität von Publisher-Teilnehmern in der Stage automatisch heruntergefahren. An diesem Punkt wird die Zusammensetzung beendet und geht in einen `STOPPED`-Status über. Eine Zusammensetzung wird nach einigen Minuten im `STOPPED`-Status automatisch gelöscht.

## CLI-Anweisungen
<a name="ssc-getting-started-cli"></a>

Die Verwendung von AWS CLI ist eine Advanced Option und erfordert, dass Sie zuerst die CLI auf Ihrem Computer herunterladen und konfigurieren. Informationen zu den ersten Schritten finden Sie im [Benutzerhandbuch für die AWS-Befehlszeilenschnittstelle](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

Nun können Sie mit der CLI Ressourcen erstellen und verwalten. Die Composition-Vorgänge befinden sich unter dem Namespace `ivs-realtime`.

### Erstllen der EncoderConfiguration-Ressource
<a name="ssc-getting-started-cli-create-encoderconfiguration"></a>

Eine EncoderConfiguration ist ein Objekt, mit dem Sie das Format des generierten Videos (Höhe, Breite, Bitrate und andere Streaming-Parameter) anpassen können. Sie können eine EncoderConfiguration bei jedem Aufruf des Composition-Vorgangs wiederverwenden, wie im nächsten Schritt erläutert.

Der folgende Befehl erstellt eine EncoderConfiguration-Ressource, die serverseitige Parameter für die Videozusammensetzung wie Videobitrate, Bildrate und Auflösung konfiguriert:

```
aws ivs-realtime create-encoder-configuration --name "MyEncoderConfig" --video "bitrate=2500000,height=720,width=1280,framerate=30"
```

Die Antwort ist:

```
{
"encoderConfiguration": {
  "arn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/9W59OBY2M8s4",
  "name": "MyEncoderConfig",
  "tags": {},
  "video": {
	 "bitrate": 2500000,
	 "framerate": 30,
	 "height": 720,
	 "width": 1280
    }
  }
}
```

### Starten einer Zusammensetzung
<a name="ssc-getting-started-cli-start-mediapublish"></a>

Erstellen Sie mithilfe des in der obigen Antwort bereitgestellten EncoderConfiguration-ARN Ihre Zusammensetzungsressource:

**Beispiel für ein Raster-Layout**

```
aws ivs-realtime start-composition --stage-arn "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik" --destinations '[{"channel": {"channelArn": "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/9W59OBY2M8s4"}}]' --layout '{"grid":{"participantOrderAttribute":"order","featuredParticipantAttribute":"isFeatured","videoFillMode":"COVER","gridGap":0}}'
```

**Beispiel für ein PiP-Layout**

```
aws ivs-realtime start-composition --stage-arn "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik" --destinations '[{"channel": {"channelArn": "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/DEkQHWPVaOwO"}}]' --layout '{"pip":{"participantOrderAttribute":"priority","pipParticipantAttribute":"isPip","pipOffset":10,"pipPosition":"TOP_RIGHT"}}'
```

**Hinweis**: Mit [diesem Tool](https://composition.ivsdemos.com/) können Sie die `--layout`-Konfiguration basierend auf Ihrer Layout-Auswahl einfacher generieren.

Die Antwort zeigt, dass die Zusammensetzung mit einem `STARTING`-Status erstellt wurde. Sobald die Zusammensetzung mit der Veröffentlichung der Zusammensetzung beginnt, geht der Status in `ACTIVE` über. (Sie können den Status anzeigen, indem Sie den Vorgang ListCompositions oder GetComposition aufrufen.)

Sobald eine Zusammensetzung `ACTIVE` ist, wird die zusammengesetzte Ansicht der IVS-Stage mithilfe von ListCompositions auf dem IVS-Kanal angezeigt:

```
aws ivs-realtime list-compositions
```

Die Antwort ist:

```
{
"compositions": [
  {
	 "arn": "arn:aws:ivs:us-east-1:927810967299:composition/YVoaXkKdEdRP",
	 "destinations": [
		{
		   "id": "bD9rRoN91fHU",
		   "startTime": "2023-09-21T15:38:39+00:00",
		   "state": "ACTIVE"
		}
	 ],
	 "stageArn": "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik",
	 "startTime": "2023-09-21T15:38:37+00:00",
	 "state": "ACTIVE",
	 "tags": {}
    }
  ]
}
```

**Hinweis**: Damit die Zusammensetzung aktiv bleibt, müssen die Publisher-Teilnehmer aktiv in der Stage veröffentlichen. Weitere Informationen finden Sie in den Abschnitten „Veröffentlichen und Abonnieren“ der SDK-Anleitungen für Echtzeit-Streaming-Broadcasts: [Web](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/web-publish-subscribe.html), [Android](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/android-publish-subscribe.html) und [iOS](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/ios-publish-subscribe.html). Sie müssen für jeden Teilnehmer ein eigenes Stage-Token erstellen.

# Benutzerdefinierte Teilnehmeranordnung
<a name="ssc-getting-started-custom-participant-ordering"></a>

Mit der benutzerdefinierten Teilnehmeranordnung können Sie die Positionierung der Teilnehmer im Raster- und im PiP-Layout auf Grundlage benutzerdefinierter Attributwerte in den Teilnehmer-Token steuern. Dazu gehört auch die Positionierung der hervorgehobenen Teilnehmer und die Auswahl der Teilnehmer für das PiP-Fenster. Das bietet eine deterministische Positionierung und ermöglicht rollenbasierte Layouts.

## Funktionsweise der benutzerdefinierten Anordnung
<a name="ssc-getting-started-custom-participant-ordering-how-custom-ordering-works"></a>

Wenn `participantOrderAttribute` in Ihrer Layoutkonfiguration angegeben ist, werden die Teilnehmer nach den folgenden Regeln angeordnet:
+ Teilnehmer, deren Token das angegebene Anordnungsattribut enthalten, werden an erster Stelle positioniert und numerisch nach ihren Attributwerten angeordnet.
+ Für Teilnehmer ohne das Anordnungsattribut erfolgt die Anordnung wieder nach der Ankunftszeit. Sie werden hinter den angeordneten Teilnehmern positioniert.
+ Wenn mehrere Teilnehmer identische Anordnungswerte haben, werden sie auf der Bühne nach ihrer Ankunftszeit untersortiert.
+ Bei der Anordnung kommt eine numerische Sortierung (keine lexikografische) zum Einsatz, sodass „10" nach „9" kommt (nicht nach „1").
+ Negative Werte werden unterstützt. Sie werden vor positiven Werten positioniert.
+ Nichtnumerische Werte (z. B. „abc“, „1,5") werden als ungültig behandelt. Bei diesen Teilnehmern erfolgt die Anordnung wieder nach der Ankunftszeit.

**Wichtig:** Die Teilnehmeranordnung wird (unabhängig davon, ob sie nach der Ankunftszeit oder benutzerdefiniert erfolgt) erst wirksam, nachdem die Zusammensetzung begonnen hat. Für Teilnehmer, die vor Beginn der Zusammensetzung die Bühne betreten, kann die korrekte Anordnung nicht garantiert werden.

## Erstellen von Token mit Anordnungsattributen
<a name="ssc-getting-started-custom-participant-ordering-creating-tokens-with-ordering-attributes"></a>

Um die benutzerdefinierte Teilnehmeranordnung zu nutzen, fügen Sie das Anordnungsattribut in die Teilnehmer-Token ein, wenn Sie diese erstellen:

```
aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=1

aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=2

aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=3
```

Sie können das Attribut für die benutzerdefinierte Teilnehmeranordnung mit den Attributen zur Auswahl der Teilnehmer für den hervorgehobenen Slot und das PiP-Fenster kombinieren:

```
aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=2,isFeatured=true

aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=3,isFeatured=true

aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes order=4,isPip=true
```

## Beispielanwendungsfälle
<a name="ssc-getting-started-custom-participant-ordering-example-use-cases"></a>

Zu den beispielhaften Anwendungsfällen gehören:
+ Konsistente Positionierung – Die Teilnehmer behalten ihre Positionen bei, wenn sie sich mit demselben Token erneut verbinden.
+ Rollenbasierte Positionierung – Sie könnten beispielsweise Lehrer mit order=1 und Schüler mit order=2 angeben.
+ Prioritätsbasierte Layouts – VIP-Teilnehmer mit niedrigeren Anordnungswerten werden zuerst angezeigt.
+ Dynamische Layouts – Für komplexe Szenarien können Sie die benutzerdefinierte Anordnung mit `featuredParticipantAttribute` und `pipParticipantAttribute` kombinieren.
+ Bühnenübergreifende Interaktionen – Wenn Sie für Szenarien wie Wettbewerbe im VS-Modus, bei denen Streamende von verschiedenen Bühnen interagieren, die Teilnehmerreplikation nutzen, können Sie die Anordnungsattribute außer Kraft setzen, um die Positionierung in der Zusammensetzung der Zielbühne festzulegen.

**Hinweis:** In Anwendungsfällen mit Teilnehmerreplikation können Sie die Teilnehmerattribute (einschließlich des Anordnungsattributs) beim Start einer Replikation nach Bedarf außer Kraft setzen, um das gewünschte Layout in der Zielbühne zu erreichen.

## Abwärtskompatibilität
<a name="ssc-getting-started-custom-participant-ordering-backward-compatibility"></a>

Die benutzerdefinierte Teilnehmeranordnung ist eine optionale Funktion und vollständig abwärtskompatibel. Bestehende Zusammensetzungen ohne `participantOrderAttribute` funktionieren unverändert weiter, wobei die Anordnung nach der Ankunftszeit erfolgt. Wenn `participantOrderAttribute` auf eine leere Zeichenfolge gesetzt ist, ignoriert das System die benutzerdefinierte Anordnung vollständig und kehrt zum Standardverhalten zurück.

# Bildschirmfreigabe in IVS Serverseitige Zusammensetzung aktivieren
<a name="ssc-getting-started-screen-share"></a>

Führen Sie die folgenden Schritte aus, um ein festes Bildschirmfreigabe-Layout zu verwenden.

## Erstllen der EncoderConfiguration-Ressource
<a name="ssc-getting-started-screen-share-create-encoderconfiguration"></a>

Mit dem folgenden Befehl wird eine EncoderConfiguration-Ressource erstellt, die serverseitige Zusammensetzungsparameter (Video-Bitrate, Framerate und Auflösung) konfiguriert.

```
aws ivs-realtime create-encoder-configuration --name "test-ssc-with-screen-share" --video={bitrate=2000000,framerate=30,height=720,width=1280}
```

Erstellen Sie ein Stufen-Teilnehmer-Token mit einem `screen-share`-Attribut. Da wir `screen-share` als Namen des `featured`-Slots angeben, müssen wir ein Stufen-Token erstellen, bei dem das `screen-share`-Attribut auf `true` festgelegt ist:

```
aws ivs-realtime create-participant-token --stage-arn "arn:aws:ivs:us-east-1:123456789012:stage/u9OiE29bT7Xp" --attributes screen-share=true
```

Die Antwort ist:

```
{
   "participantToken": {
      "attributes": {
         "screen-share": "true"
      },
      "expirationTime": "2023-08-04T05:26:11+00:00",
      "participantId": "E813MFklPWLF",
      "token": "eyJhbGciOiJLTVMiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE2OTExMjY3NzEsImlhdCI6MTY5MTA4MzU3MSwianRpIjoiRTgxM01Ga2xQV0xGIiwicmVzb3VyY2UiOiJhcm46YXdzOml2czp1cy1lYXN0LTE6OTI3ODEwOTY3Mjk5OnN0YWdlL3U5T2lFMjliVDdYcCIsInRvcGljIjoidTlPaUUyOWJUN1hwIiwiZXZlbnRzX3VybCI6IndzczovL3VzLWVhc3QtMS5ldmVudHMubGl2ZS12aWRlby5uZXQiLCJ3aGlwX3VybCI6Imh0dHBzOi8vYjJlYTVjMmZmMzU1Lmdsb2JhbC53aGlwLmxpdmUtdmlkZW8ubmV0IiwiYXR0cmlidXRlcyI6eyJzY3JlZW4tc2hhcmUiOiJ0cnVlIn0sImNhcGFiaWxpdGllcyI6eyJhbGxvd19wdWJsaXNoIjp0cnVlLCJhbGxvd19zdWJzY3JpYmUiOnRydWV9LCJ2ZXJzaW9uIjoiMC4zIn0.MGUCMFvMzv35O4yVzM9tIWZl7n3mmFQhleqsRSBx_G2qT2YUDlWSNg6H1vL7sAWQMeydSAIxAIvdfqt3Fh1MLiyelc9NnTjI5hL3YPKqDX6J3NDH1fksh8_5y1jztoPDy4yVA5OmtA"
   }
}
```

## Starten der Zusammensetzung
<a name="ssc-getting-started-screen-share-start-mediapublish"></a>

Um die Zusammensetzung mit dem Feature zur Bildschirmfreigabe zu starten, wird dieses Befehl verwendet:

```
aws ivs-realtime start-composition --stage-arn "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik" --destinations  '[{"channel": {"channelArn": "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r", "encoderConfigurationArn": "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/DEkQHWPVaOwO"}}]' --layout '{"grid":{"featuredParticipantAttribute":"screen-share"}}'
```

Die Antwort ist:

```
{
"composition" : {
"arn" : "arn:aws:ivs:us-east-1:927810967299:composition/B19tQcXRgtoz",
"destinations" : [ {
 "configuration" : {
	"channel" : {
	   "channelArn" : "arn:aws:ivs:us-east-1:927810967299:channel/DOlMW4dfMR8r",
	   "encoderConfigurationArn" : "arn:aws:ivs:us-east-1:927810967299:encoder-configuration/DEkQHWPVaOwO"
	},
	"name" : ""
 },
 "id" : "SGmgBXTULuXv",
 "state" : "STARTING"
} ],
"layout" : {
 "grid" : {
	"featuredParticipantAttribute" : "screen-share",
	"gridGap": 2,
	"omitStoppedVideo": false,
	"videoAspectRatio": "VIDEO"
 }
},
"stageArn" : "arn:aws:ivs:us-east-1:927810967299:stage/8faHz1SQp0ik",
"startTime" : "2023-09-27T21:32:38Z",
"state" : "STARTING",
"tags" : { }
}
}
```

Wenn der Stufen-Teilnehmer `E813MFklPWLF` der Stufe beitritt, wird das Video dieses Teilnehmers im vorgestellten Slot angezeigt und alle anderen Stufen-Publishern werden unterhalb des Slots gerendert:

![\[Starten der Zusammensetzung mithilfe des Features zur Bildschirmfreigabe.\]](http://docs.aws.amazon.com/de_de/ivs/latest/RealTimeUserGuide/images/ssc_StartComposition.png)


## Anhalten der Zusammensetzung
<a name="ssc-getting-started-screen-share-stop-mediapublish"></a>

Um eine Zusammensetzung an einem beliebigen Punkt anzuhalten, rufen Sie den Vorgang StopComposition auf:

```
aws ivs-realtime stop-composition --arn arn:aws:ivs:us-east-1:927810967299:composition/B19tQcXRgtoz
```

# Bekannte Probleme und Problemumgehungen
<a name="ssc-known-issues"></a>

In diesem Abschnitt werden bekannte Probleme aufgeführt, die in IVS bei der serverseitigen Zusammensetzung auftreten können, und es werden mögliche Problemumgehungen vorgeschlagen.
+ Bei einigen Kompositionen kann es nach Perioden der Stille zu einem kurzen Stottern des Audios kommen.

  **Problemumgehung:** Keine.