Solución de problemas de vídeo en streaming - Amazon Rekognition

Solución de problemas de vídeo en streaming

Este tema ofrece información sobre cómo solucionar problemas en el uso de Amazon Rekognition Video con vídeos en streaming.

No sé si mi procesador de streaming se ha creado correctamente

Utilice el siguiente comando de AWS CLI para obtener una lista de los procesadores de streaming y su estado actual.

aws rekognition list-stream-processors

Puede obtener detalles adicionales utilizando el siguiente comando de AWS CLI. Reemplace stream-processor-name por el nombre del procesador de streaming necesario.

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

No sé si he configurado correctamente mi procesador de streaming

Si el código no está devolviendo los resultados de análisis de Amazon Rekognition Video, es posible que su procesador de streaming no esté configurado correctamente. Realice lo siguiente para confirmar que su procesador de streaming se ha configurado correctamente y que puede producir resultados.

Para determinar si su solución está configurada correctamente
  1. Ejecute el siguiente comando para confirmar que el procesador de streaming se encuentra en estado de ejecución. Cambie stream-processor-name por el nombre de su procesador de streaming. El procesador de streaming está en ejecución si el valor de Status es RUNNING. Si el estado es RUNNING y no está obteniendo resultados, consulte Mi procesador de streaming no está devolviendo resultados. Si el estado es FAILED, consulte El estado de mi procesador de streaming es FAILED.

    aws rekognition describe-stream-processor --name stream-processor-name
  2. Si el procesador de streaming está en ejecución, ejecute el siguiente comando Bash o PowerShell para leer los datos de la secuencia de datos de Kinesis de salida.

    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. Utilice la herramienta Decode en el sitio web de Base64 Decode para decodificar el resultado en una cadena legible para las personas. Para obtener más información, consulte el Paso 3: Obtener el registro.

  4. Si los comandos funcionan y ve resultados de detección de rostros en la secuencia de datos de Kinesis, la solución está configurada correctamente. Si el comando da error, compruebe las otras sugerencias de solución de problemas y consulte Otorgar a Amazon Rekognition Video acceso a sus recursos.

Como alternativa, puede utilizar el esquema de AWS Lambda "kinesis-process-record" para registrar mensajes de flujo de datos de Kinesis a CloudWatch para su visualización continua. Esto implica costes adicionales para AWS Lambda y CloudWatch.

Mi procesador de streaming no está devolviendo resultados

Su procesador de streaming podría no devolver resultados por varios motivos.

Motivo 1: su procesador de streaming no está configurado correctamente

Su procesador de streaming podría no estar configurado correctamente. Para obtener más información, consulte No sé si he configurado correctamente mi procesador de streaming.

Motivo 2: Su procesador de streaming no está en el estado RUNNING

Para solucionar el estado de un procesador de streaming
  1. Compruebe el estado del procesador de streaming con el siguiente comando de AWS CLI.

    aws rekognition describe-stream-processor --name stream-processor-name
  2. Si el valor de Status es STOPPED, inicie el procesador de streaming con el siguiente comando:

    aws rekognition start-stream-processor --name stream-processor-name
  3. Si el valor de Status es FAILED, consulte El estado de mi procesador de streaming es FAILED.

  4. Si el valor de Status es STARTING, espere 2 minutos y compruebe el estado repitiendo el paso 1. Si el valor de Status sigue siendo STARTING, realice lo siguiente:

    1. Elimine el procesador de streaming con el siguiente comando.

      aws rekognition delete-stream-processor --name stream-processor-name
    2. Cree un nuevo procesador de streaming con la misma configuración. Para obtener más información, consulte Trabajar con eventos de vídeo en streaming.

    3. Si sigue teniendo problemas, póngase en contacto con AWS Support.

  5. Si el valor de Status es RUNNING, consulte Motivo 3: no hay datos activos en la transmisión de vídeo de Kinesis.

Motivo 3: no hay datos activos en la transmisión de vídeo de Kinesis

Para comprobar si hay datos activos en la transmisión de vídeo de Kinesis
  1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon Kinesis Video Streams en https://console.aws.amazon.com/kinesisvideo/.

  2. Seleccione la transmisión de vídeo de Kinesis que es la entrada para el procesador de transmisión de Amazon Rekognition.

  3. Si la vista previa indica Ningún dato en la transmisión, significa que no hay ningún dato en la transmisión de entrada para que lo procese Amazon Rekognition Video.

Para obtener información sobre la producción de vídeo con Kinesis Video Streams, consulte Kinesis Video Streams Producer Libraries.

El estado de mi procesador de streaming es FAILED

Puede comprobar el estado de un procesador de streaming mediante el siguiente comando de AWS CLI.

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

