

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ストリーミングビデオの分析結果の読み取り
<a name="streaming-video-kinesis-output"></a>

**注記**  
ストリーミングビデオと一括イメージ分析は、新しいお客様では利用できなくなりました。詳細については、「[Amazon Rekognition 機能の可用性の変更](rekognition-availability-changes.md)」を参照してください。  
**この変更は、他の Amazon Rekognition 機能の可用性には影響しません。**

Amazon Kinesis Data Streams クライアントライブラリを使用して、Amazon Kinesis Data Streams 出力ストリームに送信された分析結果を消費することができます。詳細については、「[Kinesis Data Streams からのデータの読み取り](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 データストリームにストリーミングします。1 つのレコードの 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 顔認識レコードを受信したら、`ProducerTimestamp` フィールドから `FrameOffsetInSeconds` と [KinesisVideo](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo) の値を保存します。

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. `Acknowledgement` オペレーションの応答から `PutMedia` オブジェクトを受け取ったら、[ペイロード](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html#API_dataplane_PutMedia_ResponseSyntax) フィールドから `FragmentNumber` フィールドの値を保存します。`FragmentNumber` は、MKV クラスタークラスターのフラグメント番号です。

1. Kinesis データストリームから Kinesis 顔認識レコードを受信したら、`FrameOffsetInSeconds` フィールドから [KinesisVideo](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo) フィールドの値を保存します。

1. ステップ 2 および 3 で保存した `FrameOffsetInSeconds` および `FragmentNumber` の値を使用して、マッピングを計算します。`FrameOffsetInSeconds` はフラグメントのオフセットであり、`FragmentNumber` と共に Amazon Kinesis データストリームに送信されます。特定のフラグメント番号のビデオフレームの取得の詳細については、「[Amazon Kinesis Video Streams のアーカイブ済みメディア](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Operations_Amazon_Kinesis_Video_Streams_Archived_Media.html)」を参照してください。