Solução de problemas de streaming de vídeo - Amazon Rekognition

Solução de problemas de streaming de vídeo

Este tópico fornece informações sobre solução de problemas para usar o Amazon Rekognition Video com streaming de vídeos.

Não sei se meu processador de fluxo foi criado com êxito

Use o seguinte comando da AWS CLI para obter uma lista de processadores de streams e seu status atual.

aws rekognition list-stream-processors

Você pode obter mais detalhes usando o seguinte comando da AWS CLI. Substitua stream-processor-name pelo nome do processador de fluxos necessário.

aws rekognition describe-stream-processor --name stream-processor-name

Eu não sei se configurei corretamente o meu processador de fluxos

Se seu código não estiver gerando os resultados da análise do Amazon Rekognition Video, seu processador de stream pode não estar configurado corretamente. Faça o seguinte para confirmar se o processador de fluxos está configurado corretamente e pode produzir resultados.

Para determinar se sua solução está configurada corretamente
  1. Execute o comando a seguir para confirmar se o processador de fluxos está no estado de execução. Altere stream-processor-name para o nome do processador de fluxos. O processador de fluxos estará em execução se o valor de Status for RUNNING. Se o status for RUNNING e você não estiver obtendo resultados, consulte Meu processador de fluxos não está retornando resultados. Se o status for FAILED, consulte O estado do meu processador de fluxos é FAILED.

    aws rekognition describe-stream-processor --name stream-processor-name
  2. Se o processador de fluxos estiver em execução, execute o seguinte comando do PowerShell ou do Bash para ler dados do fluxo de dados de saída do Kinesis.

    Bash

    SHARD_ITERATOR=$(aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name kinesis-data-stream-name --query 'ShardIterator') aws kinesis get-records --shard-iterator $SHARD_ITERATOR

    PowerShell

    aws kinesis get-records --shard-iterator ((aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name kinesis-data-stream-name).split('"')[4])
  3. Use a ferramenta Decode no site Base64 Decode para decodificar a saída em uma string legível. Para obter mais informações, consulte Etapa 3: Obter o registro.

  4. Se os comandos funcionarem e você vir os resultados da detecção de face no fluxo de dados do Kinesis, sua solução estará configurada corretamente. Se ocorrer uma falha no comando, verifique as outras sugestões de solução de problemas e consulte Conceder ao Amazon Rekognition Video acesso aos seus recursos.

Como alternativa, você pode usar o blueprint AWS Lambda "kinesis-process-record" para registrar mensagens do fluxo de dados do Kinesis no CloudWatch para visualização contínua. Isso gera custos adicionais para o AWS Lambda e o CloudWatch.

Meu processador de fluxos não está retornando resultados

O processador de fluxos pode não retornar resultados por vários motivos.

Motivo 1: seu processador de fluxo não está configurado corretamente

Seu processador de fluxos pode não estar configurado corretamente. Para obter mais informações, consulte Eu não sei se configurei corretamente o meu processador de fluxos.

Motivo 2: Seu processador de fluxos não está no estado RUNNING

Para solucionar o status de um processador de fluxos
  1. Verifique o status do processador de fluxos com o seguinte comando da AWS CLI.

    aws rekognition describe-stream-processor --name stream-processor-name
  2. Se o valor de Status for STOPPED, inicie o processador de fluxos com o seguinte comando:

    aws rekognition start-stream-processor --name stream-processor-name
  3. Se o valor de Status for FAILED, consulte O estado do meu processador de fluxos é FAILED.

  4. Se o valor de Status for STARTING, aguarde 2 minutos e verifique o status repetindo a etapa 1. Se o valor de Status ainda for STARTING, faça o seguinte:

    1. Exclua o processador de fluxos com o seguinte comando.

      aws rekognition delete-stream-processor --name stream-processor-name
    2. Crie um novo processador de fluxos com a mesma configuração. Para obter mais informações, consulte Trabalhando com eventos de streaming de vídeo.

    3. Se você ainda estiver com problemas, entre em contato com o AWS Support.

  5. Se o valor de Status for RUNNING, consulte Motivo 3: Não há dados ativos no stream de vídeo do Kinesis.

Motivo 3: Não há dados ativos no stream de vídeo do Kinesis

Para verificar se há dados ativos no stream de vídeo do Kinesis
  1. Faça login no Console de gerenciamento da AWS, e abra o console do Amazon Kinesis Video Streams em https://console.aws.amazon.com/kinesisvideo/.

  2. Selecione o stream de vídeo Kinesis que é a entrada para o processador de stream Amazon Rekognition.

  3. Se a pré-visualização indicar Sem dados no stream, então não há dados no stream de entrada para o Amazon Rekognition Video processar.

Para obter informações sobre a produção de vídeo com o Kinesis Video Streams, consulte Bibliotecas do Kinesis Video StreamsProducer.

O estado do meu processador de fluxos é FAILED

Você pode verificar o estado de um processador de fluxos com o seguinte comando da AWS CLI.

