Analizar un vídeo con el AWS Command Line Interface - 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.

Analizar un vídeo con el AWS Command Line Interface

Puede usar AWS Command Line Interface (AWS CLI) para llamar a las operaciones de Amazon Rekognition Video. El patrón de diseño es el mismo que cuando se utiliza la API Amazon Rekognition Video con el AWS SDK for Java SDK de AWS u otros. Para obtener más información, consulte Descripción general de la API de Amazon Rekognition Video. Los siguientes procedimientos muestran cómo utilizarlos AWS CLI para detectar etiquetas en un vídeo.

Comienza la detección de etiquetas en un vídeo llamando a start-label-detection. Cuando Amazon Rekognition termina de analizar el vídeo, el estado de realización se envía al tema de Amazon SNS que se ha especificado en el parámetro --notification-channel de start-label-detection. Puede obtener el estado de realización suscribiendo una cola de Amazon Simple Queue Service (Amazon SQS) al tema de Amazon SNS. A continuación, sondee receive-message para obtener el estado de realización de la cola de Amazon SQS.

Al llamar a StartLabelDetection, puede filtrar los resultados proporcionando argumentos de filtrado a los argumentos LabelsInclusionFilter y/o LabelsExclusionFilter. Para obtener más información, consulte Detección de etiquetas en un vídeo.

La notificación del estado de realización es una estructura de JSON dentro de la respuesta receive-message. Tiene que extraer el JSON de la respuesta. Para obtener más información acerca del JSON del estado de realización, consulte Referencia: notificación de resultados de análisis de vídeo. Si el valor del campo Status del JSON de estado completado es SUCCEEDED, puede obtener los resultados de la solicitud de análisis llamando a get-label-detection. Al llamar a GetLabelDetection, puede ordenar y agregar los resultados devueltos utilizando los argumentos SortBy y AggregateBy.

Los siguientes procedimientos no incluyen código para sondear la cola de Amazon SQS. Además, no incluyen código para analizar el JSON que se devuelve desde la cola de Amazon SQS. Para ver un ejemplo en Java, consulte Análisis de un vídeo almacenado en un bucket de Amazon S3 con Java o Python (SDK).

Requisitos previos

Para ejecutar este procedimiento, debe tener el AWS CLI instalado. Para obtener más información, consulte Introducción a Amazon Rekognition. La cuenta de AWS que utilice debe tener permisos de acceso a la API de Amazon Rekognition. Para obtener más información, Acciones definidas por Amazon Rekognition.

Para configurar Amazon Rekognition Video y subir un vídeo
  1. Configure el acceso de los usuarios a Amazon Rekognition Video y configure el acceso de Amazon Rekognition Video a Amazon SNS. Para obtener más información, consulte Configuración de Amazon Rekognition Video.

  2. Cargue un archivo de vídeo con formato MOV o MPEG-4 en el bucket de S3. Para desarrollo y pruebas, le aconsejamos que utilice vídeos cortos con una duración inferior a 30 segundos.

    Para ver las instrucciones, consulte Carga de objetos en Amazon S3 en la Guía del usuario de Amazon Simple Storage Service.

Para detectar etiquetas en un vídeo
  1. Ejecute el siguiente AWS CLI comando para empezar a detectar etiquetas en un vídeo.

    aws rekognition start-label-detection --video '{"S3Object":{"Bucket":"bucket-name","Name":"video-name"}}' \ --notification-channel '{"SNSTopicArn":"TopicARN","RoleArn":"RoleARN"}' \ --region region-name \ --features GENERAL_LABELS \ --profile profile-name \ --settings "{"GeneralLabels":{"LabelInclusionFilters":["Car"]}}

    Actualice los siguientes valores:

    • Cambie bucketname y videofile por el nombre del bucket de Amazon S3 y el nombre de archivo que especificó en el paso 2.

    • Cambie us-east-1 por la región de AWS que está utilizando.

    • Sustituya el valor de profile_name en la línea que crea la sesión de Rekognition por el nombre de su perfil de desarrollador.

    • Reemplace TopicARN por el ARN del tema de Amazon SNS que creó en el paso 3 de Configuración de Amazon Rekognition Video.

    • Cambie RoleARN por el ARN del rol de servicio de IAM que creó en el paso 7 de Configuración de Amazon Rekognition Video.

    • Si es necesario, puede especificar la endpoint-url. La CLI de AWS debe determinar automáticamente la URL del punto de conexión adecuada en función de la región proporcionada. Sin embargo, si utiliza un punto de conexión de su VPC privada, es posible que deba especificar la endpoint-url. El recurso AWS Service Endpoints incluye la sintaxis para especificar las direcciones URL de los puntos de conexión y los nombres y códigos de cada región.

    • También puede incluir criterios de filtrado en el parámetro de configuración. Por ejemplo, puede utilizar un LabelsInclusionFilter o un LabelsExclusionFilter junto a una lista de los valores deseados.

    Si accede a la CLI en un dispositivo Windows, utilice comillas dobles en lugar de comillas simples y evite las comillas dobles internas con una barra invertida (es decir, \) para corregir cualquier error del analizador que pueda encontrar. Consulte a continuación un ejemplo:

    aws rekognition start-label-detection --video "{\"S3Object\":{\"Bucket\":\"bucket-name\",\"Name\":\"video-name\"}}" --notification-channel "{\"SNSTopicArn\":\"TopicARN\",\"RoleArn\":\"RoleARN\"}" \ --region us-east-1 --features GENERAL_LABELS --settings "{\"GeneralLabels\":{\"LabelInclusionFilters\":[\"Car\"]}}" --profile profile-name
  2. Anote el valor de JobId en la respuesta. La respuesta tiene un aspecto similar a la del siguiente ejemplo JSON.

    { "JobId": "547089ce5b9a8a0e7831afa655f42e5d7b5c838553f1a584bf350ennnnnnnnnn" }
  3. Escriba código para sondear la cola de Amazon SQS para ver el JSON del estado de realización (mediante la utilización de receive-message).

  4. Escriba código para extraer el campo Status del JSON de estado de realización.

  5. Si el valor Status esSUCCEEDED, ejecute el siguiente AWS CLI comando para mostrar los resultados de la detección de etiquetas.

    aws rekognition get-label-detection --job-id JobId \ --region us-east-1 --sort-by TIMESTAMP aggregate-by TIMESTAMPS

    Actualice los siguientes valores:

    • Cambie JobId para que coincida con el identificador de trabajo que ha anotado en el paso 2.

    • Cambie Endpoint y us-east-1 al punto de conexión y la región de AWS que está utilizando.

    Los resultados tienen un aspecto similar al JSON del siguiente ejemplo:

    { "Labels": [ { "Timestamp": 0, "Label": { "Confidence": 99.03720092773438, "Name": "Speech" } }, { "Timestamp": 0, "Label": { "Confidence": 71.6698989868164, "Name": "Pumpkin" } }, { "Timestamp": 0, "Label": { "Confidence": 71.6698989868164, "Name": "Squash" } }, { "Timestamp": 0, "Label": { "Confidence": 71.6698989868164, "Name": "Vegetable" } }, .......