

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Reprodução de vídeo com MPEG-DASH
<a name="dash-playback"></a>

[Para ver um stream de vídeo do Kinesis usando MPEG-DASH, primeiro você cria uma sessão de streaming usando Get SessionURL. DASHStreaming](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetDASHStreamingSessionURL.html) Essa ação retorna uma URL (contendo um token de sessão) para acessar a sessão MPEG-DASH. Em seguida, você pode usar a URL em um player de mídia ou em um aplicativo autônomo para exibir o streaming. 

Um stream de vídeo do Amazon Kinesis tem os seguintes requisitos para fornecer vídeo por meio do MPEG-DASH:
+ Para obter os requisitos da faixa de reprodução de vídeo em streaming, consulte[Obtenha os requisitos DASHStreaming de SessionURL](video-playback-requirements.md#requirements-getdash).
+ A retenção de dados deve ser maior que 0.
+ A trilha de vídeo de cada fragmento deve conter dados privados de codec na Advanced Video Coding (AVC – Codificação de vídeo avançada) para H.264, e HEVC para formato H.265. Para obter mais informações, consulte a especificação [MPEG-4](https://www.iso.org/standard/55980.html) 14496-15. ISO/IEC Para obter informações sobre a adaptação de dados de streaming para um formato específico, consulte [Sinalizadores de adaptação do NAL](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html).
+ [A faixa de áudio (se presente) de cada fragmento deve conter dados privados do codec no formato AAC ([especificação AAC ISO/IEC 13818-7](https://www.iso.org/standard/43345.html)) ou no formato MS Wave.](https://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html)

## Exemplo: Usando MPEG-DASH em HTML e JavaScript
<a name="dash-examp1e"></a>

O exemplo a seguir mostra como recuperar uma sessão de streaming MPEG-DASH para um stream de vídeo do Kinesis e reproduzi-la em uma página da Web. O exemplo mostra como reproduzir vídeo nos seguintes players:
+ [Google Shaka Player](https://github.com/google/shaka-player)
+ [dash.js](https://github.com/Dash-Industry-Forum/dash.js/wiki)

**Topics**
+ [Configurar o cliente Kinesis Video Streams para reprodução de MPEG-DASH](#dash-example-setup)
+ [Recupere o endpoint de conteúdo arquivado do Kinesis Video Streams para reprodução de MPEG-DASH](#dash-example-endpoint)
+ [Recupere o URL da sessão de streaming MPEG-DASH](#dash-example-session)
+ [Exibir o streaming de vídeo com reprodução MPEG-DASH](#dash-example-display)
+ [Exemplo concluído](#dash-example-complete)

### Configurar o cliente Kinesis Video Streams para reprodução de MPEG-DASH
<a name="dash-example-setup"></a>

Para acessar o streaming de vídeo com o MPEG-DASH, primeiro crie e configure o cliente Kinesis Video Streams (para recuperar o endpoint do serviço) e o cliente de mídia arquivada (para recuperar a sessão de streaming MPEG-DASH). O aplicativo recupera os valores necessários das caixas de entrada na 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 o endpoint de conteúdo arquivado do Kinesis Video Streams para reprodução de MPEG-DASH
<a name="dash-example-endpoint"></a>

Depois que os clientes forem iniciados, recupere o endpoint de conteúdo arquivado do Kinesis Video Streams para que você possa recuperar o URL da sessão de streaming MPEG-DASH da seguinte forma:

```
 // 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 o URL da sessão de streaming MPEG-DASH
<a name="dash-example-session"></a>

Quando você tiver o endpoint de conteúdo arquivado, chame a API [Get DASHStreaming SessionUrl para recuperar o URL](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_reader_GetDASHStreamingSessionURL.html) da sessão de streaming MPEG-DASH da seguinte forma:

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

### Exibir o streaming de vídeo com reprodução MPEG-DASH
<a name="dash-example-display"></a>

Quando tiver a URL da sessão de streaming MPEG-DASH, forneça-a para o player de vídeo. O método para fornecer a URL ao player de vídeo é específico ao player usado.

O código de exemplo a seguir mostra como fornecer a URL da sessão de streaming a um player [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');
}
```

O exemplo de código a seguir mostra como fornecer a URL da sessão de streaming para um player [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');
}
```

### Exemplo concluído
<a name="dash-example-complete"></a>

Você pode [baixar ou visualizar o código de exemplo completo](https://github.com/aws-samples/amazon-kinesis-video-streams-hls-viewer/blob/master/index.html) em GitHub.