Solución de problemas de streaming de vídeo - 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 streaming de vídeo

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 el 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, consultePaso 3: Obtenga el récord.

  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 Dar acceso a Amazon Rekognition Video a sus transmisiones de Kinesis.

También puede utilizar el «kinesis-process-record»AWS Lambdablueprint para registrar mensajes desde el flujo de datos de Kinesis en CloudWatch paracontinuovisualización. Esto incurre en costos adicionales paraAWS Lambday CloudWatch.

Mi procesador de streaming no está devolviendo resultados

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

Motivo1: 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 Uso de vídeos 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 inla secuencia de vídeo de Kinesis.

Motivo 3: No hay datos activos inla secuencia 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 laAWS Management Consoley abra la consola de Amazon Kinesis Video Streams enhttps://console.aws.amazon.com/kinesisvideo/.

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

  3. Si la vista previa indicaSin datos en la transmisión, a continuación, no hay ningún dato en la secuencia de entrada para que Amazon Rekognition Video lo procese.

Para obtener información acerca de la producción de vídeo con Kinesis Video Streams, consulteBibliotecas de productores de Kinesis Video Streams.

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 la AWS Management Console y abra la consola de 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 Dar acceso a Amazon Rekognition Video a sus transmisiones de Kinesis.

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

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

Error: «Acceso denegado a Kinesis VideooAcceso denegado a Kinesis Data»

La función no tiene acceso a las operaciones de API de Kinesis Video StreamsGetMediayGetDataEndpoint. Es posible que tampoco tenga acceso a las operaciones de API de Kinesis Data StreamsPutRecordyPutRecords.

Solución de problemas de permisos de API

  1. Inicie sesión en la AWS Management Console y abra la consola de 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.

    { "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 Dar acceso a Amazon Rekognition Video a sus transmisiones de Kinesis.

Error: "Streaminput-video-stream-nameno existe»

La entrada de streaming de vídeo de Kinesis en el procesador de streaming no existe o no está configurada correctamente.

Para solucionar problemas de la transmisión 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 transmisión de vídeo de Kinesis está 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 secuencias de Amazon Rekognition Video.

Error: «Colección no encontrada»

La colección Amazon Rekognition que utiliza el procesador de streaming de para comparar rostros no existe o se está utilizando una 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: «Streamoutput-kinesis-data-stream-nameen cuentaaccount-idno se encuentra»

La secuencia 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, consultePaso 1: Creación de 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.