

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

# Reproduza mídia do seu stream de vídeo do Kinesis
<a name="producersdk-cpp-rpi-playback"></a>

Abra o console do [Kinesis Video](https://console.aws.amazon.com//kinesisvideo/home/) Streams e **selecione o nome do stream para o** stream que você criou.

O streaming de vídeo enviado do Raspberry Pi aparecerá no console.

**nota**  
Pode levar alguns segundos até que o vídeo apareça no console.

Depois que a transmissão estiver sendo reproduzida, você poderá experimentar os seguintes recursos no console:
+ Na seção **Video preview** (Visualização de vídeo), use os controles de navegação para retroceder ou avançar rapidamente pelo streaming. 
+ Na seção **Informações do stream**, revise o codec, a resolução e a taxa de bits do stream. Os valores de resolução e taxa de bits são definidos propositalmente como baixos no Raspberry Pi para minimizar o uso da largura de banda neste tutorial. 

  Para ver as CloudWatch métricas da Amazon que estão sendo criadas para seu stream, selecione **View stream metrics in CloudWatch**. 
+ Em **Data retention period** (Período de retenção de dados), observe que o streaming de vídeo é retido por um dia. Você pode editar esse valor e defini-lo como **No data retention** (Sem retenção de dados) ou definir um valor de um dia a vários anos. 
+ Em **Criptografia do lado do servidor**, observe que seus dados estão sendo criptografados em repouso usando uma chave mantida pelo AWS Key Management Service ().AWS KMS

## Problemas de reprodução
<a name="rpi-troubleshoot-playback"></a>

A seguir estão alguns problemas de reprodução encontrados com frequência e como solucioná-los.

### Sem mídia, mas há Acks PERSISTENTES nos registros
<a name="rpi-troubleshoot-no-media"></a>

Se você ver PERSISTED Acks nos registros, o Kinesis Video Streams ingeriu e armazenou com sucesso a mídia que foi carregada por. `kvssink` Os acks recebidos do Kinesis Video Streams têm essa aparência. No JSON, veja o valor da `"EventType"` chave.

```
{"EventType":"RECEIVED","FragmentTimecode":252200,"FragmentNumber":"12345678901234567890123456724587702494771079511"}
{"EventType":"BUFFERING","FragmentTimecode":252467,"FragmentNumber":"12345678901234567890123456781729223736853277017"}
{"EventType":"RECEIVED","FragmentTimecode":252467,"FragmentNumber":"12345678901234567890123456781729223736853277017"}
{"EventType":"BUFFERING","FragmentTimecode":253000,"FragmentNumber":"12345678901234567890123456738870744847093249408"}
{"EventType":"PERSISTED","FragmentTimecode":252200,"FragmentNumber":"12345678901234567890123456724587702494771079511"}
{"EventType":"PERSISTED","FragmentTimecode":252467,"FragmentNumber":"1234567890123456789012345671729223736853277017"}
```

**Resolução:**

Aguarde um ou dois minutos no console do Kinesis Video Streams e use a seta dupla para a direita. Se nenhuma mídia aparecer, verifique se sua transmissão está sendo enviada para a região correta e revise a grafia do nome da transmissão. Você pode encontrar essas informações nos registros.

Consulte [Forneça uma região para `kvssink`](examples-gstreamer-plugin-parameters.md#kvssink-region) para obter mais informações sobre como o kvssink determina qual região usar.

### A mídia leva muito tempo para ser carregada no Console de gerenciamento da AWS
<a name="rpi-troubleshoot-load-time"></a>

**Importante**  
A experiência de reprodução do console é diferente da experiência de reprodução do HLS e do DASH. Use o exemplo da [página da web hospedada](https://aws-samples.github.io/amazon-kinesis-video-streams-media-viewer/) pelo media player GitHub para testar a reprodução também. O código-fonte da página da web pode ser encontrado [aqui.](https://github.com/aws-samples/amazon-kinesis-video-streams-media-viewer)

A mídia pode carregar lentamente no console devido à baixa largura de banda da rede ou a um dispositivo restrito, mas também pode estar relacionada à codificação e fragmentação do vídeo. 

**Fundamentos da codificação de vídeo:**
+ Os codificadores H.264 e H.265 usam quadros-chave (I-Frames) e quadros previstos (P-Frames) para uma compressão eficiente.
+ Os quadros-chave contêm dados completos da imagem, enquanto os quadros P contêm apenas alterações dos quadros anteriores.
+ O “intervalo de quadros-chave” determina a frequência com que os quadros-chave ocorrem no fluxo de vídeo.

**Fragmentação no streaming:**
+ No Kinesis Video Streams, novos fragmentos começam com cada quadro-chave. Para obter mais informações, consulte [Modelo de dados do Kinesis Video Streams](how-data.md).
+ *O comprimento do fragmento (em segundos) pode ser estimado como: *intervalo de quadros-chave ÷ taxa de quadros**

  **Exemplo:**

  Para um stream com um intervalo de quadros-chave de 30 e uma taxa de quadros de 15 fps: 

  Comprimento do fragmento = 30 ÷ 15 = 2 segundos

Devido aos intervalos maiores de quadros-chave, fragmentos mais longos aumentam a latência na mídia de streaming.

**Resolução:**

Para melhorar os tempos de carregamento, considere reduzir o intervalo do quadro-chave. Isso criará fragmentos mais curtos, diminuindo a latência, mas também aumentará o tamanho do arquivo de vídeo.

Para o `x264enc` GStreamer elemento, você pode definir explicitamente o intervalo do quadro-chave por meio da propriedade: `key-int-max`

```
x264enc bframes=0 key-int-max=60
```

Ao analisar a saída do log, observe com que frequência o cliente de upload recebe ACKs do Kinesis Video Streams. Quanto mais quadros-chave são gerados, mais ACKs são retornados.

### A mídia está distorcida ou tem artefatos
<a name="rpi-troubleshoot-distortion"></a>

Para solucionar esse problema, verifique se todos os cabos estão bem conectados. Analise a saída de `libcamera-hello` (ou `raspistill` para câmeras Pi antigas) dos módulos de câmera.

Em seu GStreamer pipeline, `kvssink` substitua por `autovideosink` ou `matroskamux` `filesink` e. Por exemplo:

```
... x264enc tune=zerolatency speed-preset=ultrafast bframes=0 key-int-max=60 byte-stream=true ! h264parse ! matroskamux ! filesink location=output.mkv 
```

Examine o arquivo de saída `filesink` ou o reprodutor de mídia que se abre durante o uso `autovideosink` para ver se os artefatos também estão lá.

Analise também a saída do seguinte pipeline:

```
gst-launch-1.0 autovideosrc ! videoconvert ! autovideosink
```

Adicionar elementos ao seu pipeline, como [dewarp](https://gstreamer.freedesktop.org/documentation/opencv/dewarp.html?gi-language=c), pode corrigir as saídas da câmera fish eye.

Revise os codecs de saída compatíveis com sua câmera e ajuste os elementos conforme necessário. 

Por exemplo, se sua câmera USB suportar apenas saída JPEG, você precisará usar os `jpegdec` elementos `jpegparse` e para transformar a mídia antes de codificá-la em H.264 usando. `x264enc` Procure ajuda nos GStreamer fóruns para outros usuários com pipelines e/ou configurações de webcam semelhantes.