

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 讀取串流影片分析結果
<a name="streaming-video-kinesis-output"></a>

您可以使用 Amazon Kinesis Data Streams Client Library 取用傳送至 Amazon Kinesis Data Streams 輸出串流的分析結果。如需詳細資訊，請參閱[從 Kinesis 資料串流讀取資料](https://docs.aws.amazon.com/streams/latest/dev/building-consumers.html)。Amazon Rekognition Video 會將每個已分析影格的 JSON 影格記錄放入 Kinesis 輸出串流。Amazon Rekognition Video 不會分析透過 Kinesis 影片串流傳遞給其的每個影格。

傳送至 Kinesis 資料串流的影格記錄包含有關影格所在之 Kinesis 影片串流片段、影格在片段中的位置，以及影格中已辨識之人臉的資訊。它也包含串流處理器的狀態資訊。如需詳細資訊，請參閱 [了解 Kinesis 人臉辨識 JSON 影格記錄](streaming-video-kinesis-output-reference.md)。

Amazon Kinesis Video Streams 剖析器程式庫包含範例測試，這些測試會使用 Amazon Rekognition Video 結果，並將其與原始 Kinesis 影片串流整合。如需詳細資訊，請參閱 [使用 Kinesis Video Streams 本機顯示 Rekognition 結果](displaying-rekognition-results-locally.md)。

Amazon Rekognition Video 訊將 Amazon Rekognition Video 訊分析資訊串流到 Kinesis 資料串流。以下是單一記錄的 JSON 範例。

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

在 JSON 範例中，請注意下列事項：
+ **InputInformation**：用來將影片串流到 Amazon Rekognition Video 的 Kinesis 影片串流的相關資訊。如需詳細資訊，請參閱 [InputInformation](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-inputinformation)。
+ **StreamProcessorInformation**：Amazon Rekognition Video 串流處理器的狀態資訊。唯一可用於 `Status` 欄位的值是 RUNNING。如需詳細資訊，請參閱 [StreamProcessorInformation](streaming-video-kinesis-output-reference-streamprocessorinformation.md)。
+ **FaceSearchResponse**：包含串流影片中與輸入集合中人臉相符之人臉的資訊。[FaceSearchResponse](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-facesearchresponse) 包含 [DetectedFace](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-detectedface) 物件，是在用於分析的影片影格中偵測到的人臉。對於每個偵測到的人臉，陣列 `MatchedFaces` 皆包含在輸入集合中找到之相符人臉物件的陣列 ([MatchedFace](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-facematch))，以及相似度分數。

## 將 Kinesis 影片串流對應至 Kinesis 資料串流
<a name="mapping-streams"></a>

您可能會想要將 Kinesis 影片串流影格對應至已發送至 Kinesis 資料串流的影格。例如，在串流影片顯示期間，您可能想要在已辨識的人臉周圍顯示方塊。週框方塊座標會做為 Kinesis 人臉辨識記錄的一部分傳送至 Kinesis 資料串流。若要正確顯示週框方塊，您需要將隨 Kinesis 人臉辨識記錄傳送的時間資訊，與來源 Kinesis 影片串流中相應的影格相對應。

您用來將 Kinesis 影片串流對應至 Kinesis 資料串流的技術取決於您要串流即時媒體 (例如即時串流影片)，還是要串流封存媒體 (例如已儲存影片)。

### 串流即時媒體時的對應
<a name="mapping-streaming-video"></a>

**若要將 Kinesis 影片串流影格對應至 Kinesis 資料串流影格**

1. 將 `FragmentTimeCodeType`PutMedia[ 操作的輸入參數 ](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html) 設定為 `RELATIVE`。

1. 呼叫 `PutMedia`，將即時媒體傳遞至 Kinesis 影片串流。

1. 當您從 Kinesis 資料串流收到 Kinesis 人臉辨識記錄時，請儲存來自 [KinesisVideo](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo) 欄位中 `ProducerTimestamp` 與 `FrameOffsetInSeconds` 的值。

1. 將 `ProducerTimestamp` 與 `FrameOffsetInSeconds` 欄位值相加，藉此計算對應至 Kinesis 影片串流影格的時間戳記。

### 串流封存媒體時的對應
<a name="map-stored-video"></a>

**若要將 Kinesis 影片串流影格對應至 Kinesis 資料串流影格**

1. 呼叫 [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)，將封存媒體傳遞至 Kinesis 影片串流。

1. 當您從 `PutMedia` 操作回應收到 `Acknowledgement` 物件時，請储存[承載](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html#API_dataplane_PutMedia_ResponseSyntax)欄位中的 `FragmentNumber` 欄位值。`FragmentNumber` 是 MKV 叢集的片段数目。

1. 當您從 Kinesis 資料串流收到 Kinesis 人臉辨識記錄時，請储存來自 [KinesisVideo](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo) 欄位的 `FrameOffsetInSeconds` 欄位值。

1. 使用您在步驟 2 與 3 中儲存的 `FrameOffsetInSeconds` 與 `FragmentNumber` 值來計算對應。`FrameOffsetInSeconds` 是具有特定 `FragmentNumber` 之片段的位移，其會傳送至 Amazon Kinesis Data Streams。如需取得指定片段號碼之影片影格的詳細資訊，請參閱 [Amazon Kinesis Video Streams 的已封存媒體](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Operations_Amazon_Kinesis_Video_Streams_Archived_Media.html)。