

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Reproducción de vídeo con MPEG-DASH
<a name="dash-playback"></a>

Para ver una transmisión de vídeo de Kinesis utilizando MPEG-DASH, primero debe crear una sesión de streaming utilizando. [GetDASHStreamingSessionURL](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetDASHStreamingSessionURL.html) Esta acción devuelve una URL (que contiene un token de sesión) para acceder a la MPEG-DASH sesión. A continuación, puede utilizar la URL en un reproductor multimedia o en una aplicación independiente para mostrar la transmisión. 

Una transmisión de vídeo de Amazon Kinesis tiene los siguientes requisitos para proporcionar vídeo a través de: MPEG-DASH
+ Para conocer los requisitos de las pistas de reproducción de vídeo en streaming, consulte[GetDASHStreamingSessionURL requisitos](video-playback-requirements.md#requirements-getdash).
+ La retención de datos debe ser mayor o igual que 0.
+ La pista de vídeo de cada fragmento debe contener datos privados del códec en formato de codificación de vídeo avanzada (AVC) y en H.264 formato HEVC. H.265 [Para obtener más información, consulte MPEG-4 la especificación 14496-15. ISO/IEC ](https://www.iso.org/standard/55980.html) Si desea obtener más información sobre cómo adaptar datos de transmisiones a un determinado formato, consulte [Referencia de marcas de adaptación de capa de abstracción de red (NAL)](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html).
+ [La pista de audio (si está presente) de cada fragmento debe contener datos privados del códec en formato AAC ([especificación AAC ISO/IEC 13818-7](https://www.iso.org/standard/43345.html)) o en formato MS Wave.](https://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html)

## Ejemplo: si se usa en HTML y MPEG-DASH JavaScript
<a name="dash-examp1e"></a>

El siguiente ejemplo muestra cómo recuperar una sesión de MPEG-DASH streaming para una transmisión de vídeo de Kinesis y reproducirla en una página web. El ejemplo muestra cómo reproducir vídeo en los siguientes reproductores:
+ [Google Shaka Player](https://github.com/google/shaka-player)
+ [dash.js](https://github.com/Dash-Industry-Forum/dash.js/wiki)

**Topics**
+ [Configurar el cliente MPEG-DASH de Kinesis Video Streams para la reproducción](#dash-example-setup)
+ [Recupere el terminal de contenido archivado de Kinesis Video Streams para reproducirlo MPEG-DASH](#dash-example-endpoint)
+ [Recupere la URL de la sesión MPEG-DASH de streaming](#dash-example-session)
+ [Muestra el vídeo en streaming con MPEG-DASH la reproducción](#dash-example-display)
+ [Ejemplo completo](#dash-example-complete)

### Configurar el cliente MPEG-DASH de Kinesis Video Streams para la reproducción
<a name="dash-example-setup"></a>

Para acceder a la transmisión de vídeo MPEG-DASH, primero cree y configure el cliente de Kinesis Video Streams (para recuperar el punto de conexión del servicio) y el cliente multimedia archivado (para recuperar MPEG-DASH la sesión de streaming). La aplicación recupera los valores necesarios de los cuadros de entrada de la página 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);
```

### Recupere el terminal de contenido archivado de Kinesis Video Streams para reproducirlo MPEG-DASH
<a name="dash-example-endpoint"></a>

Una vez iniciados los clientes, recupere el punto final de contenido archivado de Kinesis Video Streams para poder recuperar MPEG-DASH la URL de la sesión de streaming de la siguiente manera:

```
 // 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);
```

### Recupere la URL de la sesión MPEG-DASH de streaming
<a name="dash-example-session"></a>

Cuando tengas el punto final de contenido archivado, llama a la [GetDASHStreamingSessionURL](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetDASHStreamingSessionURL.html)API para recuperar la URL de la sesión de MPEG-DASH streaming de la siguiente manera:

```
// 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);
```

### Muestra el vídeo en streaming con MPEG-DASH la reproducción
<a name="dash-example-display"></a>

Cuando tenga la URL de la sesión de MPEG-DASH streaming, indíquela al reproductor de vídeo. El método para proporcionar la URL al reproductor de vídeo es específico del reproductor utilizado.

En el siguiente ejemplo de código, se muestra cómo proporcionar la URL de la sesión de streaming a un reproductor [Google Shaka](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');
}
```

En el siguiente ejemplo de código, se muestra cómo proporcionar la URL de la sesión de streaming a un reproductor [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');
}
```

### Ejemplo completo
<a name="dash-example-complete"></a>

Puede [descargar o ver el código de ejemplo completo](https://github.com/aws-samples/amazon-kinesis-video-streams-hls-viewer/blob/master/index.html) en GitHub.