

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

# GetDASHStreamingSessionURL
<a name="API_reader_GetDASHStreamingSessionURL"></a>

Recupera um URL MPEG Dynamic Adaptive Streaming over HTTP (DASH) para o stream. Em seguida, você pode abrir o URL em um reprodutor de mídia para visualizar o conteúdo do stream.

Tanto os parâmetros `StreamName` quanto os `StreamARN` parâmetros são opcionais, mas você deve especificar o `StreamName` ou o `StreamARN` ao invocar essa operação de API.

Um stream de vídeo do Amazon Kinesis tem os seguintes requisitos para fornecer dados por meio do MPEG-DASH:
+  [Requisitos de faixa de reprodução de vídeo](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/video-playback-requirements.html).
+ 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)

O procedimento a seguir mostra como usar o MPEG-DASH com o Kinesis Video Streams:

1. Chame a `GetDataEndpoint` API para obter um endpoint. Em seguida, envie as `GetDASHStreamingSessionURL` solicitações para esse endpoint usando o parâmetro [--endpoint-url](https://docs.aws.amazon.com/cli/latest/reference/). 

1. Recupere a URL do MPEG-DASH usando. `GetDASHStreamingSessionURL` O Kinesis Video Streams cria uma sessão de streaming MPEG-DASH para ser usada para acessar o conteúdo em um stream usando o protocolo MPEG-DASH. `GetDASHStreamingSessionURL`retorna uma URL autenticada (que inclui um token de sessão criptografado) para o *manifesto* MPEG-DASH da sessão (o recurso raiz necessário para streaming com MPEG-DASH).
**nota**  
Não compartilhe nem armazene esse token onde uma entidade não autorizada possa acessá-lo. O token fornece acesso ao conteúdo do stream. Proteja o token com as mesmas medidas que você usa com suas AWS credenciais.

   A mídia disponibilizada por meio do manifesto consiste somente no stream, no intervalo de tempo e no formato solicitados. Nenhum outro dado de mídia (como quadros fora da janela solicitada ou taxas de bits alternativas) é disponibilizado.

1. Forneça a URL (contendo o token de sessão criptografado) do manifesto MPEG-DASH para um reprodutor de mídia compatível com o protocolo MPEG-DASH. O Kinesis Video Streams disponibiliza o fragmento de inicialização e os fragmentos de mídia por meio do URL do manifesto. O fragmento de inicialização contém os dados privados do codec para o stream e outros dados necessários para configurar o decodificador e o renderizador de vídeo ou áudio. Os fragmentos de mídia contêm quadros de vídeo codificados ou amostras de áudio codificadas.

1. O reprodutor de mídia recebe o URL autenticado e solicita metadados de stream e dados de mídia normalmente. Quando o reprodutor de mídia solicita dados, ele chama as seguintes ações:
   +  **ObterDASHManifest:** recupera um manifesto MPEG DASH, que contém os metadados da mídia que você deseja reproduzir.
   +  **Obter MP4InitFragment:** recupera o fragmento de MP4 inicialização. Normalmente, o reprodutor de mídia carrega o fragmento de inicialização antes de carregar qualquer fragmento de mídia. Esse fragmento contém os átomos `fytp` "" e "`moov`" e os MP4 átomos secundários necessários para inicializar o decodificador do media player.

     O fragmento de inicialização não corresponde a um fragmento em um stream de vídeo do Kinesis. Ele contém apenas os dados privados do codec para o stream e a respectiva faixa, que o reprodutor de mídia precisa para decodificar os quadros de mídia.
   +  **Obter MP4MediaFragment:** recupera fragmentos MP4 de mídia. Esses fragmentos contêm os átomos "`moof`" e "`mdat`" e seus MP4 átomos filhos, contendo os quadros de mídia do fragmento codificado e seus registros de data e hora. 
**Importante**  
Os dados privados do codec (CPD) contidos em cada fragmento contêm informações de inicialização específicas do codec, como taxa de quadros, resolução e perfil de codificação, que são necessárias para decodificar adequadamente o fragmento. As alterações de CPD não são suportadas durante uma sessão de streaming. O CPD deve permanecer consistente por meio da mídia consultada.
**Importante**  
Não há suporte para alterações na faixa. As faixas devem permanecer consistentes em toda a mídia consultada. O streaming falhará se os fragmentos no stream mudarem de ter apenas vídeo para ter áudio e vídeo, ou se uma faixa de áudio AAC for alterada para uma faixa de áudio A-Law.

     Os dados recuperados com essa ação são faturáveis. Consulte [ Pricing](https://aws.amazon.com/kinesis/video-streams/pricing/) para obter detalhes.

**nota**  
Para ver as restrições que se aplicam às sessões MPEG-DASH, consulte Cotas do Kinesis Video [Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html).

Você pode monitorar a quantidade de dados que o media player consome monitorando a CloudWatch métrica da `GetMP4MediaFragment.OutgoingBytes` Amazon. Para obter informações sobre como usar o Kinesis Video Streams CloudWatch para monitorar o Kinesis Video Streams[, consulte Monitoramento do Kinesis Video](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/monitoring.html) Streams. [Para obter informações sobre preços, consulte Preços e preços do [Amazon Kinesis Video](https://aws.amazon.com/kinesis/video-streams/pricing/) Streams AWS .](https://aws.amazon.com/pricing/) Aplicam-se cobranças para sessões de HLS e AWS dados de saída.

Para obter mais informações sobre o HLS, consulte [HTTP Live Streaming](https://developer.apple.com/streaming/) no [site de desenvolvedores da Apple](https://developer.apple.com).

**Importante**  
Se um erro for gerado após a invocação de uma API de mídia arquivada do Kinesis Video Streams, além do código de status HTTP e do corpo da resposta, ele incluirá as seguintes informações:   
 `x-amz-ErrorType`Cabeçalho HTTP — contém um tipo de erro mais específico, além do que o código de status HTTP fornece. 
 `x-amz-RequestId`Cabeçalho HTTP — se você quiser relatar um problema AWS à equipe de suporte, poderá diagnosticar melhor o problema se receber o ID da solicitação.
Tanto o código de status HTTP quanto o ErrorType cabeçalho podem ser utilizados para tomar decisões programáticas sobre se os erros podem ser repetidos e sob quais condições, além de fornecer informações sobre quais ações o programador cliente pode precisar realizar para tentar novamente com sucesso.  
Para obter mais informações, consulte a seção **Erros** na parte inferior deste tópico, bem como [Erros comuns](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html). 

## Sintaxe da Solicitação
<a name="API_reader_GetDASHStreamingSessionURL_RequestSyntax"></a>

```
POST /getDASHStreamingSessionURL HTTP/1.1
Content-type: application/json

{
   "DASHFragmentSelector": { 
      "FragmentSelectorType": "{{string}}",
      "TimestampRange": { 
         "EndTimestamp": {{number}},
         "StartTimestamp": {{number}}
      }
   },
   "DisplayFragmentNumber": "{{string}}",
   "DisplayFragmentTimestamp": "{{string}}",
   "Expires": {{number}},
   "MaxManifestFragmentResults": {{number}},
   "PlaybackMode": "{{string}}",
   "StreamARN": "{{string}}",
   "StreamName": "{{string}}"
}
```

## Parâmetros da solicitação de URI
<a name="API_reader_GetDASHStreamingSessionURL_RequestParameters"></a>

A solicitação não usa nenhum parâmetro de URI.

## Corpo da Solicitação
<a name="API_reader_GetDASHStreamingSessionURL_RequestBody"></a>

A solicitação aceita os dados a seguir no formato JSON.

 ** [DASHFragmentSelector](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-DASHFragmentSelector"></a>
O intervalo de tempo do fragmento solicitado e a origem dos carimbos de data/hora.  
Esse parâmetro é necessário se `PlaybackMode` for `ON_DEMAND` ou`LIVE_REPLAY`. Esse parâmetro é opcional se PlaybackMode for ```LIVE`. Se `PlaybackMode` for`LIVE`, o `FragmentSelectorType` pode ser definido, mas o não `TimestampRange` deve ser definido. Se `PlaybackMode` for `ON_DEMAND` ou`LIVE_REPLAY`, ambos `FragmentSelectorType` e `TimestampRange` devem ser definidos.  
Tipo: objeto [DASHFragmentSelector](API_reader_DASHFragmentSelector.md)  
Obrigatório: não

 ** [DisplayFragmentNumber](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-DisplayFragmentNumber"></a>
Os fragmentos são identificados no arquivo de manifesto com base em seu número de sequência na sessão. Se DisplayFragmentNumber estiver definido como`ALWAYS`, o número do fragmento do Kinesis Video Streams será adicionado a cada elemento S no arquivo de manifesto com o nome do atributo “kvs:fn”. Esses números de fragmentos podem ser usados para registro ou para uso com outros APIs (por exemplo, `GetMedia` e`GetMediaForFragmentList`). É necessário um reprodutor de mídia MPEG-DASH personalizado para aproveitar esses atributos personalizados.  
O valor padrão é `NEVER`.  
Tipo: string  
Valores válidos: `ALWAYS | NEVER`   
Obrigatório: não

 ** [DisplayFragmentTimestamp](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-DisplayFragmentTimestamp"></a>
De acordo com a especificação MPEG-DASH, a hora do relógio de parede dos fragmentos no arquivo de manifesto pode ser derivada usando atributos no próprio manifesto. No entanto, normalmente, os reprodutores de mídia compatíveis com MPEG-DASH não lidam adequadamente com as lacunas na linha do tempo da mídia. O Kinesis Video Streams ajusta a linha do tempo da mídia no arquivo de manifesto para permitir a reprodução de mídia com descontinuidades. Portanto, a hora do relógio de parede derivada do arquivo de manifesto pode ser imprecisa. Se DisplayFragmentTimestamp estiver definido como`ALWAYS`, o timestamp preciso do fragmento será adicionado a cada elemento S no arquivo de manifesto com o nome do atributo “kvs:ts”. É necessário um reprodutor de mídia MPEG-DASH personalizado para aproveitar esse atributo personalizado.  
O valor padrão é `NEVER`. Quando [DASHFragmentSelector](API_reader_DASHFragmentSelector.md) for`SERVER_TIMESTAMP`, os carimbos de data/hora serão os carimbos de data e hora de início do servidor. Da mesma forma, quando [DASHFragmentSelector](API_reader_DASHFragmentSelector.md) for`PRODUCER_TIMESTAMP`, os carimbos de data/hora serão os carimbos de data e hora de início do produtor.   
Tipo: string  
Valores válidos: `ALWAYS | NEVER`   
Obrigatório: não

 ** [Expires](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-Expires"></a>
O tempo em segundos até a sessão solicitada expirar. Esse valor pode estar entre 300 (5 minutos) e 43200 (12 horas).  
Quando uma sessão expira, nenhuma nova chamada para `GetDashManifest``GetMP4InitFragment`, ou `GetMP4MediaFragment` pode ser feita para essa sessão.  
O padrão é 300 (5 minutos).  
Tipo: inteiro  
Intervalo válido: valor mínimo de 300. Valor máximo de 43200.  
Obrigatório: não

 ** [MaxManifestFragmentResults](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-MaxManifestFragmentResults"></a>
O número máximo de fragmentos que são retornados no manifesto MPEG-DASH.  
Quando o `PlaybackMode` é`LIVE`, os fragmentos mais recentes são retornados até esse valor. Quando o `PlaybackMode` é`ON_DEMAND`, os fragmentos mais antigos são retornados, até esse número máximo.  
Quando há um número maior de fragmentos disponíveis em um manifesto MPEG-DASH ao vivo, os reprodutores de vídeo geralmente armazenam o conteúdo em buffer antes de iniciar a reprodução. Aumentar o tamanho do buffer aumenta a latência da reprodução, mas diminui a probabilidade de que o rebuffer ocorra durante a reprodução. Recomendamos que um manifesto MPEG-DASH ativo tenha no mínimo 3 fragmentos e no máximo 10 fragmentos.  
O padrão é 5 fragmentos se `PlaybackMode` for `LIVE` ou `LIVE_REPLAY` e 1.000 se `PlaybackMode` for`ON_DEMAND`.   
O valor máximo de 1.000 fragmentos corresponde a mais de 16 minutos de vídeo em streams com fragmentos de 1 segundo e mais de 2 horas e meia de vídeo em streams com fragmentos de 10 segundos.  
Tipo: longo  
Faixa válida: valor mínimo de 1. Valor máximo de 5000.  
Obrigatório: não

 ** [PlaybackMode](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-PlaybackMode"></a>
Seja para recuperar dados ao vivo, reproduzidos ao vivo ou arquivados sob demanda.  
Os recursos dos três tipos de sessões incluem o seguinte:  
+  **`LIVE`**: para sessões desse tipo, o manifesto MPEG-DASH é atualizado continuamente com os fragmentos mais recentes à medida que eles se tornam disponíveis. Recomendamos que o media player recupere um novo manifesto em um intervalo de um segundo. Quando esse tipo de sessão é reproduzido em um reprodutor de mídia, a interface do usuário normalmente exibe uma notificação “ao vivo”, sem controle manual para escolher a posição na janela de reprodução a ser exibida.
**nota**  
No `LIVE` modo, os fragmentos mais recentes disponíveis são incluídos em um manifesto MPEG-DASH, mesmo que haja uma lacuna entre os fragmentos (ou seja, se um fragmento estiver ausente). Uma lacuna como essa pode fazer com que um reprodutor de mídia pare ou cause um salto na reprodução. Nesse modo, os fragmentos não são adicionados ao manifesto MPEG-DASH se forem mais antigos do que o fragmento mais recente na playlist. Se o fragmento ausente ficar disponível após a adição de um fragmento subsequente ao manifesto, o fragmento mais antigo não será adicionado e a lacuna não será preenchida.
+  **`LIVE_REPLAY`**: para sessões desse tipo, o manifesto MPEG-DASH é atualizado da mesma forma que é atualizado para o `LIVE` modo, exceto pelo fato de que ele começa com a inclusão de fragmentos de um determinado horário de início. Em vez de fragmentos serem adicionados à medida que são ingeridos, os fragmentos são adicionados à medida que a duração do próximo fragmento decorre. Por exemplo, se os fragmentos na sessão durarem dois segundos, um novo fragmento será adicionado ao manifesto a cada dois segundos. Esse modo é útil para poder iniciar a reprodução a partir da detecção de um evento e continuar transmitindo ao vivo a mídia que ainda não foi ingerida no momento da criação da sessão. Esse modo também é útil para transmitir mídia previamente arquivada sem ser limitado pelo limite de 1.000 fragmentos no `ON_DEMAND` modo. 
+  **`ON_DEMAND`**: para sessões desse tipo, o manifesto MPEG-DASH contém todos os fragmentos da sessão, até o número especificado em. `MaxManifestFragmentResults` O manifesto deve ser recuperado somente uma vez para cada sessão. Quando esse tipo de sessão é reproduzido em um reprodutor de mídia, a interface do usuário normalmente exibe um controle de depuração para escolher a posição na janela de reprodução a ser exibida.
Em todos os modos de reprodução, se houver `FragmentSelectorType``PRODUCER_TIMESTAMP`, e se houver vários fragmentos com o mesmo carimbo de data e hora de início, o fragmento que tiver o maior número de fragmentos (ou seja, o fragmento mais novo) será incluído no manifesto MPEG-DASH. Os outros fragmentos não estão incluídos. Fragmentos com registros de data e hora diferentes, mas com durações sobrepostas, ainda estão incluídos no manifesto MPEG-DASH. Isso pode levar a um comportamento inesperado no media player.  
O padrão é `LIVE`.  
Tipo: String  
Valores válidos: `LIVE | LIVE_REPLAY | ON_DEMAND`   
Obrigatório: não

 ** [StreamARN](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-StreamARN"></a>
O Amazon Resource Name (ARN) do stream para o qual recuperar a URL do manifesto MPEG-DASH.  
Você deve especificar o `StreamName` ou `StreamARN` o.  
Tipo: string  
Restrições de tamanho: tamanho mínimo 1. O comprimento máximo é 1.024.  
Padrão: `arn:[a-z\d-]+:kinesisvideo:[a-z0-9-]+:[0-9]+:[a-z]+/[a-zA-Z0-9_.-]+/[0-9]+`   
Obrigatório: não

 ** [StreamName](#API_reader_GetDASHStreamingSessionURL_RequestSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-request-StreamName"></a>
O nome do fluxo para o qual recuperar a URL do manifesto MPEG-DASH.  
Você deve especificar o `StreamName` ou `StreamARN` o.  
Tipo: string  
Restrições de tamanho: tamanho mínimo 1. Tamanho máximo de 256.  
Padrão: `[a-zA-Z0-9_.-]+`   
Obrigatório: Não

## Sintaxe da resposta
<a name="API_reader_GetDASHStreamingSessionURL_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "DASHStreamingSessionURL": "string"
}
```

## Elementos de resposta
<a name="API_reader_GetDASHStreamingSessionURL_ResponseElements"></a>

Se a ação for bem-sucedida, o serviço retornará uma resposta HTTP 200.

Os dados a seguir são retornados no formato JSON pelo serviço.

 ** [DASHStreamingSessionURL](#API_reader_GetDASHStreamingSessionURL_ResponseSyntax) **   <a name="KinesisVideo-reader_GetDASHStreamingSessionURL-response-DASHStreamingSessionURL"></a>
A URL (contendo o token da sessão) que um media player pode usar para recuperar o manifesto MPEG-DASH.  
Tipo: string

## Erros
<a name="API_reader_GetDASHStreamingSessionURL_Errors"></a>

Para informações sobre os erros comuns retornados pelas ações, consulte [Tipos de erro comuns](CommonErrors.md).

 ** ClientLimitExceededException **   
O Kinesis Video Streams limitou a solicitação porque você excedeu um limite. Tente fazer a ligação mais tarde. Para obter informações sobre limites, consulte Cotas do [Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html).  
Código de status HTTP: 400

 ** InvalidArgumentException **   
Um parâmetro especificado excede suas restrições, não é suportado ou não pode ser usado.  
Código de status HTTP: 400

 ** InvalidCodecPrivateDataException **   
Os dados privados do codec em pelo menos uma das faixas do stream de vídeo não são válidos para essa operação.  
Código de status HTTP: 400

 ** MissingCodecPrivateDataException **   
Nenhum dado privado do codec foi encontrado em pelo menos uma das faixas do stream de vídeo.  
Código de status HTTP: 400

 ** NoDataRetentionException **   
 `GetImages`foi solicitado para um fluxo que não retém dados (ou seja, tem um `DataRetentionInHours` de 0).   
Código de status HTTP: 400

 ** NotAuthorizedException **   
Código de status: 403, O chamador não está autorizado a realizar uma operação no stream fornecido ou o token expirou.  
Código de status HTTP: 401

 ** ResourceNotFoundException **   
 `GetImages`gerará esse erro quando o Kinesis Video Streams não conseguir encontrar o stream que você especificou.  
 `GetHLSStreamingSessionURL`e `GetDASHStreamingSessionURL` gere esse erro se uma sessão com um `PlaybackMode` de `ON_DEMAND` ou `LIVE_REPLAY` for solicitada para um fluxo que não tem fragmentos dentro do intervalo de tempo solicitado, ou se uma sessão com um `PlaybackMode` of `LIVE` for solicitada para um fluxo que não tem fragmentos nos últimos 30 segundos.  
Código de status HTTP: 404

 ** UnsupportedStreamMediaTypeException **   
O tipo da mídia (por exemplo, vídeo h.264 ou h.265 ou áudio AAC ou G.711) não pôde ser determinado pelo codec IDs das faixas no primeiro fragmento de uma sessão de reprodução. O ID do codec para a faixa 1 deve ser `V_MPEG/ISO/AVC` e, opcionalmente, o ID do codec para a faixa 2 deve ser. `A_AAC`  
Código de Status HTTP: 400

## Consulte também
<a name="API_reader_GetDASHStreamingSessionURL_SeeAlso"></a>

Para obter mais informações sobre como usar essa API em uma das linguagens específicas AWS SDKs, consulte o seguinte:
+  [AWS Interface de linha de comando V2](https://docs.aws.amazon.com/goto/cli2/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK para .NET V4](https://docs.aws.amazon.com/goto/DotNetSDKV4/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK para C\+\+](https://docs.aws.amazon.com/goto/SdkForCpp/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK para Go v2](https://docs.aws.amazon.com/goto/SdkForGoV2/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK para Java V2](https://docs.aws.amazon.com/goto/SdkForJavaV2/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK para JavaScript V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK para Kotlin](https://docs.aws.amazon.com/goto/SdkForKotlin/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK para PHP V3](https://docs.aws.amazon.com/goto/SdkForPHPV3/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK para Python](https://docs.aws.amazon.com/goto/boto3/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 
+  [AWS SDK para Ruby V3](https://docs.aws.amazon.com/goto/SdkForRubyV3/kinesis-video-reader-data-2017-09-30/GetDASHStreamingSessionURL) 