

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.

# Lectura de los resultados del análisis de vídeo en streaming
<a name="streaming-video-kinesis-output"></a>

Puede utilizar la biblioteca de clientes de Amazon Kinesis Data Streams para consumir los resultados de análisis que se envían a la transmisión de salida de Amazon Kinesis Data Streams. Para obtener más información, consulte [Reading Data from a Kinesis Data Stream](https://docs.aws.amazon.com/streams/latest/dev/building-consumers.html). Amazon Rekognition Video coloca un registro de fotograma de JSON para cada fotograma analizado en la transmisión de salida de Kinesis. Amazon Rekognition Video no analiza todos los fotogramas que recibe a través de la transmisión de vídeo de Kinesis. 

Un registro de fotograma que se envía a un flujo de datos de Kinesis contiene información acerca del fragmento de flujo de datos de Kinesis en el que está el fotograma, donde está el fotograma en el fragmento y los rostros reconocidos en el fotograma. También incluye información de estado para el procesador de streaming. Para obtener más información, consulte [Descripción del registro de fotogramas de JSON para reconocimiento facial de Kinesis](streaming-video-kinesis-output-reference.md).

Amazon Kinesis Video Streams Parser Library contiene ejemplos de pruebas que consumen los resultados de Amazon Rekognition Video y los integra con la transmisión de vídeo original de Kinesis. Para obtener más información, consulte [Visualización local de los resultados de Rekognition con Kinesis Video Streams](displaying-rekognition-results-locally.md).

Amazon Rekognition Video transmite la información de análisis de Amazon Rekognition Video a los flujos de datos de Kinesis. A continuación, se muestra un ejemplo de JSON para un registro único. 

```
{
  "InputInformation": {
    "KinesisVideo": {
      "StreamArn": "arn:aws:kinesisvideo:us-west-2:nnnnnnnnnnnn:stream/stream-name",
      "FragmentNumber": "91343852333289682796718532614445757584843717598",
      "ServerTimestamp": 1510552593.455,
      "ProducerTimestamp": 1510552593.193,
      "FrameOffsetInSeconds": 2
    }
  },
  "StreamProcessorInformation": {
    "Status": "RUNNING"
  },
  "FaceSearchResponse": [
    {
      "DetectedFace": {
        "BoundingBox": {
          "Height": 0.075,
          "Width": 0.05625,
          "Left": 0.428125,
          "Top": 0.40833333
        },
        "Confidence": 99.975174,
        "Landmarks": [
          {
            "X": 0.4452057,
            "Y": 0.4395594,
            "Type": "eyeLeft"
          },
          {
            "X": 0.46340984,
            "Y": 0.43744427,
            "Type": "eyeRight"
          },
          {
            "X": 0.45960626,
            "Y": 0.4526856,
            "Type": "nose"
          },
          {
            "X": 0.44958648,
            "Y": 0.4696949,
            "Type": "mouthLeft"
          },
          {
            "X": 0.46409217,
            "Y": 0.46704912,
            "Type": "mouthRight"
          }
        ],
        "Pose": {
          "Pitch": 2.9691637,
          "Roll": -6.8904796,
          "Yaw": 23.84388
        },
        "Quality": {
          "Brightness": 40.592964,
          "Sharpness": 96.09616
        }
      },
      "MatchedFaces": [
        {
          "Similarity": 88.863960,
          "Face": {
            "BoundingBox": {
              "Height": 0.557692,
              "Width": 0.749838,
              "Left": 0.103426,
              "Top": 0.206731
            },
            "FaceId": "ed1b560f-d6af-5158-989a-ff586c931545",
            "Confidence": 99.999201,
            "ImageId": "70e09693-2114-57e1-807c-50b6d61fa4dc",
            "ExternalImageId": "matchedImage.jpeg"
          }
        }
      ]
    }
  ]
}
```

En el ejemplo de JSON, observe lo siguiente:
+ **InputInformation**— Información sobre la transmisión de vídeo de Kinesis que se utiliza para transmitir vídeo a Amazon Rekognition Video. Para obtener más información, consulte [InputInformation](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-inputinformation).
+ **StreamProcessorInformation**— Información de estado del procesador de transmisión de vídeo Amazon Rekognition Video. El único valor posible para el campo `Status` es RUNNING. Para obtener más información, consulte [StreamProcessorInformation](streaming-video-kinesis-output-reference-streamprocessorinformation.md).
+ **FaceSearchResponse**— Contiene información sobre los rostros del vídeo en streaming que coinciden con los rostros de la colección de entrada. [FaceSearchResponse](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-facesearchresponse)contiene un [DetectedFace](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-detectedface) objeto, que es un rostro que se detectó en el fotograma de vídeo analizado. Para cada rostro detectado, la matriz `MatchedFaces` contiene un matriz de objetos de rostro coincidentes ([MatchedFace](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-facematch)) encontrados en la colección de entrada, junto con una puntuación de similitud. 

## Asignación de la secuencia de vídeo de Kinesis al flujo de datos de Kinesis
<a name="mapping-streams"></a>

Es posible que desee asignar los fotogramas de transmisión de vídeo de Kinesis a los fotogramas analizados que se envían a la flujo de datos de Kinesis. Por ejemplo, durante la visualización de un vídeo de streaming, es posible que desee mostrar cuadros alrededor de los rostros de las personas reconocidas. Las coordenadas del cuadro delimitador se envían como parte del registro de reconocimiento facial de Kinesis al flujo de datos de Kinesis. Para mostrar el cuadro delimitador correctamente, debe asignar la información temporal que se envía con el registro de reconocimiento facial de Kinesis con los fotogramas correspondientes a la transmisión de vídeo de Kinesis de origen.

La técnica que utiliza para asignar la transmisión de vídeo de Kinesis a la flujo de datos de Kinesis depende de si va a transmitir medios en directo (como un vídeo de streaming en directo) o si va a transmitir medios archivados (como un vídeo almacenado).

### Asignación cuando se transmiten medios en directo
<a name="mapping-streaming-video"></a>

**Para asignar un fotograma de transmisión de vídeo de Kinesis a un fotograma de flujo de datos de Kinesis**

1. Defina el parámetro `FragmentTimeCodeType` de entrada de la [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)operación en`RELATIVE`. 

1. Llame a `PutMedia` para enviar contenido en vivo a la transmisión de vídeo de Kinesis.

1. Cuando reciba un registro del reconocimiento facial de Kinesis de los flujos de datos de Kinesis, almacene los valores de `ProducerTimestamp` y `FrameOffsetInSeconds` del campo [KinesisVideo](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo).

1. Calcule la marca temporal correspondiente al fotograma de transmisión de vídeo de Kinesis sumando los valores del campo `ProducerTimestamp` y `FrameOffsetInSeconds`. 

### Asignación cuando se transmiten medios archivados
<a name="map-stored-video"></a>

**Para asignar un fotograma de transmisión de vídeo de Kinesis a un fotograma de flujo de datos de Kinesis**

1. Llame [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)para enviar contenido multimedia archivado a la transmisión de vídeo de Kinesis.

1. Cuando reciba un objeto `Acknowledgement` de la respuesta de la operación `PutMedia`, almacene el valor del campo `FragmentNumber` del campo [Payload](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html#API_dataplane_PutMedia_ResponseSyntax). `FragmentNumber` es el número de fragmento del clúster de MKV. 

1. Cuando reciba un registro del reconocimiento facial de Kinesis de los flujos de datos de Kinesis, almacene el valor del campo `FrameOffsetInSeconds` del campo [KinesisVideo](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo). 

1. Calcule el mapeo utilizando los valores de `FrameOffsetInSeconds` y `FragmentNumber` almacenados en los pasos 2 y 3. `FrameOffsetInSeconds` es la diferencia del fragmento con el `FragmentNumber` enviado al flujo de datos de Amazon Kinesis. Para obtener más información sobre cómo obtener los fotogramas de vídeo para un número de fragmento determinado, consulte [Medios archivados de Amazon Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Operations_Amazon_Kinesis_Video_Streams_Archived_Media.html).