

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Lendo os resultados da análise de streaming de vídeo
<a name="streaming-video-kinesis-output"></a>

Você pode usar a biblioteca de cliente do Amazon Kinesis Data Streams para consumir os resultados da análise que são enviados para o stream de saída do Amazon Kinesis Data Streams. Para obter mais informações, consulte [Ler dados de um Kinesis Data Stream](https://docs.aws.amazon.com/streams/latest/dev/building-consumers.html). O Amazon Rekognition Video coloca um registro de quadro JSON para cada quadro analisado no stream de saída do Kinesis. O Amazon Rekognition Video não analisa cada quadro que é passado para ele pelo stream de vídeo do Kinesis. 

Um registro de quadro enviado para um fluxo de dados do Kinesis contém informações sobre em qual fragmento de stream de vídeo do Kinesis o quadro está, onde o quadro está no fragmento e faces que são reconhecidas no quadro. Ele também inclui informações de status para o processador de fluxo. Para obter mais informações, consulte [Entender o registro de quadros JSON de reconhecimento facial do Kinesis](streaming-video-kinesis-output-reference.md).

A biblioteca do Amazon Kinesis Video Streams Parser contém exemplos de testes que consomem os resultados do Amazon Rekognition Video e os integram ao stream de vídeo original do Kinesis. Para obter mais informações, consulte [Exibindo resultados do Rekognition com o Kinesis Video Streams localmente](displaying-rekognition-results-locally.md).

O Amazon Rekognition Video transmite informações de análise do Amazon Rekognition Video para o fluxo de dados do Kinesis. Veja a seguir um exemplo de JSON para um único registro. 

```
{
  "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"
          }
        }
      ]
    }
  ]
}
```

No exemplo de JSON, observe:
+ **InputInformation**— Informações sobre o stream de vídeo do Kinesis usado para transmitir vídeo para o Amazon Rekognition Video. Para obter mais informações, consulte [InputInformation](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-inputinformation).
+ **StreamProcessorInformation**— Informações de status do processador de streaming de vídeo Amazon Rekognition Video. O único valor possível para o campo `Status` é RUNNING. Para obter mais informações, consulte [StreamProcessorInformation](streaming-video-kinesis-output-reference-streamprocessorinformation.md).
+ **FaceSearchResponse**— Contém informações sobre rostos no streaming de vídeo que correspondem aos rostos na coleção de entrada. [FaceSearchResponse](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-facesearchresponse)contém um [DetectedFace](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-detectedface) objeto, que é uma face que foi detectada no quadro de vídeo analisado. Para cada face detectada, a matriz `MatchedFaces` contém uma matriz de objetos de faces correspondentes ([MatchedFace](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-facematch)) encontradas na coleção de entrada, juntamente com uma pontuação de semelhança. 

## Mapeando o stream de vídeo do Kinesis para o fluxo de dados do Kinesis
<a name="mapping-streams"></a>

Talvez você queira mapear os quadros do stream de vídeo do Kinesis para os quadros analisados que são enviados para o fluxo de dados do Kinesis. Por exemplo, durante a exibição de um streaming de vídeo, você pode querer exibir caixas ao redor das faces de pessoas reconhecidas. As coordenadas da caixa delimitadora são enviadas como parte do Registro de Reconhecimento Facial do Kinesis para o fluxo de dados do Kinesis. Para exibir a caixa delimitadora corretamente, você precisa mapear as informações de tempo enviadas com o Kinesis Face Recognition Record com os quadros correspondentes no stream de vídeo de origem do Kinesis.

A técnica usada para mapear o stream de vídeo do Kinesis para o fluxo de dados do Kinesis depende se você está transmitindo mídia ao vivo (como um vídeo ao vivo) ou se você está transmitindo mídia arquivada (como um vídeo armazenado).

### Mapeamento quando você está transmitindo mídia ao vivo
<a name="mapping-streaming-video"></a>

**Para mapear um quadro de stream de vídeo do Kinesis para um quadro de fluxo de dados do Kinesis**

1. Defina o parâmetro `FragmentTimeCodeType` de entrada da [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)operação como`RELATIVE`. 

1. Chame `PutMedia` para entregar mídia ao vivo no stream de vídeo do Kinesis.

1. Ao receber um registro de reconhecimento facial do Kinesis do fluxo de dados do Kinesis, armazene os valores de `ProducerTimestamp` e `FrameOffsetInSeconds` do campo [KinesisVideo](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo).

1. Calcule o carimbo de data/hora que corresponde ao quadro do stream de vídeo do Kinesis adicionando os valores de `FrameOffsetInSeconds` e do campo `ProducerTimestamp` juntos. 

### Mapeando quando você está transmitindo mídia arquivada
<a name="map-stored-video"></a>

**Para mapear um quadro de stream de vídeo do Kinesis para um quadro de fluxo de dados do Kinesis**

1. Ligue [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)para entregar mídia arquivada ao stream de vídeo do Kinesis.

1. Quando você receber um objeto `Acknowledgement` da resposta da operação `PutMedia`, armazene o valor do campo `FragmentNumber` do campo [Payload (Carga)](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html#API_dataplane_PutMedia_ResponseSyntax). `FragmentNumber` é o número do fragmento para o cluster do MKV. 

1. Ao receber um Kinesis Face Recognition Record do fluxo de dados do Kinesis, armazene o valor do campo `FrameOffsetInSeconds` no campo [KinesisVideo](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo). 

1. Calcule o mapeamento usando os valores `FragmentNumber` e `FrameOffsetInSeconds` que você armazenou nas etapas 2 e 3. `FrameOffsetInSeconds` é o deslocamento no fragmento com o `FragmentNumber` específico que é enviado para o fluxo de dados do Amazon Kinesis. Para obter mais informações sobre como obter os quadros de vídeo para um determinado número de fragmento, consulte Mídia arquivada do [Amazon Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Operations_Amazon_Kinesis_Video_Streams_Archived_Media.html).