Si el valor de Status es FAILED, compruebe la información de solución de problemas de los siguientes mensajes de error.

Error: «Acceso denegado al rol»

El rol de IAM que utiliza el procesador de streaming no existe o Amazon Rekognition Video no tiene permiso para asumir el rol.

Para solucionar problemas de acceso con el rol de IAM
  1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación izquierdo, elija Roles y confirme que el rol existe.

  3. Si el rol existe, compruebe que el rol tiene la política de permisos AmazonRekognitionServiceRole.

  4. Si el rol no existe o no tiene los permiso adecuados, consulte Otorgar a Amazon Rekognition Video acceso a sus recursos.

  5. Inicie el procesador de streaming con el siguiente comando de AWS CLI.

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

Error: "Access denied to Kinesis Video (Acceso denegado a vídeo de Kinesis) o Access denied to Kinesis Data (Acceso denegado a datos de Kinesis)"

El rol no tiene acceso a las operaciones de API de Kinesis Video Streams GetMedia y GetDataEndpoint. Es posible que tampoco tenga acceso a las operaciones de API de Kinesis Data Streams PutRecord y PutRecords.

Solución de problemas de permisos de API
  1. Inicie sesión en Consola de administración de AWS y abra la consola IAM en https://console.aws.amazon.com/iam/.

  2. Abra el rol y asegúrese de que tiene la siguiente política de permisos asociada.

  3. Si falta alguno de los permisos, actualice la política. Para obtener más información, consulte Otorgar a Amazon Rekognition Video acceso a sus recursos.

Error: «a secuencia input-video-stream-name no existe»

La entrada de transmisión de vídeo de Kinesis para el procesador de streaming no existe o no está configurada correctamente.

Para solucionar problemas de la secuencia de vídeo de Kinesis
  1. Utilice el siguiente comando para confirmar que la secuencia existe.

    aws kinesisvideo list-streams
  2. Si la secuencia existe, compruebe lo siguiente.

    • El nombre de recurso de Amazon (ARN) es el mismo que el ARN de la secuencia de entrada del procesador de streaming.

    • La secuencia de vídeo de Kinesis debe encontrarse en la misma Región que el procesador de streaming.

    Si el procesador de streaming no está configurado correctamente, elimínelo con el siguiente comando de AWS CLI.

    aws rekognition delete-stream-processor --name stream-processor-name
  3. Cree un nuevo procesador de streaming con la secuencia de vídeo de Kinesis prevista. Para obtener más información, consulte Creación del procesador de flujo de búsqueda de rostros de Amazon Rekognition Video.

Error: «Colección no encontrada»

La colección de Amazon Rekognition que utiliza el procesador de streaming para comparar rostros no existe, o se está utilizando la colección equivocada.

Para confirmar la colección
  1. Utilice el siguiente comando de AWS CLI para determinar si la colección necesaria existe. Cambie region a la región de AWS en la que está ejecutando el procesador de streaming.

    aws rekognition list-collections --region region

    Si la colección necesaria no existe, cree una nueva colección y añada información de rostros. Para obtener más información, consulte Búsqueda de rostros en una colección.

  2. En la llamada a CreateStreamProcessor, compruebe que el valor del parámetro de entrada de CollectionId es correcto.

  3. Inicie el procesador de streaming con el siguiente comando de AWS CLI.

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

Error: «No se encuentra la secuencia output-kinesis-data-stream-name en la cuenta account-id»

El flujo de datos de Kinesis de salida que utiliza el procesador de streaming no existe en su Cuenta de AWS o no se encuentra en la misma Región de AWS que el procesador de streaming.

Para solucionar problemas de la secuencia de datos de Kinesis
  1. Utilice el siguiente comando de AWS CLI para determinar si existe la secuencia de datos de Kinesis. Cambie region a la Región de AWS en la que está utilizando el procesador de streaming.

    aws kinesis list-streams --region region
  2. Si la secuencia de datos de Kinesis existe, compruebe que el nombre de la secuencia de datos de Kinesis es el mismo que el nombre de la secuencia de salida que utiliza el procesador de streaming.

  3. Si la secuencia de datos de Kinesis no existe, podría existir en otra Región de AWS. La secuencia de datos de Kinesis debe encontrarse en la misma Región que el procesador de streaming.

  4. Si es necesario, cree una nueva secuencia de datos de Kinesis.

    1. Cree una secuencia de datos de Kinesis con el mismo nombre que el usado por el procesador de streaming. Para obtener más información, consulte Paso 1: Crear una secuencia de datos.

    2. Inicie el procesador de streaming con el siguiente comando de AWS CLI.

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

Mi procesador de streaming no está devolviendo los resultados esperados

Si el procesador de streaming no está devolviendo los rostros coincidentes esperados, utilice la siguiente información.