

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

# Solução de problemas
<a name="s3-image-troubleshooting"></a>

## Imagens não entregues no bucket do Amazon S3
<a name="s3-images-not-delivered"></a>

Para solucionar esse problema, há algumas coisas a serem observadas:

1. Permissões ausentes

1. A configuração de geração de imagem está incorreta

1. A tag não foi adicionada ao fragmento

### Permissões ausentes
<a name="s3-missing-permissions"></a>

Se você estiver usando uma chave KMS gerenciada pelo cliente, certifique-se de que a função que executa as `PutMedia` chamadas (uploader) tenha as permissões apropriadas de criptografia e descriptografia e tenha acesso ao bucket do Amazon S3, da seguinte forma:
+ `kms:Encrypt`
+ `kms:GenerateDataKey`
+ `kms:Decrypt`
+ `s3:PutObject`

Para obter mais informações, consulte [Como começo a usar a criptografia no lado do servidor?](how-kms.md#getting-started-with-sse-akvs).

### Verifique o destino
<a name="s3-verify-destination"></a>

Use o AWS CLI para chamar a DescribeImageGenerationConfiguration API do seu stream.

```
aws kinesisvideo describe-image-generation-configuration \
  --stream-name "{{demo-stream}}"
```

Analise `DestinationConfig` a resposta e confirme se ela parece correta.

### Verifique se a tag de geração de imagem foi adicionada ao fragmento
<a name="s3-verify-tag-added"></a>

1. Verifique se a `putKinesisVideoEventMetadata` chamada foi bem-sucedida.

   O `putKinesisVideoEventMetadata` método retorna um código de status 0 em caso de sucesso. Recomendamos verificar os valores de retorno das funções para 0. Se um código de status diferente de zero for retornado, converta-o em hexadecimal e verifique o [Referência de código de erro](producer-sdk-errors.md) para obter mais informações.

   Verifique se você tem os registros de erros ativados e analise-os para ver se há outros erros no aplicativo. Analise e compare o padrão de chamada de envio de quadros do seu aplicativo com a implementação recomendada:[Adicionar tags de geração de imagens a fragmentos](s3-real-time-image-create.md#s3-adding-image-tags).

1. Verifique o arquivo MKV gerado localmente

   Confirme se o Producer SDK ou o aplicativo de amostra anexou as tags corretamente.

   1. Defina a variável de ambiente `KVS_DEBUG_DUMP_DATA_FILE_DIR`. Se esse valor for definido, o Producer SDK grava os arquivos de mídia que ele teria enviado para o Kinesis Video Streams no local especificado.

      ```
      export KVS_DEBUG_DUMP_DATA_FILE_DIR=/path/to/output/directory
      ```
**nota**  
O SDK não criará um novo diretório se o caminho não existir. Crie a pasta, se necessário.

   1. Execute o aplicativo novamente. Você deve ver `.mkv` os arquivos sendo gravados no diretório de saída especificado.

   1. Verifique o conteúdo para garantir que a tag esteja presente usando MKVToolNix ou outro software.

      1. Instale MKVToolNix: `brew install mkvtoolnix`

      1. Execute MKVToolNix com um dos `.mkv` arquivos no diretório de saída.

         ```
         mkvinfo -v ./path/to/video/file
         ```

      1. Revise a MKVToolNix saída. Se o método SDK do `KinesisVideoStream::PutFragmentMetadata` produtor foi invocado corretamente, você deverá ver a seguinte tag MKV.

         ```
         |+ Tags
         | + Tag
         |  + Simple
         |   + Name: AWS_KINESISVIDEO_IMAGE_GENERATION
         ```
**nota**  
As tags pertencem ao cluster anterior.

   1. Se a tag MKV não estiver presente, certifique-se de que o método SDK do `KinesisVideoStream::PutEventMetadata` produtor tenha sido chamado com o `STREAM_EVENT_TYPE_IMAGE_GENERATION` argumento e que tenha retornado um código de sucesso (0).