aws rekognition describe-stream-processor --name stream-processor-name

Se o valor de Status for FAILED, verifique as informações de solução de problemas para as seguintes mensagens de erro.

Erro: "Acesso negado à função"

O perfil do IAM usado pelo processador de stream não existe ou o Amazon Rekognition Video não tem permissão para assumir a função.

Para solucionar problemas de acesso ao perfil do IAM
  1. Faça login no Console de gerenciamento da AWS e abra o console do IAM, em https://console.aws.amazon.com/iam/.

  2. No painel de navegação à esquerda, selecione Roles (Funções) e confirme se a função existe.

  3. Se a função existir, verifique se a função tem a política de permissões AmazonRekognitionServiceRole.

  4. Se a função não existir ou não tiver as permissões corretas, consulte Conceder ao Amazon Rekognition Video acesso aos seus recursos.

  5. Inicie o processador de fluxos com o seguinte comando da AWS CLI.

    aws rekognition start-stream-processor --name stream-processor-name

Erro: "Access denied to Kinesis Video (Acesso negado ao vídeo do Kinesis) ou Access denied to Kinesis Data (Acesso negado aos dados do Kinesis)"

A função não tem acesso às operações GetMedia e GetDataEndpoint da API do Kinesis Video Streams. Também pode não ter acesso às operações PutRecord e PutRecords da API Kinesis Data Streams

Para solucionar problemas de permissões da API
  1. Faça login no Console de gerenciamento da AWS e abra o console do IAM, em https://console.aws.amazon.com/iam/.

  2. Abra a função e verifique se ela tem a seguinte política de permissões associada.

  3. Se qualquer uma das permissões estiver ausente, atualize a política. Para obter mais informações, consulte Conceder ao Amazon Rekognition Video acesso aos seus recursos.

Erro: "O fluxo input-video-stream-name não existe"

A entrada de stream de vídeo do Kinesis para o processador de stream não existe ou não está configurada corretamente.

Para solucionar problemas do stream de vídeo do Kinesis
  1. Use o seguinte comando para confirmar se o stream existe.

    aws kinesisvideo list-streams
  2. Se o stream existir, verifique o seguinte.

    • O nome de recurso da Amazon (ARN) é igual ao ARN do stream de entrada para o processador de fluxos.

    • O stream de vídeo do Kinesis está na mesma região do processador de stream.

    Se o processador de fluxos não estiver configurado corretamente, exclua-o com o seguinte comando da AWS CLI.

    aws rekognition delete-stream-processor --name stream-processor-name
  3. Crie um novo processador de fluxos com o stream de vídeo desejado do Kinesis. Para obter mais informações, consulte Criação do processador de stream de pesquisa facial Amazon Rekognition Video.

Erro: "Coleção não encontrada"

A coleção Amazon Rekognition usada pelo processador de stream para combinar faces não existe ou a coleção errada está sendo usada.

Para confirmar a coleção
  1. Use o comando da AWS CLI a seguir para determinar se a coleção existe. Altere region para a região da AWS na qual você está executando o processador de fluxos.

    aws rekognition list-collections --region region

    Se a coleção necessária não existir, crie uma nova coleção e adicione informações de faces. Para obter mais informações, consulte Pesquisa de faces em uma coleção.

  2. Em sua chamada para CreateStreamProcessor, verifique se o valor do parâmetro de entrada CollectionId está correto.

  3. Inicie o processador de fluxos com o seguinte comando da AWS CLI.

    aws rekognition start-stream-processor --name stream-processor-name

Erro: "O fluxo output-kinesis-data-stream-name na conta account-id não foi encontrado"

O fluxo de dados de saída do Kinesis que é usado pelo processador de fluxo não existe na sua Conta da AWS ou não está na mesma Região AWS como seu processador de fluxo.

Para solucionar problemas no fluxo de dados do Kinesis
  1. Use o comando da AWS CLI a seguir para determinar se o fluxo de dados do Kinesis existe. Altere region para a região da AWS na qual você está usando o processador de fluxos.

    aws kinesis list-streams --region region
  2. Se o fluxo de dados do Kinesis existir, verifique se o nome do stream é igual ao nome do stream de saída usado pelo processador de fluxos.

  3. Se o fluxo de dados do Kinesis não existir, talvez ele exista em outra região da AWS. O fluxo de dados do Kinesis deve estar na mesma região que o processador de fluxos.

  4. Se necessário, crie um novo fluxo de dados do Kinesis.

    1. Crie um fluxo de dados do Kinesis com o mesmo nome que o usado pelo processador de fluxos. Para obter mais informações, consulte Etapa 1: Criar um fluxo de dados.

    2. Inicie o processador de fluxos com o seguinte comando da AWS CLI.

      aws rekognition start-stream-processor --name stream-processor-name

Meu processador de fluxos não está retornando os resultados esperados

Se o processador de fluxos não estiver retornando as correspondências de face esperadas, use as informações a seguir.