

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Riproduzione video con MPEG-DASH
<a name="dash-playback"></a>

[Per visualizzare uno streaming video Kinesis utilizzando MPEG-DASH, devi prima creare una sessione di streaming utilizzando Get sessionUrl. DASHStreaming](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetDASHStreamingSessionURL.html) Questa operazione restituisce un URL (contenente un token di sessione) per l'accesso alla sessione MPEG-DASH. Puoi quindi usare l'URL in un lettore multimediale o in un'applicazione autonoma per visualizzare il flusso. 

Uno streaming video di Amazon Kinesis presenta i seguenti requisiti per la fornitura di video tramite MPEG-DASH:
+ Per i requisiti di riproduzione dei brani video in streaming, consulta. [Richiedi i requisiti di SessionURL DASHStreaming](video-playback-requirements.md#requirements-getdash)
+ La conservazione dei dati deve essere superiore a 0.
+ La traccia video di ogni frammento deve contenere i dati codec privati in Advanced Video Coding (AVC) per il formato H.264 e HEVC per il formato H.265. Per ulteriori informazioni, vedere la specifica [MPEG-4](https://www.iso.org/standard/55980.html) 14496-15. ISO/IEC Per informazioni sull'adattamento dei dati di flusso a un dato formato, vedi i [contrassegni di adattamento NAL](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html).
+ [La traccia audio (se presente) di ogni frammento deve contenere dati privati del codec in formato AAC ([specifica ISO/IEC AAC 13818-7) o in formato MS Wave](https://www.iso.org/standard/43345.html).](https://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html)

## Esempio: utilizzo di MPEG-DASH in HTML e JavaScript
<a name="dash-examp1e"></a>

L'esempio seguente mostra come recuperare una sessione di streaming MPEG-DASH per un flusso video Kinesis e riprodurla in una pagina Web. L'esempio mostra come riprodurre video con i lettori seguenti:
+ [Google Shaka Player](https://github.com/google/shaka-player)
+ [dash.js](https://github.com/Dash-Industry-Forum/dash.js/wiki)

**Topics**
+ [Configurare il client Kinesis Video Streams per la riproduzione in formato MPEG-DASH](#dash-example-setup)
+ [Recupera l'endpoint dei contenuti archiviati di Kinesis Video Streams per la riproduzione in formato MPEG-DASH](#dash-example-endpoint)
+ [Recupera l'URL della sessione di streaming MPEG-DASH](#dash-example-session)
+ [Visualizzate il video in streaming con riproduzione MPEG-DASH](#dash-example-display)
+ [Esempio completato](#dash-example-complete)

### Configurare il client Kinesis Video Streams per la riproduzione in formato MPEG-DASH
<a name="dash-example-setup"></a>

Per accedere ai video in streaming con MPEG-DASH, devi prima creare e configurare il client Kinesis Video Streams (per recuperare l'endpoint del servizio) e il client multimediale archiviato (per recuperare la sessione di streaming MPEG-DASH). L'applicazione recupera i valori necessari dalle caselle di input nella pagina HTML.

```
var streamName = $('#streamName').val();

// Step 1: Configure SDK Clients
var options = {
    accessKeyId: $('#accessKeyId').val(),
    secretAccessKey: $('#secretAccessKey').val(),
    sessionToken: $('#sessionToken').val() || undefined,
    region: $('#region').val(),
    endpoint: $('#endpoint').val() || undefined
    }
var kinesisVideo = new AWS.KinesisVideo(options);
var kinesisVideoArchivedContent = new AWS.KinesisVideoArchivedMedia(options);
```

### Recupera l'endpoint dei contenuti archiviati di Kinesis Video Streams per la riproduzione in formato MPEG-DASH
<a name="dash-example-endpoint"></a>

Dopo l'avvio dei client, recupera l'endpoint dei contenuti archiviati di Kinesis Video Streams in modo da poter recuperare l'URL della sessione di streaming MPEG-DASH come segue:

```
 // Step 2: Get a data endpoint for the stream
console.log('Fetching data endpoint');
kinesisVideo.getDataEndpoint({
    StreamName: streamName,
    APIName: "GET_DASH_STREAMING_SESSION_URL" 
}, function(err, response) {
    if (err) { return console.error(err); }
    console.log('Data endpoint: ' + response.DataEndpoint);
    kinesisVideoArchivedContent.endpoint = new AWS.Endpoint(response.DataEndpoint);
```

### Recupera l'URL della sessione di streaming MPEG-DASH
<a name="dash-example-session"></a>

Quando disponete dell'endpoint per i contenuti archiviati, chiamate l'API [Get DASHStreaming SessionURL per recuperare l'URL della sessione](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetDASHStreamingSessionURL.html) di streaming MPEG-DASH nel modo seguente:

```
// Step 3: Get a Streaming Session URL
var consoleInfo = 'Fetching ' + protocol + ' Streaming Session URL';
console.log(consoleInfo);

if (protocol === 'DASH') {
    kinesisVideoArchivedContent.getDASHStreamingSessionURL({
        StreamName: streamName,
        PlaybackMode: $('#playbackMode').val(),
        DASHFragmentSelector: {
            FragmentSelectorType: $('#fragmentSelectorType').val(),
            TimestampRange: $('#playbackMode').val() === "LIVE" ? undefined : {
                StartTimestamp: new Date($('#startTimestamp').val()),
                EndTimestamp: new Date($('#endTimestamp').val())
            }
        },
        DisplayFragmentTimestamp: $('#displayFragmentTimestamp').val(),
        DisplayFragmentNumber: $('#displayFragmentNumber').val(),
        MaxManifestFragmentResults: parseInt($('#maxResults').val()),
        Expires: parseInt($('#expires').val())
    }, function(err, response) {
        if (err) { return console.error(err); }
        console.log('DASH Streaming Session URL: ' + response.DASHStreamingSessionURL);
```

### Visualizzate il video in streaming con riproduzione MPEG-DASH
<a name="dash-example-display"></a>

Una volta ottenuto l'URL della sessione di streaming MPEG-DASH, forniscilo al lettore video. Il metodo per fornire l'URL al lettore video dipende dal lettore usato.

L'esempio di codice seguente illustra come fornire l'URL della sessione di streaming a un lettore [Google Shaka Player](https://github.com/google/shaka-player): 

```
// Step 4: Give the URL to the video player.

//Shaka Player elements 
<video id="shaka" class="player" controls autoplay></video>
<script src="https://cdnjs.cloudflare.com/ajax/libs/shaka-player/2.4.1/shaka-player.compiled.js">
</script>
...

var playerName = $('#player').val();

if (playerName === 'Shaka Player') {
    var playerElement = $('#shaka');
    playerElement.show();

    var player = new shaka.Player(playerElement[0]);
    console.log('Created Shaka Player');

    player.load(response.DASHStreamingSessionURL).then(function() {
        console.log('Starting playback');
    });
    console.log('Set player source');
}
```

L'esempio di codice seguente illustra come fornire l'URL della sessione di streaming a un lettore [dash.js](https://github.com/Dash-Industry-Forum/dash.js/wiki): 

```
<!-- dash.js Player elements -->
<video id="dashjs" class="player" controls autoplay=""></video>
<script src="https://cdn.dashjs.org/latest/dash.all.min.js"></script>

...

var playerElement = $('#dashjs');
playerElement.show();

var player = dashjs.MediaPlayer().create();
console.log('Created DASH.js Player');

player.initialize(document.querySelector('#dashjs'), response.DASHStreamingSessionURL, true);
console.log('Starting playback');
console.log('Set player source');
}
```

### Esempio completato
<a name="dash-example-complete"></a>

È possibile [scaricare o visualizzare il codice di esempio completato](https://github.com/aws-samples/amazon-kinesis-video-streams-hls-viewer/blob/master/index.html) su GitHub.