

# Composizione lato server in IVS I Streaming in tempo reale
<a name="server-side-composition"></a>

La composizione lato server utilizza un server IVS per mixare audio e video di tutti i partecipanti alla fase e quindi invia questo video misto a un canale IVS (ad esempio, per raggiungere un pubblico più ampio) o a un bucket S3. La composizione lato server viene richiamata tramite operazioni del piano di controllo (control-plane) IVS nella regione di origine della fase.

La trasmissione o la registrazione di una fase tramite la composizione lato server offrono numerosi vantaggi, rendendole scelte interessanti per gli utenti che cercano uno streaming live efficiente e affidabile.

**Topics**
+ [Panoramica della composizione lato server di IVS](ssc-overview.md)
+ [Nozioni di base sulla composizione lato server di IVS](ssc-getting-started.md)
+ [Ordinamento personalizzato dei partecipanti](ssc-getting-started-custom-participant-ordering.md)
+ [Abilitazione della condivisione dello schermo nella composizione lato server di IVS](ssc-getting-started-screen-share.md)
+ [Problemi noti e soluzioni alternative](ssc-known-issues.md)

# Panoramica della composizione lato server di IVS
<a name="ssc-overview"></a>

Questo diagramma illustra come funziona la composizione lato server:

![\[Trasmissione di una fase utilizzando la composizione lato server.\]](http://docs.aws.amazon.com/it_it/ivs/latest/RealTimeUserGuide/images/ssc_Intro_Composite_Recording.png)


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

Rispetto alla composizione lato client, la composizione lato server presenta i seguenti vantaggi:
+ **Carico client ridotto**: con la composizione lato server, l'onere dell'elaborazione e della combinazione di sorgenti audio e video viene spostato dai singoli dispositivi client al server stesso. La composizione lato server elimina la necessità per i dispositivi client di utilizzare la CPU e le risorse di rete per comporre la vista e trasmetterla a IVS. Ciò significa che gli spettatori possono guardare la trasmissione senza che i loro dispositivi debbano gestire attività che richiedono molte risorse, con una potenziale maggiore durata della batteria ed esperienze di visualizzazione più fluide.
+ **Qualità costante**: la composizione lato server consente un controllo preciso sulla qualità, la risoluzione e il bitrate dello streaming finale. Ciò garantisce un'esperienza di visualizzazione coerente per tutti gli spettatori, indipendentemente dalle funzionalità dei singoli dispositivi.
+ **Resilienza**: centralizzando il processo di composizione sul server, la trasmissione diventa più solida. Anche se un publisher è soggetto a limitazioni o fluttuazioni tecniche, il server può adattarsi e fornire uno streaming più fluido a tutto il pubblico.
+ **Efficienza della larghezza di banda**: poiché il server gestisce la composizione, i publisher della fase non devono consumare larghezza di banda aggiuntiva per trasmettere il video a IVS.

In alternativa, per trasmettere una fase su un canale IVS, puoi eseguire la composizione lato client; consulta [Abilitazione di host multipli su un flusso Amazon IVS](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/multiple-hosts.html) nella *Guida per l'utente dello streaming a bassa latenza di IVS*.

## Ciclo di vita della composizione
<a name="ssc-composition-endpoint"></a>

Usa il diagramma seguente per comprendere le transizioni di stato di una composizione:

![\[Ciclo di vita di una risorsa di composizione lato server.\]](http://docs.aws.amazon.com/it_it/ivs/latest/RealTimeUserGuide/images/ssc_Composition_Lifecycle.png)


In generale, il ciclo di vita di una composizione è il seguente:

1. Quando l'utente chiama l'operazione StartComposition, viene creata una risorsa della composizione.

1. Una volta che IVS avvia correttamente la composizione, viene inviato un evento EventBridge "Modifica allo stato della composizione IVS (Inizio sessione)". Consulta [Utilizzo di EventBridge con lo streaming in tempo reale IVS](eventbridge.md) per i dettagli sugli eventi.

1. Una volta che una composizione è in uno stato attivo, può verificarsi quanto segue:
   + L'utente interrompe la composizione: se viene chiamata l'operazione StopComposition, IVS avvia un arresto graduale della composizione, inviando eventi di "Fine destinazione" seguiti da un evento di "Fine sessione".
   + La composizione si spegne automaticamente: se la fase IVS è eliminata o nessun partecipante pubblica attivamente nella fase IVS per 60 secondi, la composizione viene finalizzata automaticamente e vengono inviati gli eventi EventBridge.
   + Errore di destinazione: se una destinazione riporta inaspettatamente un errore (ad esempio, il canale IVS viene eliminato), la destinazione passa allo stato `RECONNECTING` e viene inviato un evento "Riconnessione della destinazione". Se il ripristino è impossibile, IVS trasferisce la destinazione allo stato `FAILED` e viene inviato un evento "Errore destinazione". IVS mantiene viva la composizione se almeno una delle sue destinazioni è attiva.

1. Una volta che la composizione è nello stato `STOPPED` o `FAILED`, viene ripulita automaticamente dopo cinque minuti. (Quindi non viene più recuperata da ListCompositions o GetComposition.)

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

La composizione lato server utilizza questi elementi chiave dell'API:
+ Un oggetto *EncoderConfiguration* consente di personalizzare il formato del video da generare (altezza, larghezza, bitrate e altri parametri di streaming). Puoi riutilizzare un EncoderConfiguration ogni volta che chiami l'operazione StartComposition.
+ Le operazioni di *composizione* tengono traccia della composizione video e la trasmettono su un canale IVS.
+ *StorageConfiguration* tiene traccia del bucket S3 in cui vengono registrate le composizioni.

Per utilizzare la composizione lato server, è necessario creare un EncoderConfiguration e collegarlo quando si chiama l'operazione StartComposition. In questo esempio, SquareVideo EncoderConfiguration viene utilizzato in due composizioni:

![\[La composizione lato server utilizza due elementi chiave dell'API.\]](http://docs.aws.amazon.com/it_it/ivs/latest/RealTimeUserGuide/images/ssc_IVS_API_Composite_Recording.png)


Per informazioni complete, consulta la [ Documentazione di riferimento delle API di streaming in tempo reale IVS](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/Welcome.html).

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

L'operazione StartComposition offre due opzioni di layout: a griglia e pip (Picture-in-Picture).

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

Il layout a griglia organizza i partecipanti alla fase in una griglia di slot di dimensioni uguali. Fornisce diverse proprietà personalizzabili:
+ `videoAspectRatio` imposta la modalità di visualizzazione dei partecipanti per controllare le proporzioni dei riquadri video.
+ `videoFillMode` definisce la modalità di riempimento dei contenuti video nel riquadro del partecipante.
+ `gridGap` specifica la spaziatura tra i riquadri dei partecipanti in pixel.
+ `omitStoppedVideo` consente di escludere dalla composizione i flussi video interrotti.
+ `featuredParticipantAttribute` identifica lo slot in primo piano. Quando questa opzione è impostata, il partecipante in evidenza viene visualizzato in uno slot più grande nella schermata principale, mentre gli altri partecipanti sono mostrati al di sotto di esso.
+ `participantOrderAttribute` consente l'ordinamento personalizzato dei partecipanti in base ai valori degli attributi nei token dei partecipanti. Quando specificato, i partecipanti vengono ordinati numericamente in base ai valori degli attributi, con i partecipanti privi dell'attributo che riprendono l'ordine in base all'orario di arrivo. Ciò fornisce un posizionamento deterministico facoltativo e consente layout basati sui ruoli.

Per i dettagli sul layout a griglia (inclusi i valori validi e le impostazioni predefinite per tutti i campi), consulta il tipo di dati [GridConfiguration](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_GridConfiguration.html).

![\[Layout a griglia della composizione lato server\]](http://docs.aws.amazon.com/it_it/ivs/latest/RealTimeUserGuide/images/ssc_Grid_Layout.png)


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

Il layout PiP consente di visualizzare un partecipante in una finestra in sovrapposizione con dimensioni, posizione e comportamento configurabili. Le proprietà chiave includono:
+ `pipParticipantAttribute` specifica il partecipante per la finestra PiP.
+ `pipPosition` determina la posizione angolare della finestra PiP.
+ `pipWidth` e `pipHeight` configurano larghezza e altezza dello slot PiP.
+ `pipOffset` imposta la posizione di offset della finestra PiP in pixel rispetto ai bordi più vicini.
+ `pipBehavior` definisce il comportamento PiP quando tutti gli altri partecipanti hanno abbandonato.

Come il layout a griglia, il PiP supporta `featuredParticipantAttribute`, `omitStoppedVideo`, `videoFillMode`, `gridGap` e `participantOrderAttribute` per personalizzare ulteriormente la composizione. `participantOrderAttribute` consente l'ordinamento personalizzato dei partecipanti sia per la selezione del partecipante per la finestra PiP sia per il posizionamento dei partecipanti alla griglia in base ai valori degli attributi nei token dei partecipanti.

Per i dettagli sul layout PiP (inclusi i valori validi e le impostazioni predefinite per tutti i campi), consulta il tipo di dati [PipConfiguration](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_PipConfiguration.html).

![\[Composizione lato server del layout Picture-in-Picture (PiP)\]](http://docs.aws.amazon.com/it_it/ivs/latest/RealTimeUserGuide/images/ssc_PiP_Layout.png)


**Nota**: la risoluzione massima supportata da un publisher della fase per la composizione lato server è 1080p. Se un publisher invia un video con risoluzione superiore a 1080p, verrà visualizzato come partecipante solo audio.

**Importante**: assicurati che l'applicazione non dipenda dalle funzionalità specifiche del layout corrente, come le dimensioni e la posizione dei riquadri. *È possibile apportare migliorie visive ai layout in qualsiasi momento*. 

# Nozioni di base sulla composizione lato server di IVS
<a name="ssc-getting-started"></a>

Questo documento illustra i passaggi necessari per iniziare a utilizzare la composizione lato server di IVS.

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

Per utilizzare la composizione lato server, è necessario disporre di una fase con publisher attivi e utilizzare un canale IVS e/o un bucket S3 come destinazione della composizione.

Per creare un bucket S3, consulta la documentazione di S3 su [come creare un bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/creating-bucket.html). Il bucket S3 deve essere creato nella stessa regione AWS dello stage IVS.

**Importante**: se utilizzi un bucket S3 esistente:
+ L'impostazione **Proprietà dell'oggetto** deve essere **Proprietario del bucket applicato** o **Proprietario del bucket preferito**.
+ In **Crittografia predefinita**, scegli **Crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3)**.

Per i dettagli, consulta la documentazione di S3 sul [controllo della proprietà degli oggetti](https://docs.aws.amazon.com/AmazonS3/latest/userguide/about-object-ownership.html) e [protezione dei dati con la crittografia](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingEncryption.html).

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

Di seguito, descriviamo un possibile flusso di lavoro che utilizza gli eventi EventBridge per avviare una composizione che trasmetta la fase su un canale IVS quando un partecipante pubblica. In alternativa, puoi avviare e interrompere le composizioni in base alla logica della tua applicazione. Consulta [Registrazione composita](rt-composite-recording.md) per un altro esempio che mostra l'uso della composizione lato server per registrare una fase direttamente in un bucket S3.

1. Crea un canale IVS. Consulta [Guida introduttiva allo streaming a bassa latenza di Amazon IVS](https://docs.aws.amazon.com//ivs/latest/LowLatencyUserGuide/getting-started.html).

1. Crea una fase IVS e dei token per i partecipanti per ogni publisher.

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

1. Unisciti alla fase e pubblica su di essa. (Consulta le sezioni "Pubblicazione e sottoscrizione" delle guide per l'SDK di trasmissione in streaming in tempo reale: [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) e [iOS](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/ios-publish-subscribe.html)).

1. Quando ricevi un evento EventBridge Partecipante pubblicato, chiama [StartComposition](https://docs.aws.amazon.com//ivs/latest/RealTimeAPIReference/API_StartComposition.html) con la configurazione di layout desiderata.

1. Attendi qualche secondo e guarda la vista composita nella riproduzione del canale.

![\[Flusso di lavoro di composizione lato server che utilizza gli eventi EventBridge per avviare una composizione quando un partecipante pubblica.\]](http://docs.aws.amazon.com/it_it/ivs/latest/RealTimeUserGuide/images/ssc_Workflow.png)


**Nota**: una composizione si spegne automaticamente dopo 60 secondi di inattività dei publisher che partecipano alla fase. A quel punto, la composizione è terminata e passa a uno stato `STOPPED`. Una composizione viene eliminata automaticamente dopo alcuni minuti nello stato `STOPPED`.

## Istruzioni per la CLI
<a name="ssc-getting-started-cli"></a>

L'uso di AWS CLI è un'opzione avanzata e richiede prima il download e la configurazione della CLI sul computer. Per maggiori dettagli, consultare la [Guida per l'utente dell'interfaccia a riga di comando di AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html).

Ora puoi usare la CLI per creare e gestire le risorse. Le operazioni della composizione si trovano nel namespace `ivs-realtime`.

### Creazione della risorsa EncoderConfiguration
<a name="ssc-getting-started-cli-create-encoderconfiguration"></a>

Un oggetto EncoderConfiguration consente di personalizzare il formato del video da generare (altezza, larghezza, bitrate e altri parametri di streaming). Puoi riutilizzare un EncoderConfiguration ogni volta che chiami l'operazione di composizione, come spiegato nel passaggio successivo.

Il comando seguente crea una risorsa EncoderConfiguration che configura i parametri di composizione video lato server (bitrate video, framerate e risoluzione):

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

La risposta è:

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

### Inizio di una composizione
<a name="ssc-getting-started-cli-start-mediapublish"></a>

Utilizzando l'ARN di EncoderConfiguration fornito nella risposta precedente, crea la tua risorsa di composizione:

**Esempio di layout a griglia**

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

**Esempio di layout 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"}}'
```

**Nota**: è possibile utilizzare [questo strumento](https://composition.ivsdemos.com/) per generare più facilmente la configurazione `--layout` in base alle scelte di layout.

La risposta mostrerà che la composizione è stata creata con uno stato `STARTING`. Una volta che Composition inizia a pubblicare la composizione, lo stato passa a `ACTIVE`. (Puoi vedere lo stato chiamando l'operazione ListCompositions o GetComposition.)

Una volta che la composizione è `ACTIVE`, la vista composita della fase IVS sarà visibile sul canale IVS, tramite ListCompositions:

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

La risposta è:

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

**Nota**: per mantenere viva la composizione, è necessario che i publisher partecipanti pubblichino attivamente nella fase. Per ulteriori informazioni, consulta le sezioni "Pubblicazione e sottoscrizione" delle guide per l'SDK di trasmissione in streaming in tempo reale: [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) e [iOS](https://docs.aws.amazon.com//ivs/latest/RealTimeUserGuide/ios-publish-subscribe.html). È necessario creare un token di fase distinto per ogni partecipante.

# Ordinamento personalizzato dei partecipanti
<a name="ssc-getting-started-custom-participant-ordering"></a>

L'ordinamento personalizzato dei partecipanti consente di controllare il posizionamento dei partecipanti nei layout a griglia e PiP in base ai valori degli attributi personalizzati nei token dei partecipanti, incluso il posizionamento dei partecipanti in primo piano e la selezione dei partecipanti per la finestra PiP. Ciò fornisce un posizionamento deterministico dei partecipanti e consente layout basati sui ruoli.

## Come funziona l'ordinamento personalizzato
<a name="ssc-getting-started-custom-participant-ordering-how-custom-ordering-works"></a>

Quando `participantOrderAttribute` è specificato nella configurazione del layout, i partecipanti vengono ordinati in base alle seguenti regole:
+ I partecipanti con l'attributo di ordinamento specificato nei relativi token vengono posizionati per primi, ordinati numericamente in base ai valori degli attributi.
+ I partecipanti senza l'attributo di ordinamento tornano all'ordine in base all'ora di arrivo e vengono posizionati dopo i partecipanti ordinati.
+ Quando più partecipanti hanno valori di ordinamento identici, vengono suddivisi in base all'ora di arrivo nella fase.
+ L'ordinamento utilizza l'ordinamento numerico (non lessicografico), quindi "10" viene dopo "9" (non dopo "1").
+ Sono supportati valori negativi. Sono posizionati prima dei valori positivi.
+ I valori non numerici (ad esempio, "abc", "1,5") vengono considerati non validi e tali partecipanti ricorrono all'ordine in base all'ora di arrivo.

**Importante:** l'ordine dei partecipanti (basato sull'orario di arrivo o personalizzato) ha effetto dopo l'inizio della composizione. Il corretto ordine dei partecipanti non è garantito per i partecipanti che si uniscono alla fase prima dell'inizio della composizione.

## Creazione di token con attributi di ordinamento
<a name="ssc-getting-started-custom-participant-ordering-creating-tokens-with-ordering-attributes"></a>

Per utilizzare l'ordinamento personalizzato dei partecipanti, includi l'attributo di ordinamento nei token dei partecipanti al momento della loro creazione:

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

Puoi combinare l'attributo custom-participant-order con gli attributi per la selezione dei partecipanti per lo slot in primo piano e la finestra 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
```

## Casi d'uso di esempio
<a name="ssc-getting-started-custom-participant-ordering-example-use-cases"></a>

Ecco alcuni esempi di casi d'uso:
+ Posizionamento coerente: i partecipanti mantengono la propria posizione quando si ricollegano con lo stesso token.
+ Posizionamento basato sui ruoli: ad esempio, puoi specificare gli insegnanti con order=1 e gli studenti con order=2.
+ Layout basati sulle priorità: i partecipanti VIP con valori di ordine inferiori verranno visualizzati per primi.
+ Layout dinamici: puoi combinare l'ordinamento personalizzato con `featuredParticipantAttribute` e `pipParticipantAttribute` per scenari complessi.
+ Interazioni tra fasi: quando si utilizza la replica dei partecipanti per scenari come le competizioni in modalità VS in cui interagiscono streamer di diverse fasi, è possibile ignorare gli attributi di ordinamento per controllare il posizionamento nella composizione della fase di destinazione.

**Nota:** per i casi d'uso relativi alla replica dei partecipanti, è possibile sovrascrivere gli attributi dei partecipanti (incluso l'attributo order) in base alle esigenze quando si avvia una replica per ottenere il layout desiderato nella fase di destinazione.

## Compatibilità con le versioni precedenti
<a name="ssc-getting-started-custom-participant-ordering-backward-compatibility"></a>

L'ordinamento personalizzato dei partecipanti è una funzionalità facoltativa ed è completamente compatibile con le versioni precedenti. Le composizioni esistenti senza `participantOrderAttribute` continuano a funzionare invariate, utilizzando l'ordinamento in base all'orario di arrivo. Quando `participantOrderAttribute` è impostato su una stringa vuota, il sistema ignora completamente l'ordinamento personalizzato e torna al comportamento predefinito.

# Abilitazione della condivisione dello schermo nella composizione lato server di IVS
<a name="ssc-getting-started-screen-share"></a>

Per utilizzare un layout di condivisione dello schermo fisso, completa la procedura riportata di seguito.

## Creazione della risorsa EncoderConfiguration
<a name="ssc-getting-started-screen-share-create-encoderconfiguration"></a>

Il comando seguente crea una risorsa EncoderConfiguration che configura i parametri di composizione lato server (bitrate video, framerate e risoluzione).

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

Crea un token per i partecipanti alla fase con un attributo `screen-share`. Poiché specificheremo `screen-share` come nome dello slot `featured`, dobbiamo creare un token di fase con l'attributo `screen-share` impostato su `true`:

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

La risposta è:

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

## Inizio della composizione
<a name="ssc-getting-started-screen-share-start-mediapublish"></a>

Per iniziare la composizione utilizzando la funzione di condivisione dello schermo, utilizziamo questo comando:

```
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 risposta è:

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

Quando il partecipante alla fase `E813MFklPWLF` si unisce alla fase, il video di quel partecipante verrà visualizzato nello slot in evidenza e tutti gli altri publisher della fase saranno visualizzati sotto lo slot:

![\[Inizio della composizione utilizzando la funzione di condivisione dello schermo.\]](http://docs.aws.amazon.com/it_it/ivs/latest/RealTimeUserGuide/images/ssc_StartComposition.png)


## Arresto della composizione
<a name="ssc-getting-started-screen-share-stop-mediapublish"></a>

Per arrestare una composizione in qualsiasi momento, chiama l'operazione StopComposition:

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

# Problemi noti e soluzioni alternative
<a name="ssc-known-issues"></a>

Questa sezione elenca i problemi noti che potresti riscontrare durante l'utilizzo della composizione lato server IVS e suggerisce possibili soluzioni alternative.
+ Alcune composizioni possono presentare brevi interruzioni dell'audio dopo periodi di silenzio.

  **Soluzione alternativa:** nessuna.