View a markdown version of this page

Solução de problemas - Amazon Kinesis Video Streams

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

Imagens não entregues no bucket do Amazon S3

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

  1. Permissões ausentes

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

  3. A tag não foi adicionada ao fragmento

Permissões ausentes

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

Verifique o destino

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

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

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

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

    3. Verifique o conteúdo para garantir que a tag esteja presente usando o MKVTool Nix ou outro software.

      1. Instale o MKVTool Nix: brew install mkvtoolnix

      2. Execute o MKVTool Nix com um dos .mkv arquivos no diretório de saída.

        mkvinfo -v ./path/to/video/file
      3. Revise a saída do MKVTool Nix. 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.

    4. 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).