

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