

# Montage côté serveur IVS \$1 Diffusion en temps réel
<a name="server-side-composition"></a>

Le montage côté serveur utilise un serveur IVS pour mixer le son et la vidéo de tous les participants à la scène, puis envoie cette vidéo mixée à un canal IVS (par exemple, pour atteindre un public plus large) ou à un compartiment S3. Le montage côté serveur est invoqué via les opérations du plan de contrôle IVS situées dans la région d’origine de la scène.

Diffuser ou enregistrer une scène à l’aide d’un montage côté serveur offre de nombreux avantages, ce qui en fait un choix intéressant pour les utilisateurs qui recherchent des flux de travail vidéos efficaces et fiables sur le cloud.

**Topics**
+ [Présentation du montage côté serveur IVS](ssc-overview.md)
+ [Démarrez avec le montage côté serveur IVS](ssc-getting-started.md)
+ [Classement personnalisé des participants](ssc-getting-started-custom-participant-ordering.md)
+ [Activation du partage d'écran dans le montage côté serveur IVS](ssc-getting-started-screen-share.md)
+ [Problèmes connus et solutions de contournement](ssc-known-issues.md)

# Présentation du montage côté serveur IVS
<a name="ssc-overview"></a>

Ce schéma illustre le fonctionnement du montage côté serveur :

![\[Diffusion d’une scène à l’aide d’un montage côté serveur.\]](http://docs.aws.amazon.com/fr_fr/ivs/latest/RealTimeUserGuide/images/ssc_Intro_Composite_Recording.png)


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

Par rapport au montage côté client, le montage côté serveur présente les avantages suivants :
+ **Réduction de la charge client** : grâce au montage côté serveur, la charge du traitement et de la combinaison des sources audio et vidéo est transférée des appareils clients individuels au serveur lui-même. Le montage côté serveur évite aux appareils clients d’utiliser leur processeur et leurs ressources réseau pour composer la vue et la transmettre à IVS. Cela signifie que les spectateurs peuvent regarder l’émission sans que leurs appareils aient à gérer des tâches gourmandes en ressources. Cela peut améliorer l’autonomie de la batterie ainsi que les expériences de visionnage.
+ **Qualité constante** : le montage côté serveur offre un contrôle précis de la qualité, de la résolution et du débit du flux final. Cela garantit une expérience visuelle cohérente pour tous les spectateurs, quelles que soient les capacités de leurs appareils individuels.
+ **Résilience** : en centralisant le processus de montage sur le serveur, la diffusion devient plus robuste. Même si l’appareil d’un diffuseur de publication rencontre des limitations techniques ou des fluctuations, le serveur peut s’adapter et fournir un flux plus fluide à tous les membres du public.
+ **Efficacité de la bande passante** : puisque le serveur gère le montage, les diffuseurs de publication de scènes n’ont pas à dépenser de bande passante supplémentaire pour diffuser la vidéo sur IVS.

Pour diffuser une scène sur une chaîne IVS, vous pouvez également effectuer le montage côté client ; consultez [Activation de plusieurs hôtes sur un flux IVS](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/multiple-hosts.html) dans le *Guide de l’utilisateur du streaming IVS à faible latence*.

## Cycle de vie des montages
<a name="ssc-composition-endpoint"></a>

Utilisez le schéma ci-dessous pour comprendre les transitions d’état d’un montage :

![\[Cycle de vie d’une ressource de montage côté serveur.\]](http://docs.aws.amazon.com/fr_fr/ivs/latest/RealTimeUserGuide/images/ssc_Composition_Lifecycle.png)


Au niveau général, le cycle de vie d’un montage est le suivant :

1. Une ressource de montage est créée lorsque l’utilisateur appelle l’opération StartComposition.

1. Une fois qu’IVS démarre correctement le montage, un événement EventBridge « Changement d’état du montage IVS (début de session) » est envoyé. Consultez [Utilisation d’Amazon EventBridge avec le streaming en temps réel IVS](eventbridge.md) pour plus de détails sur les événements.

1. Une fois qu’un montage est actif, les événements suivants peuvent se produire :
   + L’utilisateur arrête le montage : si l’opération StopComposition est appelée, IVS initie un arrêt progressif du montage en envoyant des événements de « fin de destination » suivis d’un événement de « fin de session ».
   + Le montage effectue un arrêt automatique : si la scène IVS est supprimée ou si aucun participant ne publie activement sur la scène IVS pendant 60 secondes, le montage est finalisé automatiquement et des événements EventBridge sont envoyés.
   + Défaillance de destination : si une destination échoue de manière inattendue (par exemple, le canal IVS est supprimé), la destination passe à l’état `RECONNECTING` et un événement de « reconnexion de destination » est envoyé. Si la restauration est impossible, IVS fait passer la destination à l’état `FAILED` et un événement « Échec de la destination » est envoyé. IVS maintient le montage en fonctionnement si au moins une de ses destinations est active.

1. Une fois que le montage est à l’état `STOPPED` ou `FAILED`, il est automatiquement effacé au bout de cinq minutes. (Le cas échéant, il ne peut plus être récupéré par ListCompositions ou GetComposition.)

## API IVS
<a name="ssc-api"></a>

Le montage côté serveur utilise les éléments clés de l’API suivants :
+ Un objet *EncoderConfiguration* vous permet de personnaliser le format de la vidéo à générer (hauteur, largeur, débit et autres paramètres de diffusion). Vous pouvez réutiliser un objet EncoderConfiguration chaque fois que vous appelez l’opération StartComposition.
+ Les opérations de *montage* suivent le montage vidéo et le transmettent sur un canal IVS.
+ *StorageConfiguration* suit le compartiment S3 dans lequel les montages sont enregistrés.

Pour utiliser le montage côté serveur, vous devez créer un objet EncoderConfiguration et l’attacher lorsque vous appelez l’opération StartComposition. Dans cet exemple, l’objet EncoderConfiguration SquareVideo est utilisé dans deux montages :

![\[Le montage côté serveur utilise deux éléments clés de l’API.\]](http://docs.aws.amazon.com/fr_fr/ivs/latest/RealTimeUserGuide/images/ssc_IVS_API_Composite_Recording.png)


Pour obtenir des informations complètes, consultez la [Référence de l’API de streaming en temps réel Amazon IVS](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/Welcome.html).

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

L’opération StartComposition propose deux options de disposition : grille et PiP (incrustation d’images).

### Disposition en grille
<a name="ssc-api-layouts-grid"></a>

La disposition en grille organise les participants à la scène dans une grille de cases de taille égale. Elle propose plusieurs propriétés personnalisables :
+ `videoAspectRatio` définit le mode d’affichage des participants pour contrôler le rapport hauteur/largeur des vignettes vidéo.
+ `videoFillMode` définit la manière dont le contenu vidéo s’ajuste dans la vignette du participant.
+ `gridGap` indique l’espacement entre les vignettes des participants en pixels.
+ `omitStoppedVideo` permet d’exclure les flux vidéo interrompus du montage.
+ `featuredParticipantAttribute` identifie la case en vedette. Lorsque ce paramètre est activé, le participant en vedette est affiché dans une case plus grande à l’écran principal, avec les autres participants en dessous.
+ `participantOrderAttribute` permet un classement personnalisé des participants en fonction des valeurs d’attribut contenues dans les jetons des participants. Lorsque cela est spécifié, les participants sont classés par ordre numérique en fonction de leurs valeurs d’attribut, les participants n’ayant aucune valeur pour cet attribut sont classés par ordre d’arrivée. Cela fournit un positionnement déterministe facultatif et permet des dispositions basées sur les rôles.

Pour plus de détails sur la disposition en grille (y compris les valeurs valides et les valeurs par défaut pour tous les champs), voir le type de données [GridConfiguration](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_GridConfiguration.html).

![\[Disposition en grille du montage côté serveur\]](http://docs.aws.amazon.com/fr_fr/ivs/latest/RealTimeUserGuide/images/ssc_Grid_Layout.png)


### Disposition PiP (incrustation d’images)
<a name="ssc-api-layouts-pip"></a>

La disposition PiP permet d’afficher un participant dans une fenêtre superposée avec une taille, une position et un comportement configurables. Les propriétés clés incluent :
+ `pipParticipantAttribute` indique le participant pour la fenêtre PiP.
+ `pipPosition` détermine la position d’angle de la fenêtre PiP.
+ `pipWidth` et `pipHeight` configurent la largeur et la hauteur de la fenêtre PiP.
+ `pipOffset` définit la position décalée de la fenêtre PiP en pixels par rapport aux bords les plus proches.
+ `pipBehavior` définit le comportement PiP lorsque tous les autres participants sont partis.

Comme pour la disposition en grille, la disposition PiP prend en charge `featuredParticipantAttribute`, `omitStoppedVideo`, `videoFillMode`, `gridGap` et `participantOrderAttribute` pour personnaliser davantage le montage. `participantOrderAttribute` permet un classement personnalisé des participants à la fois pour sélectionner le participant pour la fenêtre PiP et pour positionner les participants sur la grille en fonction des valeurs d’attribut contenues dans les jetons des participants.

Pour plus de détails sur la disposition PiP (y compris les valeurs valides et les valeurs par défaut pour tous les champs), voir le type de données [PipConfiguration](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_PipConfiguration.html).

![\[Disposition PiP (incrustation d’images) du montage côté serveur\]](http://docs.aws.amazon.com/fr_fr/ivs/latest/RealTimeUserGuide/images/ssc_PiP_Layout.png)


**Remarque** : la résolution maximale prise en charge par un diffuseur de publication de scènes pour les montages côté serveur est de 1080p. Si un diffuseur de publication envoie une vidéo d’une résolution supérieure à 1080p, il sera affiché en tant que participant audio uniquement.

**Important** : assurez-vous que votre application ne dépend pas des caractéristiques spécifiques de la disposition actuelle, telles que la taille et la position des vignettes. *Des améliorations visuelles peuvent être apportées aux dispositions à tout moment*. 

# Démarrez avec le montage côté serveur IVS
<a name="ssc-getting-started"></a>

Ce document explique les étapes nécessaires pour le démarrage avec le montage côté serveur IVS.

## Conditions préalables
<a name="ssc-getting-started-prerequisites"></a>

Pour utiliser le montage côté serveur, vous devez disposer d’une scène avec des diffuseurs de publication actifs et utiliser un canal IVS et/ou un compartiment S3 comme destination de montage.

Pour créer un compartiment S3, consultez la documentation S3 sur [comment créer des compartiments](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). Le compartiment S3 doit être créé dans la même région AWS que la scène IVS.

**Important** : si vous utilisez un compartiment S3 existant :
+ Le paramètre **Propriété de l’objet** doit être configuré sur **Application du propriétaire du compartiment** ou **Préférence pour le propriétaire du compartiment**.
+ Le paramètre **Chiffrement par défaut** doit être **Chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3)**.

Pour plus d’informations, consultez la documentation S3 sur le [contrôle de la propriété des objets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) et la [protection des données à l’aide du chiffrement](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html).

## Instructions d'API
<a name="ssc-getting-started-api-instructions"></a>

Nous décrivons ci-dessous un flux de travail possible qui utilise les événements EventBridge pour démarrer un montage qui diffuse la scène sur une chaîne IVS lorsqu’un participant diffuse. Vous pouvez également démarrer et arrêter des montages en fonction de la logique de votre propre application. Voir [Enregistrement composite](rt-composite-recording.md) pour un autre exemple illustrant l’utilisation d’un montage côté serveur pour enregistrer une scène directement dans un compartiment S3.

1. Créez un canal IVS. Consultez [Démarrer avec la diffusion à faible latence d’Amazon IVS](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/getting-started.html).

1. Créez une scène IVS et des jetons de participation pour chaque diffuseur de publication.

1. Créez un objet [EncoderConfiguration](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_EncoderConfiguration.html).

1. Joignez-vous à la scène et diffusez dessus. (Consultez les sections « Diffusion et abonnement » des guides du SDK de diffusion en temps réel : [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) et [iOS](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/ios-publish-subscribe.html).)

1. Lorsque vous recevez un événement EventBridge diffusé par un participant, appelez [StartComposition](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_StartComposition.html) avec la configuration de disposition souhaitée.

1. Patientez quelques secondes pour voir la vue composite apparaître lors de la lecture des chaînes.

![\[Flux de travail de montage côté serveur qui utilise les événements EventBridge pour démarrer un montage lorsqu’un participant publie.\]](http://docs.aws.amazon.com/fr_fr/ivs/latest/RealTimeUserGuide/images/ssc_Workflow.png)


**Remarque** : un montage s’arrête automatiquement après 60 secondes d’inactivité de la part du diffuseur de publication participant à la scène. À ce stade, le montage prend fin et passe à un état `STOPPED`. Un montage est automatiquement supprimé après quelques minutes passées dans l’état `STOPPED`.

## Instructions de la CLI
<a name="ssc-getting-started-cli"></a>

L’utilisation de l’AWS CLI est une option avancée qui nécessite le téléchargement et la configuration de la CLI sur votre machine. Pour plus de détails, consultez le [‬Guide de l’utilisateur de l’Interface de ligne de commande AWS‭](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

Vous pouvez désormais utiliser l’interface de ligne de commande pour créer et gérer des ressources. Les opérations du montage se trouvent sous l’espace de noms `ivs-realtime`.

### Création de la ressource EncoderConfiguration
<a name="ssc-getting-started-cli-create-encoderconfiguration"></a>

Une ressource EncoderConfiguration vous permet de personnaliser le format de la vidéo à générer (hauteur, largeur, débit et autres paramètres de diffusion). Vous pouvez réutiliser une ressource EncoderConfiguration chaque fois que vous appelez l’opération Composition, comme expliqué à l’étape suivante.

La commande ci-dessous crée une ressource EncoderConfiguration qui configure les paramètres de montage vidéo côté serveur, tels que le débit vidéo, la fréquence d’images et la résolution :

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

La réponse est :

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

### Commencer un montage
<a name="ssc-getting-started-cli-start-mediapublish"></a>

À l’aide de l’ARN EncoderConfiguration fourni dans la réponse ci-dessus, créez votre ressource de montage :

**Exemple de disposition en grille**

```
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}}'
```

**Exemple de disposition PiP**

```
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"}}'
```

**Remarque** : vous pouvez utiliser [cet outil](https://composition.ivsdemos.com/) pour générer plus facilement la configuration `--layout` en fonction de vos choix de disposition.

La réponse indiquera que le montage est créé avec un état `STARTING`. Une fois que le Montage commence à diffuser la composition, l’état passe à `ACTIVE`. (Vous pouvez consulter l’état en appelant l’opération ListCompositions ou GetComposition.)

Une fois qu’un montage est `ACTIVE`, la vue composite de la scène IVS est visible sur le canal IVS, à l’aide de ListCompositions :

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

La réponse est :

```
{
"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": {}
    }
  ]
}
```

**Remarque** : pour que le montage reste actif, les diffuseurs de publication participants doivent diffuser activement sur la scène. Pour plus d’informations, consultez les sections « Diffusion et abonnement » des guides du SDK de diffusion en temps réel : [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) et [iOS](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/ios-publish-subscribe.html). Vous devez créer un jeton de scène distinct pour chaque participant.

# Classement personnalisé des participants
<a name="ssc-getting-started-custom-participant-ordering"></a>

Le classement personnalisé des participants vous permet de contrôler le positionnement des participants dans les dispositions en grille et les dispositions PiP en fonction des valeurs d’attributs personnalisées contenues dans les jetons des participants, notamment le positionnement des participants sélectionnés et la sélection des participants pour la fenêtre PiP. Cela fournit un positionnement déterministe des participants et permet des dispositions basées sur les rôles.

## Fonctionnement du classement personnalisé
<a name="ssc-getting-started-custom-participant-ordering-how-custom-ordering-works"></a>

Lorsque `participantOrderAttribute` est spécifié dans la configuration de votre disposition, les participants sont classés selon les règles suivantes :
+ Les participants dont les jetons contiennent l’attribut de classement spécifié sont placés en premier, triés de façon numérique en fonction des valeurs de leurs attributs.
+ Les participants qui n’ont pas l’attribut de classement sont classés selon l’heure d’arrivée et sont placés après les participants classés de façon numérique.
+ Lorsque plusieurs participants ont des valeurs de classement identiques, ils sont sous-triés en fonction de leur heure d’arrivée dans l’étape.
+ Le classement utilise un tri numérique (et non lexicographique), de sorte que « 10 » vient après « 9 » (pas après « 1 »).
+ Les valeurs négatives sont prises en charge. Elles sont positionnés avant les valeurs positives.
+ Les valeurs non numériques (par exemple, « abc », « 1,5 ») sont considérées comme non valides et les participants ayant une telle valeur sont classés selon l’heure d’arrivée.

**Important :** le classement des participants (qu’il soit basé sur l’heure d’arrivée ou sur la personnalisation) prend effet après le début de la composition. Le bon classement des participants n’est pas garanti pour les participants qui rejoignent l’étape avant le début de la composition.

## Création de jetons à l’aide d’attributs de classement
<a name="ssc-getting-started-custom-participant-ordering-creating-tokens-with-ordering-attributes"></a>

Pour utiliser le classement personnalisé des participants, incluez l’attribut de classement dans vos jetons de participant lors de leur création :

```
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
```

Vous pouvez combiner l’attribut de classement personnalisé des participants avec les attributs permettant de sélectionner les participants pour l’emplcement proposé et la fenêtre PiP :

```
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
```

## Exemples de cas d'utilisation
<a name="ssc-getting-started-custom-participant-ordering-example-use-cases"></a>

Les exemples de cas d’utilisation incluent :
+ Positionnement cohérent : les participants conservent leur position lorsqu’ils se reconnectent avec le même jeton.
+ Positionnement basé sur les rôles : par exemple, vous pouvez spécifier les enseignants avec classement=1 et les étudiants avec classement=2.
+ Dispositions basées sur les priorités : les participants VIP dont les valeurs de classement sont inférieures apparaissent en premier.
+ Dispositions dynamiques : vous pouvez combiner un classement personnalisé avec `featuredParticipantAttribute` et `pipParticipantAttribute` pour les scénarios complexes.
+ Interactions entre les étapes : lorsque vous utilisez la réplication des participants pour des scénarios tels que les compétitions en mode VS dans lesquelles des streamers de différentes étapes interagissent, vous pouvez remplacer les attributs de classement pour contrôler le positionnement dans la composition de l’étape de destination.

**Remarque :** pour les cas d’utilisation de réplication des participants, vous pouvez remplacer les attributs des participants (notamment l’attribut de classement) selon vos besoins lors du démarrage d’une réplication afin d’obtenir la disposition souhaitée dans l’étape de destination.

## Rétrocompatibilité
<a name="ssc-getting-started-custom-participant-ordering-backward-compatibility"></a>

Le classement personnalisé des participants est une fonctionnalité optionnelle et est entièrement rétrocompatible. Les compositions existantes sans `participantOrderAttribute` continuent à fonctionner de la même manière, en utilisant le classement selon l’heure d’arrivée. Lorsque `participantOrderAttribute` est défini sur une chaîne vide, le système ignore complètement le classement personnalisé et revient au comportement par défaut.

# Activation du partage d'écran dans le montage côté serveur IVS
<a name="ssc-getting-started-screen-share"></a>

Pour utiliser une disposition de partage d’écran fixe, suivez les étapes indiquées ci-dessous.

## Création de la ressource EncoderConfiguration
<a name="ssc-getting-started-screen-share-create-encoderconfiguration"></a>

La commande ci-dessous crée une ressource EncoderConfiguration qui configure les paramètres de montage côté serveur (débit vidéo, fréquence d’images et résolution).

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

Créez un jeton de participant à la scène avec un attribut `screen-share`. Comme nous allons spécifier `screen-share` en tant que nom de l’emplacement `featured`, nous devons créer un jeton de scène dont l’attribut `screen-share` est défini sur `true` :

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

La réponse est :

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

## Commencer le montage
<a name="ssc-getting-started-screen-share-start-mediapublish"></a>

Pour démarrer le montage à l’aide de la fonctionnalité de partage d’écran, nous utilisons cette commande :

```
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"}}'
```

La réponse est :

```
{
"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" : { }
}
}
```

Lorsque le participant `E813MFklPWLF` rejoint la scène, la vidéo de ce participant sera affichée dans l’emplacement en vedette, et tous les autres diffuseurs de publication d’scène seront affichés en dessous de l’emplacement :

![\[Démarrer le montage à l’aide de la fonctionnalité de partage d’écran.\]](http://docs.aws.amazon.com/fr_fr/ivs/latest/RealTimeUserGuide/images/ssc_StartComposition.png)


## Arrêter le montage
<a name="ssc-getting-started-screen-share-stop-mediapublish"></a>

Pour arrêter un montage à tout moment, appelez l’opération StopComposition :

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

# Problèmes connus et solutions de contournement
<a name="ssc-known-issues"></a>

Cette section énumère les problèmes connus que vous pourriez rencontrer lors de l’utilisation du montage côté serveur IVS et propose des solutions de contournement potentielles.
+ Certains montages peuvent présenter de courtes interruptions audio après des périodes de silence.

  **Solution de contournement :** aucune