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

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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 AWS CLI comando para obtener una lista de los procesadores de flujo y su estado actual.

aws rekognition list-stream-processors

Puede obtener detalles adicionales mediante el siguiente AWS CLI comando. 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 su procesador de transmisiones está en ejecución, ejecute el siguiente PowerShell comando o Bash para leer los datos de la transmisión 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 usar el AWS Lambda plano «kinesis-process-record» para registrar los mensajes desde la transmisión de datos de Kinesis CloudWatch para una visualización continua. Esto implica costos adicionales de y. AWS Lambda 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 flujo con el siguiente AWS CLI comando.

    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 sigues teniendo problemas, ponte 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 AWS Management Console consola de Amazon Kinesis Video Streams y ábrala 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 AWS CLI comando.

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 la consola de IAM AWS Management Console y ábrala 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 tenga la política de AmazonRekognitionServiceRolepermisos.

  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 transmisión con el siguiente AWS CLI comando.

    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 la consola de IAM AWS Management Console y ábrala en https://console.aws.amazon.com/iam/.

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

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "data-arn" }, { "Effect": "Allow", "Action": [ "kinesisvideo:GetDataEndpoint", "kinesisvideo:GetMedia" ], "Resource": "video-arn" } ] }
  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: «La transmisión input-video-stream-nameno 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 transmisión no está configurado correctamente, elimínelo con el siguiente AWS CLI comando.

    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. Use el siguiente AWS CLI comando para determinar si existe la colección requerida. Cambie region a la AWS región 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 transmisión con el siguiente AWS CLI comando.

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

Error: «No se ha encontrado el output-kinesis-data-streamnombre de la transmisión en el identificador de cuenta»

La transmisión de datos de Kinesis de salida que utiliza el procesador de transmisiones no existe en su región Cuenta de AWS o no se encuentra en la misma AWS región que su procesador de transmisiones.

Para solucionar problemas de la secuencia de datos de Kinesis
  1. Utilice el siguiente AWS CLI comando para determinar si existe la transmisión de datos de Kinesis. Cambie region a la AWS región en la que utiliza el procesador de transmisiones.

    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 transmisión de datos de Kinesis no existe, puede que esté en otra AWS región. 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 transmisiones con el siguiente AWS CLI comando.

      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.