

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Mencari wajah dalam koleksi dalam streaming video
<a name="collections-streaming"></a>

Anda dapat menggunakan Amazon Rekognition Video untuk mendeteksi dan mengenali wajah dari koleksi dalam video streaming. Dengan Amazon Rekognition Video Anda dapat membuat stream processor ([CreateStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html)) untuk memulai dan mengelola analisis streaming video. 

Untuk mendeteksi wajah yang dikenal dalam aliran video (pencarian wajah), Amazon Rekognition Video menggunakan Amazon Kinesis Video Streams untuk menerima dan memproses aliran video. Hasil analisis adalah output dari Amazon Rekognition Video ke aliran data Kinesis dan kemudian dibaca oleh aplikasi klien Anda. 

Untuk menggunakan Amazon Rekognition Video dengan video streaming, aplikasi Anda perlu menerapkan berikut:
+ Aliran video Kinesis untuk mengirimkan video streaming ke Amazon Rekognition Video. Untuk informasi selengkapnya, lihat [Panduan Developer Amazon Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/what-is-kinesis-video.html). 
+ Sebuah pemroses aliran Amazon Rekognition Video untuk mengelola analisis video streaming. Untuk informasi selengkapnya, lihat [Ikhtisar operasi prosesor aliran Video Rekognition Amazon](streaming-video.md#using-rekognition-video-stream-processor).
+ Pemakai aliran data Kinesis untuk membaca hasil analisis yang dikirimkan Amazon Rekognition Video ke aliran data Kinesis. Untuk informasi selengkapnya, lihat [Pemakai Kinesis Data Streams](https://docs.aws.amazon.com/streams/latest/dev/amazon-kinesis-consumers.html). 

Bagian ini berisi informasi tentang menulis aplikasi yang membuat aliran video Kinesis dan sumber daya lain yang diperlukan, mengalirkan video ke Amazon Rekognition Video, dan menerima hasil analisis.

**Topics**
+ [Mempersiapkan Amazon Rekognition Video Amazon dan sumber daya Amazon Kinesis](setting-up-your-amazon-rekognition-streaming-video-resources.md)
+ [Mencari wajah dalam video streaming](rekognition-video-stream-processor-search-faces.md)
+ [Streaming menggunakan GStreamer plugin](streaming-using-gstreamer-plugin.md)
+ [Mengatasi masalah video streaming](streaming-video-troubleshooting.md)

# Mempersiapkan Amazon Rekognition Video Amazon dan sumber daya Amazon Kinesis
<a name="setting-up-your-amazon-rekognition-streaming-video-resources"></a>

 Prosedur berikut menjelaskan langkah-langkah yang Anda ambil untuk menyediakan aliran video Kinesis dan sumber daya lain yang digunakan untuk mengenali wajah dalam video streaming.

## Prasyarat
<a name="streaming-video-prerequisites"></a>

Untuk menjalankan prosedur ini, Anda harus AWS SDK untuk Java menginstal. Untuk informasi selengkapnya, lihat [Memulai dengan Amazon Rekognition](getting-started.md). Yang Akun AWS Anda gunakan harus memiliki izin akses ke Amazon Rekognition API. Untuk informasi selengkapnya, lihat [Tindakan yang Ditetapkan oleh Amazon Rekognition](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonrekognition.html#amazonrekognition-actions-as-permissions) di *Panduan Pengguna IAM*. 

**Mengenali wajah dalam video streaming (AWS SDK)**

1. Jika belum, buat peran layanan IAM untuk memberikan akses Amazon Rekognition Video ke aliran video Kinesis dan aliran data Kinesis Anda. Perhatikan ARN. Untuk informasi selengkapnya, lihat [Memberikan akses ke aliran menggunakan AmazonRekognitionServiceRole](api-streaming-video-roles.md#api-streaming-video-roles-all-stream).

1. [Buat koleksi](create-collection-procedure.md) dan catat pengenal koleksi yang Anda gunakan.

1. [Indeks wajah](add-faces-to-collection-procedure.md) yang ingin Anda cari ke dalam koleksi yang Anda buat pada langkah 2.

1. [Buat Kinesis video streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/gs-createstream.html) dan catat Amazon Resource Name (ARN) stream tersebut.

1. [Buat aliran data Kinesis](https://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-create-stream.html). Tambahkan nama aliran dengan *AmazonRekognition*dan catat ARN aliran.

Anda kemudian dapat [membuat prosesor aliran pencarian wajah](rekognition-video-stream-processor-search-faces.md#streaming-video-creating-stream-processor) dan [memulai prosesor streaming](rekognition-video-stream-processor-search-faces.md#streaming-video-starting-stream-processor) menggunakan nama prosesor aliran yang Anda pilih.

**catatan**  
 Anda harus memulai pemroses aliran hanya setelah memverifikasi bahwa Anda dapat menyerap media ke dalam aliran video Kinesis. 

## Melakukan streaming video ke dalam Amazon Rekognition Video
<a name="video-streaming-kinesisvideostreams-stream"></a>

Untuk melakukan streaming video ke Amazon Rekognition Video, Anda menggunakan SDK Amazon Kinesis Video Streams untuk membuat dan menggunakan aliran video Kinesis. Operasi `PutMedia` menulis *fragmen* data video ke dalam aliran video Kinesis yang dipakai oleh Amazon Rekognition Video. Setiap fragmen data video biasanya berukuran 2-10 detik dan berisi urutan frame video yang sudah terisi. Amazon Rekognition Video mendukung video yang dikodekan H.264, yang dapat memiliki tiga tipe frame (I, B, dan P). Untuk informasi selengkapnya, lihat [Antar Frame](https://en.wikipedia.org/wiki/Inter_frame). Frame pertama dalam fragmen harus berupa I-frame. Sebuah I-frame dapat didekode secara terpisah dari frame lainnya. 

Saat data video masuk ke aliran video Kinesis, Kinesis Video Streams memberikan nomor unik pada fragmen tersebut. Sebagai contoh, lihat [PutMedia API Example](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/examples-putmedia.html).
+  Jika Anda streaming dari sumber yang disandikan Matroska (MKV), gunakan [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)operasi untuk mengalirkan video sumber ke aliran video Kinesis yang Anda buat. Untuk informasi selengkapnya, lihat [Contoh PutMedia API](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/examples-putmedia.html). 
+  Jika Anda melakukan streaming dari kamera perangkat, lihat [Streaming menggunakan GStreamer plugin](streaming-using-gstreamer-plugin.md).

# Memberikan Amazon Rekognition Video akses ke sumber daya Anda
<a name="api-streaming-video-roles"></a>

Anda menggunakan peran layanan AWS Identity and Access Management (IAM) untuk memberikan akses baca Video Rekognition Amazon ke aliran video Kinesis. Jika Anda menggunakan prosesor aliran penelusuran wajah, Anda menggunakan peran layanan IAM untuk memberikan akses tulis Amazon Rekognition Video ke aliran data Kinesis. Jika Anda menggunakan prosesor aliran pemantauan keamanan, Anda menggunakan peran IAM untuk memberikan akses Video Rekognition Amazon ke bucket Amazon S3 Anda dan ke topik Amazon SNS.

## Memberikan akses untuk prosesor aliran pencarian wajah
<a name="api-streaming-video-roles-single-stream"></a>

Anda dapat membuat kebijakan izin yang memungkinkan Amazon Rekognition Video mengakses aliran video Kinesis dan aliran data Kinesis individu.

**Untuk memberikan akses Video Rekognition Amazon untuk prosesor aliran pencarian wajah**

1. [ Buat kebijakan izin baru dengan editor kebijakan IAM JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor), dan gunakan kebijakan berikut. Ganti `video-arn` dengan ARN dari aliran video Kinesis yang diinginkan. Jika Anda menggunakan prosesor aliran pencarian wajah, ganti `data-arn` dengan ARN dari aliran data Kinesis yang diinginkan.

1. [Buat peran layanan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html?icmpid=docs_iam_console), atau perbarui peran layanan IAM yang ada. Gunakan informasi berikut ini untuk membuat peran layanan IAM:

   1. Pilih **Rekognition** untuk nama layanan.

   1. Pilih **Rekognition** untuk kasus penggunaan peran layanan.

   1. Lampirkan kebijakan izin yang Anda buat pada langkah 1.

1. Catat ARN peran layanan. Anda memerlukannya untuk memulai operasi analisis video.

## Memberikan akses ke aliran menggunakan AmazonRekognitionServiceRole
<a name="api-streaming-video-roles-all-stream"></a>

 Sebagai opsi alternatif untuk mengatur akses ke aliran video Kinesis dan aliran data, Anda dapat menggunakan kebijakan izin. `AmazonRekognitionServiceRole` IAM menyediakan kasus penggunaan peran layanan *Rekognition*, yang ketika digunakan dengan kebijakan izin `AmazonRekognitionServiceRole`, dapat menulis di beberapa aliran data Kinesis dan membaca dari semua aliran video Kinesis Anda. Untuk memberikan akses tulis Amazon Rekognition Video ke beberapa aliran data Kinesis, Anda dapat menambahkan nama aliran data Kinesis dengan —misalnya,. *AmazonRekognition*`AmazonRekognitionMyDataStreamName` 

**Untuk memberikan Amazon Rekognition Video akses ke aliran video Kinesis dan aliran data Kinesis**

1. [Buat peran layanan IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html?icmpid=docs_iam_console). Gunakan informasi berikut ini untuk membuat peran layanan IAM:

   1. Pilih **Rekognition** untuk nama layanan.

   1. Pilih **Rekognition** untuk kasus penggunaan peran layanan.

   1. Pilih kebijakan **AmazonRekognitionServiceRole**izin, yang memberikan akses tulis Amazon Rekognition Video ke aliran data Kinesis yang diawali dengan *AmazonRekognition*dan akses baca ke semua aliran video Kinesis Anda.

1. Untuk memastikan Anda Akun AWS aman, batasi ruang lingkup akses Rekognition hanya ke sumber daya yang Anda gunakan. Ini dapat dilakukan dengan melampirkan kebijakan kepercayaan ke peran layanan IAM Anda. Untuk informasi tentang cara melakukannya, lihat [Pencegahan "confused deputy" lintas layanan](cross-service-confused-deputy-prevention.md).

1. Catat Amazon Resource Name (ARN) dari peran layanan tersebut. Anda memerlukannya untuk memulai operasi analisis video.

# Mencari wajah dalam video streaming
<a name="rekognition-video-stream-processor-search-faces"></a>

Amazon Rekognition Video dapat mencari wajah dalam koleksi yang cocok dengan wajah yang terdeteksi dalam video streaming. Untuk informasi selengkapnya tentang koleksi, lihat [Mencari wajah dalam koleksi](collections.md).

**Topics**
+ [Membuat prosesor aliran pencarian wajah Amazon Rekognition Video](#streaming-video-creating-stream-processor)
+ [Memulai prosesor aliran pencarian wajah Amazon Rekognition Video](#streaming-video-starting-stream-processor)
+ [Menggunakan prosesor aliran untuk pencarian wajah (contoh Java V2)](#using-stream-processors-v2)
+ [Menggunakan prosesor aliran untuk pencarian wajah (contoh Java V1)](#using-stream-processors)
+ [Membaca hasil analisis video streaming](streaming-video-kinesis-output.md)
+ [Menampilkan hasil Rekognition dengan Kinesis Video Streams secara lokal](displaying-rekognition-results-locally.md)
+ [Memahami rekam bingkai JSON pengenalan wajah Kinesis](streaming-video-kinesis-output-reference.md)

Diagram berikut menunjukkan bagaimana Amazon Rekognition Video mendeteksi dan mengenali wajah dalam video streaming.

![\[Diagram alur kerja untuk menggunakan Amazon Rekognition Video untuk memproses aliran video dari Amazon Kinesis.\]](http://docs.aws.amazon.com/id_id/rekognition/latest/dg/images/VideoRekognitionStream.png)


## Membuat prosesor aliran pencarian wajah Amazon Rekognition Video
<a name="streaming-video-creating-stream-processor"></a>

Sebelum Anda dapat menganalisis video streaming, Anda membuat pemroses aliran Amazon Rekognition Video ([CreateStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html)). Pemroses aliran berisi informasi tentang aliran data Kinesis dan aliran video Kinesis. Ini juga berisi pengenal untuk koleksi yang berisi wajah yang ingin Anda kenali dalam video streaming input. Anda juga menentukan nama untuk pemroses aliran. Berikut ini adalah contoh JSON untuk permintaan `CreateStreamProcessor`.

```
{
       "Name": "streamProcessorForCam",
       "Input": {
              "KinesisVideoStream": {
                     "Arn": "arn:aws:kinesisvideo:us-east-1:nnnnnnnnnnnn:stream/inputVideo"
              }
       },
       "Output": {
              "KinesisDataStream": {
                     "Arn": "arn:aws:kinesis:us-east-1:nnnnnnnnnnnn:stream/outputData"
              }
       },
       "RoleArn": "arn:aws:iam::nnnnnnnnnnn:role/roleWithKinesisPermission",
       "Settings": {
              "FaceSearch": {
                     "CollectionId": "collection-with-100-faces",
                     "FaceMatchThreshold": 85.5
              }
       }
}
```

Berikut ini adalah contoh respons dari `CreateStreamProcessor`.

```
{
       “StreamProcessorArn”: “arn:aws:rekognition:us-east-1:nnnnnnnnnnnn:streamprocessor/streamProcessorForCam”
}
```

## Memulai prosesor aliran pencarian wajah Amazon Rekognition Video
<a name="streaming-video-starting-stream-processor"></a>

Anda mulai menganalisis streaming video dengan memanggil [StartStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartStreamProcessor.html) dengan nama pemroses aliran yang Anda tentukan di `CreateStreamProcessor`. Berikut ini adalah contoh JSON untuk permintaan `StartStreamProcessor`.

```
{
       "Name": "streamProcessorForCam"
}
```

Jika pemroses aliran berhasil dimulai, respons HTTP 200 diberikan, bersama dengan body JSON yang kosong.

## Menggunakan prosesor aliran untuk pencarian wajah (contoh Java V2)
<a name="using-stream-processors-v2"></a>

Kode contoh berikut menunjukkan cara memanggil berbagai operasi prosesor aliran, seperti [CreateStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html)dan [StartStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartStreamProcessor.html), menggunakan AWS SDK for Java versi 2.

Kode ini diambil dari GitHub repositori contoh SDK AWS Dokumentasi. Lihat contoh lengkapnya [di sini](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/rekognition/src/main/java/com/example/rekognition/CreateStreamProcessor.java).

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.rekognition.RekognitionClient;
import software.amazon.awssdk.services.rekognition.model.CreateStreamProcessorRequest;
import software.amazon.awssdk.services.rekognition.model.CreateStreamProcessorResponse;
import software.amazon.awssdk.services.rekognition.model.FaceSearchSettings;
import software.amazon.awssdk.services.rekognition.model.KinesisDataStream;
import software.amazon.awssdk.services.rekognition.model.KinesisVideoStream;
import software.amazon.awssdk.services.rekognition.model.ListStreamProcessorsRequest;
import software.amazon.awssdk.services.rekognition.model.ListStreamProcessorsResponse;
import software.amazon.awssdk.services.rekognition.model.RekognitionException;
import software.amazon.awssdk.services.rekognition.model.StreamProcessor;
import software.amazon.awssdk.services.rekognition.model.StreamProcessorInput;
import software.amazon.awssdk.services.rekognition.model.StreamProcessorSettings;
import software.amazon.awssdk.services.rekognition.model.StreamProcessorOutput;
import software.amazon.awssdk.services.rekognition.model.StartStreamProcessorRequest;
import software.amazon.awssdk.services.rekognition.model.DescribeStreamProcessorRequest;
import software.amazon.awssdk.services.rekognition.model.DescribeStreamProcessorResponse;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 * <p>
 * For more information, see the following documentation topic:
 * <p>
 * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html
 */
public class CreateStreamProcessor {
    public static void main(String[] args) {
        final String usage = """
                
                Usage:    <role> <kinInputStream> <kinOutputStream> <collectionName> <StreamProcessorName>
                
                Where:
                   role - The ARN of the AWS Identity and Access Management (IAM) role to use. \s
                   kinInputStream - The ARN of the Kinesis video stream.\s
                   kinOutputStream - The ARN of the Kinesis data stream.\s
                   collectionName - The name of the collection to use that contains content. \s
                   StreamProcessorName - The name of the Stream Processor. \s
                """;

        if (args.length != 5) {
            System.out.println(usage);
            System.exit(1);
        }

        String role = args[0];
        String kinInputStream = args[1];
        String kinOutputStream = args[2];
        String collectionName = args[3];
        String streamProcessorName = args[4];

        Region region = Region.US_EAST_1;
        RekognitionClient rekClient = RekognitionClient.builder()
                .region(region)
                .build();

        processCollection(rekClient, streamProcessorName, kinInputStream, kinOutputStream, collectionName,
                role);
        startSpecificStreamProcessor(rekClient, streamProcessorName);
        listStreamProcessors(rekClient);
        describeStreamProcessor(rekClient, streamProcessorName);
        deleteSpecificStreamProcessor(rekClient, streamProcessorName);
    }

    public static void listStreamProcessors(RekognitionClient rekClient) {
        ListStreamProcessorsRequest request = ListStreamProcessorsRequest.builder()
                .maxResults(15)
                .build();

        ListStreamProcessorsResponse listStreamProcessorsResult = rekClient.listStreamProcessors(request);
        for (StreamProcessor streamProcessor : listStreamProcessorsResult.streamProcessors()) {
            System.out.println("StreamProcessor name - " + streamProcessor.name());
            System.out.println("Status - " + streamProcessor.status());
        }
    }

    private static void describeStreamProcessor(RekognitionClient rekClient, String StreamProcessorName) {
        DescribeStreamProcessorRequest streamProcessorRequest = DescribeStreamProcessorRequest.builder()
                .name(StreamProcessorName)
                .build();

        DescribeStreamProcessorResponse describeStreamProcessorResult = rekClient
                .describeStreamProcessor(streamProcessorRequest);
        System.out.println("Arn - " + describeStreamProcessorResult.streamProcessorArn());
        System.out.println("Input kinesisVideo stream - "
                + describeStreamProcessorResult.input().kinesisVideoStream().arn());
        System.out.println("Output kinesisData stream - "
                + describeStreamProcessorResult.output().kinesisDataStream().arn());
        System.out.println("RoleArn - " + describeStreamProcessorResult.roleArn());
        System.out.println(
                "CollectionId - "
                        + describeStreamProcessorResult.settings().faceSearch().collectionId());
        System.out.println("Status - " + describeStreamProcessorResult.status());
        System.out.println("Status message - " + describeStreamProcessorResult.statusMessage());
        System.out.println("Creation timestamp - " + describeStreamProcessorResult.creationTimestamp());
        System.out.println("Last update timestamp - " + describeStreamProcessorResult.lastUpdateTimestamp());
    }

    private static void startSpecificStreamProcessor(RekognitionClient rekClient, String StreamProcessorName) {
        try {
            StartStreamProcessorRequest streamProcessorRequest = StartStreamProcessorRequest.builder()
                    .name(StreamProcessorName)
                    .build();

            rekClient.startStreamProcessor(streamProcessorRequest);
            System.out.println("Stream Processor " + StreamProcessorName + " started.");

        } catch (RekognitionException e) {
            System.out.println(e.getMessage());
            System.exit(1);
        }
    }

    private static void processCollection(RekognitionClient rekClient, String StreamProcessorName,
                                          String kinInputStream, String kinOutputStream, String collectionName, String role) {
        try {
            KinesisVideoStream videoStream = KinesisVideoStream.builder()
                    .arn(kinInputStream)
                    .build();

            KinesisDataStream dataStream = KinesisDataStream.builder()
                    .arn(kinOutputStream)
                    .build();

            StreamProcessorOutput processorOutput = StreamProcessorOutput.builder()
                    .kinesisDataStream(dataStream)
                    .build();

            StreamProcessorInput processorInput = StreamProcessorInput.builder()
                    .kinesisVideoStream(videoStream)
                    .build();

            FaceSearchSettings searchSettings = FaceSearchSettings.builder()
                    .faceMatchThreshold(75f)
                    .collectionId(collectionName)
                    .build();

            StreamProcessorSettings processorSettings = StreamProcessorSettings.builder()
                    .faceSearch(searchSettings)
                    .build();

            CreateStreamProcessorRequest processorRequest = CreateStreamProcessorRequest.builder()
                    .name(StreamProcessorName)
                    .input(processorInput)
                    .output(processorOutput)
                    .roleArn(role)
                    .settings(processorSettings)
                    .build();

            CreateStreamProcessorResponse response = rekClient.createStreamProcessor(processorRequest);
            System.out.println("The ARN for the newly create stream processor is "
                    + response.streamProcessorArn());

        } catch (RekognitionException e) {
            System.out.println(e.getMessage());
            System.exit(1);
        }
    }

    private static void deleteSpecificStreamProcessor(RekognitionClient rekClient, String StreamProcessorName) {
        rekClient.stopStreamProcessor(a -> a.name(StreamProcessorName));
        rekClient.deleteStreamProcessor(a -> a.name(StreamProcessorName));
        System.out.println("Stream Processor " + StreamProcessorName + " deleted.");
    }
}
```

## Menggunakan prosesor aliran untuk pencarian wajah (contoh Java V1)
<a name="using-stream-processors"></a>

Kode contoh berikut menunjukkan cara memanggil berbagai operasi pemroses aliran, seperti [CreateStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html) dan [StartStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartStreamProcessor.html), menggunakan Java V1. Contoh ini mencakup kelas manajer prosesor aliran (StreamManager) yang menyediakan metode untuk memanggil operasi prosesor aliran. Kelas starter (Starter) membuat StreamManager objek dan memanggil berbagai operasi. 

**Untuk mengonfigurasi contoh:**

1. Atur nilai bidang anggota kelas Starter dengan nilai yang Anda inginkan.

1. Dalam fungsi kelas Starter `main`, batalkan komentar panggilan fungsi yang diinginkan.

### Kelas Starter
<a name="streaming-started"></a>

```
//Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
//PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)

// Starter class. Use to create a StreamManager class
// and call stream processor operations.
package com.amazonaws.samples;
import com.amazonaws.samples.*;

public class Starter {

	public static void main(String[] args) {
		
		
    	String streamProcessorName="Stream Processor Name";
    	String kinesisVideoStreamArn="Kinesis Video Stream Arn";
    	String kinesisDataStreamArn="Kinesis Data Stream Arn";
    	String roleArn="Role Arn";
    	String collectionId="Collection ID";
    	Float matchThreshold=50F;

		try {
			StreamManager sm= new StreamManager(streamProcessorName,
					kinesisVideoStreamArn,
					kinesisDataStreamArn,
					roleArn,
					collectionId,
					matchThreshold);
			//sm.createStreamProcessor();
			//sm.startStreamProcessor();
			//sm.deleteStreamProcessor();
			//sm.deleteStreamProcessor();
			//sm.stopStreamProcessor();
			//sm.listStreamProcessors();
			//sm.describeStreamProcessor();
		}
		catch(Exception e){
			System.out.println(e.getMessage());
		}
	}
}
```

### StreamManager kelas
<a name="streaming-manager"></a>

```
//Copyright 2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
//PDX-License-Identifier: MIT-0 (For details, see https://github.com/awsdocs/amazon-rekognition-developer-guide/blob/master/LICENSE-SAMPLECODE.)

// Stream manager class. Provides methods for calling
// Stream Processor operations.
package com.amazonaws.samples;

import com.amazonaws.services.rekognition.AmazonRekognition;
import com.amazonaws.services.rekognition.AmazonRekognitionClientBuilder;
import com.amazonaws.services.rekognition.model.CreateStreamProcessorRequest;
import com.amazonaws.services.rekognition.model.CreateStreamProcessorResult;
import com.amazonaws.services.rekognition.model.DeleteStreamProcessorRequest;
import com.amazonaws.services.rekognition.model.DeleteStreamProcessorResult;
import com.amazonaws.services.rekognition.model.DescribeStreamProcessorRequest;
import com.amazonaws.services.rekognition.model.DescribeStreamProcessorResult;
import com.amazonaws.services.rekognition.model.FaceSearchSettings;
import com.amazonaws.services.rekognition.model.KinesisDataStream;
import com.amazonaws.services.rekognition.model.KinesisVideoStream;
import com.amazonaws.services.rekognition.model.ListStreamProcessorsRequest;
import com.amazonaws.services.rekognition.model.ListStreamProcessorsResult;
import com.amazonaws.services.rekognition.model.StartStreamProcessorRequest;
import com.amazonaws.services.rekognition.model.StartStreamProcessorResult;
import com.amazonaws.services.rekognition.model.StopStreamProcessorRequest;
import com.amazonaws.services.rekognition.model.StopStreamProcessorResult;
import com.amazonaws.services.rekognition.model.StreamProcessor;
import com.amazonaws.services.rekognition.model.StreamProcessorInput;
import com.amazonaws.services.rekognition.model.StreamProcessorOutput;
import com.amazonaws.services.rekognition.model.StreamProcessorSettings;

public class StreamManager {

    private String streamProcessorName;
    private String kinesisVideoStreamArn;
    private String kinesisDataStreamArn;
    private String roleArn;
    private String collectionId;
    private float matchThreshold;

    private AmazonRekognition rekognitionClient;
    

    public StreamManager(String spName,
    		String kvStreamArn,
    		String kdStreamArn,
    		String iamRoleArn,
    		String collId,
    		Float threshold){
    	streamProcessorName=spName;
    	kinesisVideoStreamArn=kvStreamArn;
    	kinesisDataStreamArn=kdStreamArn;
    	roleArn=iamRoleArn;
    	collectionId=collId;
    	matchThreshold=threshold;
    	rekognitionClient=AmazonRekognitionClientBuilder.defaultClient();
    	
    }
    
    public void createStreamProcessor() {
    	//Setup input parameters
        KinesisVideoStream kinesisVideoStream = new KinesisVideoStream().withArn(kinesisVideoStreamArn);
        StreamProcessorInput streamProcessorInput =
                new StreamProcessorInput().withKinesisVideoStream(kinesisVideoStream);
        KinesisDataStream kinesisDataStream = new KinesisDataStream().withArn(kinesisDataStreamArn);
        StreamProcessorOutput streamProcessorOutput =
                new StreamProcessorOutput().withKinesisDataStream(kinesisDataStream);
        FaceSearchSettings faceSearchSettings =
                new FaceSearchSettings().withCollectionId(collectionId).withFaceMatchThreshold(matchThreshold);
        StreamProcessorSettings streamProcessorSettings =
                new StreamProcessorSettings().withFaceSearch(faceSearchSettings);

        //Create the stream processor
        CreateStreamProcessorResult createStreamProcessorResult = rekognitionClient.createStreamProcessor(
                new CreateStreamProcessorRequest().withInput(streamProcessorInput).withOutput(streamProcessorOutput)
                        .withSettings(streamProcessorSettings).withRoleArn(roleArn).withName(streamProcessorName));

        //Display result
        System.out.println("Stream Processor " + streamProcessorName + " created.");
        System.out.println("StreamProcessorArn - " + createStreamProcessorResult.getStreamProcessorArn());
    }

    public void startStreamProcessor() {
        StartStreamProcessorResult startStreamProcessorResult =
                rekognitionClient.startStreamProcessor(new StartStreamProcessorRequest().withName(streamProcessorName));
        System.out.println("Stream Processor " + streamProcessorName + " started.");
    }

    public void stopStreamProcessor() {
        StopStreamProcessorResult stopStreamProcessorResult =
                rekognitionClient.stopStreamProcessor(new StopStreamProcessorRequest().withName(streamProcessorName));
        System.out.println("Stream Processor " + streamProcessorName + " stopped.");
    }

    public void deleteStreamProcessor() {
        DeleteStreamProcessorResult deleteStreamProcessorResult = rekognitionClient
                .deleteStreamProcessor(new DeleteStreamProcessorRequest().withName(streamProcessorName));
        System.out.println("Stream Processor " + streamProcessorName + " deleted.");
    }

    public void describeStreamProcessor() {
        DescribeStreamProcessorResult describeStreamProcessorResult = rekognitionClient
                .describeStreamProcessor(new DescribeStreamProcessorRequest().withName(streamProcessorName));

        //Display various stream processor attributes.
        System.out.println("Arn - " + describeStreamProcessorResult.getStreamProcessorArn());
        System.out.println("Input kinesisVideo stream - "
                + describeStreamProcessorResult.getInput().getKinesisVideoStream().getArn());
        System.out.println("Output kinesisData stream - "
                + describeStreamProcessorResult.getOutput().getKinesisDataStream().getArn());
        System.out.println("RoleArn - " + describeStreamProcessorResult.getRoleArn());
        System.out.println(
                "CollectionId - " + describeStreamProcessorResult.getSettings().getFaceSearch().getCollectionId());
        System.out.println("Status - " + describeStreamProcessorResult.getStatus());
        System.out.println("Status message - " + describeStreamProcessorResult.getStatusMessage());
        System.out.println("Creation timestamp - " + describeStreamProcessorResult.getCreationTimestamp());
        System.out.println("Last update timestamp - " + describeStreamProcessorResult.getLastUpdateTimestamp());
    }

    public void listStreamProcessors() {
        ListStreamProcessorsResult listStreamProcessorsResult =
                rekognitionClient.listStreamProcessors(new ListStreamProcessorsRequest().withMaxResults(100));

        //List all stream processors (and state) returned from Rekognition
        for (StreamProcessor streamProcessor : listStreamProcessorsResult.getStreamProcessors()) {
            System.out.println("StreamProcessor name - " + streamProcessor.getName());
            System.out.println("Status - " + streamProcessor.getStatus());
        }
    }
}
```

# Membaca hasil analisis video streaming
<a name="streaming-video-kinesis-output"></a>

Anda dapat menggunakan Pustaka Klien Amazon Kinesis Data Streams untuk memakai hasil analisis yang dikirim ke aliran output Amazon Kinesis Data Streams. Untuk informasi selengkapnya, lihat [Membaca Data dari Aliran Data Kinesis](https://docs.aws.amazon.com/streams/latest/dev/building-consumers.html). Amazon Rekognition Video menempatkan catatan frame JSON untuk setiap frame yang dianalisis ke dalam aliran output Kinesis. Amazon Rekognition Video tidak menganalisis setiap frame yang diteruskan melalui aliran video Kinesis. 

Catatan frame yang dikirim ke aliran data Kinesis berisi informasi tentang di fragmen aliran video Kinesis mana frame berada, lokasi frame berada dalam fragment, dan wajah yang dikenali dalam frame. Hal ini juga mencakup informasi status untuk pemroses aliran. Untuk informasi selengkapnya, lihat [Memahami rekam bingkai JSON pengenalan wajah Kinesis](streaming-video-kinesis-output-reference.md).

Pustaka Parser Amazon Kinesis Video Streams berisi contoh uji yang memakai hasil Amazon Rekognition Video dan mengintegrasikannya dengan aliran video Kinesis asli. Untuk informasi selengkapnya, lihat [Menampilkan hasil Rekognition dengan Kinesis Video Streams secara lokal](displaying-rekognition-results-locally.md).

Amazon Rekognition Video mengalirkan informasi analisis Amazon Rekognition Video ke aliran data Kinesis. Berikut ini adalah contoh JSON untuk satu catatan. 

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

Dalam contoh JSON, catat hal berikut:
+ **InputInformation**— Informasi tentang aliran video Kinesis yang digunakan untuk mengalirkan video ke Amazon Rekognition Video. Untuk informasi selengkapnya, lihat [InputInformation](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-inputinformation).
+ **StreamProcessorInformation**— Informasi status untuk prosesor aliran Video Rekognition Amazon. Satu-satunya nilai yang mungkin untuk bidang `Status` adalah BERJALAN. Untuk informasi selengkapnya, lihat [StreamProcessorInformation](streaming-video-kinesis-output-reference-streamprocessorinformation.md).
+ **FaceSearchResponse**— Berisi informasi tentang wajah dalam video streaming yang cocok dengan wajah dalam koleksi input. [FaceSearchResponse](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-facesearchresponse)berisi [DetectedFace](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-detectedface) objek, yang merupakan wajah yang terdeteksi dalam bingkai video yang dianalisis. Untuk setiap wajah yang terdeteksi, array `MatchedFaces` berisi array objek wajah yang cocok ([MatchedFace](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-facematch)) yang ditemukan dalam koleksi masukan, bersama dengan skor kesamaan. 

## Memetakan aliran video Kinesis ke aliran data Kinesis
<a name="mapping-streams"></a>

Anda mungkin ingin memetakan frame aliran video Kinesis ke frame yang dianalisis yang dikirim ke aliran data Kinesis. Misalnya, selama tampilan video streaming, Anda mungkin ingin menampilkan kotak-kotak di sekitar wajah orang yang dikenal. Koordinat kotak batas dikirim sebagai bagian dari Catatan Pengenal Wajah Kinesis ke aliran data Kinesis. Untuk menampilkan kotak pembatas dengan benar, Anda perlu memetakan informasi waktu yang dikirim dengan Catatan Pengenalan Wajah Kinesis dengan frame yang sesuai dalam aliran video Kinesis sumber.

Teknik yang Anda gunakan untuk memetakan aliran video Kinesis ke aliran data Kinesis tergantung pada apakah Anda sedang melakukan streaming media langsung (seperti video streaming langsung), atau jika Anda sedang melakukan streaming media yang diarsipkan (seperti video yang tersimpan).

### Pemetaan saat Anda melakukan streaming media langsung
<a name="mapping-streaming-video"></a>

**Untuk memetakan frame aliran video Kinesis ke frame aliran data Kinesis**

1. Atur parameter `FragmentTimeCodeType` input [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)operasi ke`RELATIVE`. 

1. Panggil `PutMedia` untuk mengirimkan media langsung ke dalam aliran video Kinesis.

1. Saat Anda menerima Catatan Pengenalan Wajah Kinesis dari aliran data Kinesis, simpan nilai `ProducerTimestamp` dan `FrameOffsetInSeconds` dari bidang [KinesisVideo](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo).

1. Hitung stempel waktu yang sesuai dengan frame aliran video Kinesis dengan menambahkan nilai bidang `ProducerTimestamp` dan `FrameOffsetInSeconds` bersama-sama. 

### Pemetaan saat Anda melakukan streaming media yang diarsipkan
<a name="map-stored-video"></a>

**Untuk memetakan frame aliran video Kinesis ke frame aliran data Kinesis**

1. Panggilan [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html)untuk mengirimkan media yang diarsipkan ke dalam aliran video Kinesis.

1. Ketika Anda menerima objek `Acknowledgement` dari respons operasi `PutMedia`, simpan nilai bidang `FragmentNumber` dari bidang [Muatan](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html#API_dataplane_PutMedia_ResponseSyntax) . `FragmentNumber` adalah nomor fragmen untuk klaster MKV. 

1. Saat Anda menerima Catatan Pengenalan Wajah Kinesis dari aliran data Kinesis, simpan nilai bidang `FrameOffsetInSeconds` dari bidang [KinesisVideo](streaming-video-kinesis-output-reference.md#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo). 

1. Hitung pemetaan dengan menggunakan nilai-nilai `FrameOffsetInSeconds` dan `FragmentNumber` yang Anda disimpan dalam langkah 2 dan 3. `FrameOffsetInSeconds` adalah offset ke dalam fragmen dengan `FragmentNumber` khusus yang dikirim ke aliran data Amazon Kinesis. Untuk informasi selengkapnya tentang mendapatkan frame video untuk nomor fragmen tertentu, lihat [Media Amazon Kinesis Video Streams yang Diarsipkan](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_Operations_Amazon_Kinesis_Video_Streams_Archived_Media.html).

# Menampilkan hasil Rekognition dengan Kinesis Video Streams secara lokal
<a name="displaying-rekognition-results-locally"></a>

 [Anda dapat melihat hasil Video Rekognition Amazon yang ditampilkan di feed Anda dari Amazon Kinesis Video Streams menggunakan contoh pengujian Perpustakaan Pengurai Video Kinesis Amazon Kinesis yang disediakan di - Contoh Rekognition. KinesisVideo ](https://github.com/aws/amazon-kinesis-video-streams-parser-library#kinesisvideo---rekognition-examples) `KinesisVideoRekognitionIntegrationExample`Menampilkan kotak pembatas di atas wajah yang terdeteksi dan membuat video secara lokal. JFrame Sebelum menjalankan proses ini, pastikan Anda telah berhasil menghubungkan input media dari kamera perangkat ke aliran video Kinesis dan memulai Pemroses Aliran Amazon Rekognition. Untuk informasi selengkapnya, lihat [Streaming menggunakan GStreamer plugin](streaming-using-gstreamer-plugin.md). 

## Langkah 1: Memasang Pustaka Parser Kinesis Video Streams
<a name="step-1-install-parser-library"></a>

 Untuk membuat direktori dan mengunduh repositori Github, jalankan perintah berikut: 

```
$ git clone https://github.com/aws/amazon-kinesis-video-streams-parser-library.git
```

 Arahkan ke direktori pustaka dan jalankan perintah Maven berikut untuk melakukan instalasi bersih: 

```
$ mvn clean install
```

## Langkah 2: Mengonfigurasi uji contoh Kinesis Video Streams dan Rekognition
<a name="step-2-configure-kinesis-video-rekognition-example-test"></a>

 Buka file `KinesisVideoRekognitionIntegrationExampleTest.java`. Hapus `@Ignore` tepat setelah header kelas. Isi kolom data dengan informasi dari sumber daya Amazon Kinesis dan Amazon Rekognition Anda. Untuk informasi selengkapnya, lihat [Mempersiapkan Amazon Rekognition Video Amazon dan sumber daya Amazon Kinesis](setting-up-your-amazon-rekognition-streaming-video-resources.md). Jika Anda melakukan streaming video ke aliran video Kinesis Anda, hapus parameter `inputStream`. 

 Lihat contoh kode berikut ini: 

```
RekognitionInput rekognitionInput = RekognitionInput.builder()
  .kinesisVideoStreamArn("arn:aws:kinesisvideo:us-east-1:123456789012:stream/rekognition-test-video-stream")
  .kinesisDataStreamArn("arn:aws:kinesis:us-east-1:123456789012:stream/AmazonRekognition-rekognition-test-data-stream")
  .streamingProcessorName("rekognition-test-stream-processor")
  // Refer how to add face collection :
  // https://docs.aws.amazon.com/rekognition/latest/dg/add-faces-to-collection-procedure.html
  .faceCollectionId("rekognition-test-face-collection")
  .iamRoleArn("rekognition-test-IAM-role")
  .matchThreshold(0.95f)
  .build();                
            
KinesisVideoRekognitionIntegrationExample example = KinesisVideoRekognitionIntegrationExample.builder()
  .region(Regions.US_EAST_1)
  .kvsStreamName("rekognition-test-video-stream")
  .kdsStreamName("AmazonRekognition-rekognition-test-data-stream")
  .rekognitionInput(rekognitionInput)
  .credentialsProvider(new ProfileCredentialsProvider())
  // NOTE: Comment out or delete the inputStream parameter if you are streaming video, otherwise
  // the test will use a sample video. 
  //.inputStream(TestResourceUtil.getTestInputStream("bezos_vogels.mkv"))
  .build();
```

## Langkah 3: Menjalankan uji contoh integrasi Kinesis Video Streams dan Rekognition
<a name="step-3-run-kinesis-video-rekognition-example-test"></a>

 Pastikan aliran video Kinesis Anda menerima input media jika Anda melakukan streaming dan mulai menganalisis streaming Anda dengan Pemroses Aliran Amazon Rekognition Video yang berjalan. Untuk informasi selengkapnya, lihat [Ikhtisar operasi prosesor aliran Video Rekognition Amazon](streaming-video.md#using-rekognition-video-stream-processor). Jalankan `KinesisVideoRekognitionIntegrationExampleTest` kelas sebagai JUnit ujian. Setelah tertunda beberapa saat, jendela baru akan terbuka dengan umpan video dari aliran video Kinesis dengan kotak batas yang ditarik ke wajah yang terdeteksi. 

**catatan**  
 Wajah dalam koleksi yang digunakan dalam contoh ini harus memiliki Id Gambar Eksternal (nama file) yang ditentukan dalam format ini agar label kotak pembatas menampilkan teks yang bermakna: PersonName 1-Tepercaya, PersonName 2-Penyusup, 3-Netral, dll. PersonName Label juga dapat diberi kode warna dan dapat disesuaikan dalam file.java. FaceType 

# Memahami rekam bingkai JSON pengenalan wajah Kinesis
<a name="streaming-video-kinesis-output-reference"></a>

Amazon Rekognition Video dapat mengenali wajah dalam video streaming. Untuk setiap frame yang dianalisis, Amazon Rekognition Video menghasilkan catatan frame JSON ke aliran data Kinesis. Amazon Rekognition Video tidak menganalisis setiap frame yang diteruskan melalui aliran video Kinesis. 

Catatan frame JSON berisi informasi tentang input dan output stream, status pemroses aliran, dan informasi tentang wajah yang diakui dalam frame yang dianalisis. Bagian ini berisi informasi referensi untuk catatan bingkai JSON.

Berikut ini adalah sintaksis JSON untuk catatan aliran data Kinesis. Untuk informasi selengkapnya, lihat [Bekerja dengan acara video streaming](streaming-video.md).

**catatan**  
API Amazon Rekognition Video bekerja dengan membandingkan wajah di input aliran Anda dengan koleksi wajah, dan memberikan hasil wajah yang paling cocok yang ditemukan, bersama dengan skor kesamaan.

```
{
    "InputInformation": {
        "KinesisVideo": {
            "StreamArn": "string",
            "FragmentNumber": "string",
            "ProducerTimestamp": number,
            "ServerTimestamp": number,
            "FrameOffsetInSeconds": number
        }
    },
    "StreamProcessorInformation": {
        "Status": "RUNNING"
    },
    "FaceSearchResponse": [
        {
            "DetectedFace": {
                "BoundingBox": {
                    "Width": number,
                    "Top": number,
                    "Height": number,
                    "Left": number
                },
                "Confidence": number,
                "Landmarks": [
                    {
                        "Type": "string",
                        "X": number,
                        "Y": number
                    }
                ],
                "Pose": {
                    "Pitch": number,
                    "Roll": number,
                    "Yaw": number
                },
                "Quality": {
                    "Brightness": number,
                    "Sharpness": number
                }
            },
            "MatchedFaces": [
                {
                    "Similarity": number,
                    "Face": {
                        "BoundingBox": {
                            "Width": number,
                            "Top": number,
                            "Height": number,
                            "Left": number
                        },
                        "Confidence": number,
                        "ExternalImageId": "string",
                        "FaceId": "string",
                        "ImageId": "string"
                    }
                }
            ]
        }
    ]
}
```

## Catatan JSON
<a name="streaming-video-kinesis-output-reference-processorresult"></a>

Catatan JSON mencakup informasi tentang frame yang diproses oleh Amazon Rekognition Video. Catatan tersebut mencakup informasi tentang video streaming tersebut, status frame yang dianalisis, dan informasi tentang wajah yang dikenali dalam frame.

**InputInformation**

Informasi tentang aliran video Kinesis yang digunakan untuk melakukan streaming video ke Amazon Rekognition Video.

Tipe: Objek [InputInformation](#streaming-video-kinesis-output-reference-inputinformation)

**StreamProcessorInformation**

Informasi tentang pemroses aliran Amazon Rekognition Video. Ini termasuk informasi status untuk status pemroses aliran saat ini.

Tipe: Objek [StreamProcessorInformation](streaming-video-kinesis-output-reference-streamprocessorinformation.md) 

**FaceSearchResponse**

Informasi tentang wajah yang terdeteksi dalam frame video streaming dan wajah paling cocok yang ditemukan dalam koleksi input.

Tipe: Array objek [FaceSearchResponse](#streaming-video-kinesis-output-reference-facesearchresponse)

## InputInformation
<a name="streaming-video-kinesis-output-reference-inputinformation"></a>

Informasi tentang aliran video sumber yang digunakan oleh Amazon Rekognition Video. Untuk informasi selengkapnya, lihat [Bekerja dengan acara video streaming](streaming-video.md).

**KinesisVideo**

Tipe: Objek [KinesisVideo](#streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo)

## KinesisVideo
<a name="streaming-video-kinesis-output-reference-kinesisvideostreams-kinesisvideo"></a>

Informasi tentang aliran video Kinesis yang mengalirkan video sumber ke Amazon Rekognition Video. Untuk informasi selengkapnya, lihat [Bekerja dengan acara video streaming](streaming-video.md).

**StreamArn**

Amazon Resource Name (ARN) dari aliran video Kinesis.

Tipe: String 

**FragmentNumber**

Fragmen video streaming yang berisi frame yang diwakilkan oleh catatan ini.

Tipe: String

**ProducerTimestamp**

Stempel waktu Unix sisi produsen fragmen. Untuk informasi selengkapnya, lihat [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html).

Jenis: Angka

**ServerTimestamp**

Stempel waktu Unix sisi server fragmen. Untuk informasi selengkapnya, lihat [PutMedia](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html).

Jenis: Angka

**FrameOffsetInSeconds**

Offset frame (dalam detik) di dalam fragmen.

Tipe: Angka 

# StreamProcessorInformation
<a name="streaming-video-kinesis-output-reference-streamprocessorinformation"></a>

Informasi status tentang pemroses aliran.

**Status**

Status pemroses aliran saat ini. Satu nilai yang mungkin adalah BERJALAN.

Tipe: String

## FaceSearchResponse
<a name="streaming-video-kinesis-output-reference-facesearchresponse"></a>

Informasi tentang wajah yang terdeteksi dalam frame video streaming dan wajah dalam koleksi yang sesuai dengan wajah yang terdeteksi. Anda menentukan koleksi dalam panggilan ke [CreateStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html). Untuk informasi selengkapnya, lihat [Bekerja dengan acara video streaming](streaming-video.md). 

**DetectedFace**

Detail wajah untuk wajah yang terdeteksi dalam frame video yang dianalisis.

Tipe: Objek [DetectedFace](#streaming-video-kinesis-output-reference-detectedface)

**MatchedFaces**

Array detail wajah untuk wajah dalam koleksi yang cocok dengan wajah yang terdeteksi di `DetectedFace`.

Tipe: Array objek [MatchedFace](#streaming-video-kinesis-output-reference-facematch)

## DetectedFace
<a name="streaming-video-kinesis-output-reference-detectedface"></a>

Informasi tentang wajah yang terdeteksi dalam frame video streaming. Wajah yang cocok dalam koleksi input tersedia di bidang objek [MatchedFace](#streaming-video-kinesis-output-reference-facematch).

**BoundingBox**

Kotak batas mengoordinasikan wajah yang terdeteksi dalam bingkai video yang dianalisis. BoundingBox Objek memiliki sifat yang sama dengan BoundingBox objek yang digunakan untuk analisis gambar.

Tipe: Objek [BoundingBox](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_BoundingBox.html) 

**Keyakinan**

Tingkat kepercayaan (1-100) yang dimiliki Amazon Rekognition Video bahwa wajah yang terdeteksi adalah benar-benar wajah. 1 adalah kepercayaan terendah, 100 adalah yang tertinggi.

Tipe: Angka

**Tengara**

Array penanda wajah

Jenis: [Array objek Landmark](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_Landmark.html)

**Pose**

Menunjukkan pose wajah sebagaimana ditentukan oleh pitch, roll, dan yaw.

Jenis: [Pose](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_Pose.html) objek

**Kualitas**

Mengidentifikasi kecerahan dan ketajaman citra wajah. 

Tipe: Objek [ImageQuality](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_ImageQuality.html)

## MatchedFace
<a name="streaming-video-kinesis-output-reference-facematch"></a>

Informasi tentang wajah yang cocok dengan wajah yang terdeteksi dalam bingkai video yang dianalisis.

**Wajah**

Informasi kecocokan wajah untuk wajah dalam koleksi input yang cocok dengan wajah di objek [DetectedFace](#streaming-video-kinesis-output-reference-detectedface). 

Jenis: Objek [wajah](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_Face.html) 

**Kesamaan**

Tingkat kepercayaan (1-100) bahwa tersebut wajah cocok. 1 adalah kepercayaan terendah, 100 adalah yang tertinggi.

Jenis: Angka 

# Streaming menggunakan GStreamer plugin
<a name="streaming-using-gstreamer-plugin"></a>

Amazon Rekognition Video dapat menganalisis video streaming siaran langsung dari kamera perangkat. Untuk mengakses input media dari sumber perangkat, Anda perlu menginstal GStreamer. GStreamer adalah perangkat lunak kerangka kerja multimedia pihak ketiga yang menghubungkan sumber media dan alat pemrosesan bersama-sama dalam alur kerja pipa. Anda juga harus memasang [Plugin Produsen Amazon Kinesis Video Streams](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/) untuk Gstreamer. Sebelum menjalankan proses ini, pastikan Anda telah berhasil mempersiapkan Amazon Rekognition Video dan sumber daya Amazon Kinesis. Untuk informasi selengkapnya, lihat [Mempersiapkan Amazon Rekognition Video Amazon dan sumber daya Amazon Kinesis](setting-up-your-amazon-rekognition-streaming-video-resources.md).

## Langkah 1: Memasang Gstreamer
<a name="step-1-install-gstreamer"></a>

 Unduh dan pasang Gstreamer, perangkat lunak platform multi-media pihak ke tiga. Anda dapat menggunakan perangkat lunak pengelolaan paket seperti Homebrew ([Gstreamer pada Homebrew](https://formulae.brew.sh/formula/gstreamer)) atau mendapatkannya langsung dari [Situs web Freedesktop](https://gstreamer.freedesktop.org/download/). 

 Verifikasi bahwa Gstreamer berhasil terpasang dengan meluncurkan umpan video dengan sumber uji dari terminal baris perintah Anda. 

```
$ gst-launch-1.0 videotestsrc ! autovideosink
```

## Langkah 2: Memasang plugin Produsen Kinesis Video Streams
<a name="step-2-install-kinesis-video-plugin"></a>

 Pada bagian ini, Anda akan mengunduh [ Pustaka Produsen Amazon Kinesis Video Streams](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/) dan memasang plugin Gstreamer Kinesis Video Streams. 

 Buat direktori dan kloning kode sumber dari repositori Github. Pastikan untuk menyertakan parameter `--recursive`. 

```
$ git clone --recursive https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp.git
```

Ikuti [instruksi yang diberikan oleh pustaka](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/README.md) untuk mengonfigurasi dan membangun proyek. Pastikan Anda menggunakan perintah khusus platform untuk sistem operasi Anda. Gunakan parameter `-DBUILD_GSTREAMER_PLUGIN=ON` ketika Anda menjalankan `cmake` untuk memasang plugin Gstreamer Kinesis Video Streams. Proyek ini memerlukan paket tambahan berikut yang disertakan dalam instalasi: GCC atau Clang, Curl, Openssl dan Log4cplus. Jika bangunan Anda gagal karena ketiadaan paket, verifikasi bahwa paket terpasang dan ada di PATH Anda. Jika Anda mengalami kesalahan “tidak dapat menjalankan program terhimpun C” saat membangun, jalankan perintah membangun lagi. Kadang-kadang, penghimpun C yang benar tidak ditemukan. 

 Verifikasi pemasangan plugin Kinesis Video Streams dengan menjalankan perintah berikut. 

```
$ gst-inspect-1.0 kvssink
```

 Informasi berikut, seperti detail pabrik dan plugin, akan muncul: 

```
Factory Details:
  Rank                     primary + 10 (266)
  Long-name                KVS Sink
  Klass                    Sink/Video/Network
  Description              GStreamer AWS KVS plugin
  Author                   AWS KVS <kinesis-video-support@amazon.com>
                
Plugin Details:
  Name                     kvssink
  Description              GStreamer AWS KVS plugin
  Filename                 /Users/YOUR_USER/amazon-kinesis-video-streams-producer-sdk-cpp/build/libgstkvssink.so
  Version                  1.0
  License                  Proprietary
  Source module            kvssinkpackage
  Binary package           GStreamer
  Origin URL               http://gstreamer.net/
  
  ...
```

## Langkah 3: Menjalankan Gstreamer dengan plugin Kinesis Video Streams
<a name="step-3-run-gstreamer-with-kinesis-video-plugin"></a>

 Sebelum memulai streaming dari kamera perangkat ke Kinesis Video Streams, Anda mungkin perlu mengonversi sumber media menjadi codec yang dapat diterima untuk Kinesis Video Streams. Untuk menentukan spesifikasi dan kemampuan format perangkat yang saat ini terhubung ke mesin Anda, jalankan perintah berikut.

```
$ gst-device-monitor-1.0
```

 Untuk memulai streaming, luncurkan Gstreamer dengan perintah contoh berikut dan tambahkan kredensial Anda dan informasi Amazon Kinesis Video Streams. Anda harus menggunakan access key dan wilayah untuk peran layanan IAM yang Anda buat saat [memberikan Amazon Rekognition akses ke aliran Kinesis Anda](https://docs.aws.amazon.com/rekognition/latest/dg/api-streaming-video-roles.html#api-streaming-video-roles-all-stream). Untuk informasi selengkapnya tentang access key, lihat [Mengelola Access Key untuk Pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) dalam *Panduan Pengguna IAM*. Selain itu, Anda dapat menyesuaikan parameter argumen format video seperti yang disyaratkan oleh penggunaan Anda dan tersedia dari perangkat Anda. 

```
$ gst-launch-1.0 autovideosrc device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! 
                x264enc bframes=0 key-int-max=45 bitrate=500 ! video/x-h264,stream-format=avc,alignment=au,profile=baseline ! 
                kvssink stream-name="YOUR_STREAM_NAME" storage-size=512 access-key="YOUR_ACCESS_KEY" secret-key="YOUR_SECRET_ACCESS_KEY" aws-region="YOUR_AWS_REGION"
```

 Untuk perintah peluncuran lainnya, lihat [Contoh Perintah GStreamer Peluncuran](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/examples-gstreamer-plugin.html#examples-gstreamer-plugin-launch). 

**catatan**  
 Jika perintah peluncuran Anda berakhir dengan kesalahan non-negosiasi, periksa output dari Monitor Perangkat dan pastikan bahwa nilai parameter `videoconvert` sesuai dengan kemampuan perangkat Anda. 

 Anda akan melihat umpan video dari kamera perangkat pada aliran video Kinesis setelah beberapa detik. Untuk mulai mendeteksi dan mencocokkan wajah dengan Amazon Rekognition, mulai pemroses aliran Amazon Rekognition Video Anda. Untuk informasi selengkapnya, lihat [Ikhtisar operasi prosesor aliran Video Rekognition Amazon](streaming-video.md#using-rekognition-video-stream-processor). 

# Mengatasi masalah video streaming
<a name="streaming-video-troubleshooting"></a>

Topik ini memberikan informasi pemecahan masalah untuk menggunakan Amazon Rekognition Video dengan video streaming.

**Topics**
+ [Saya tidak tahu apakah prosesor streaming saya berhasil dibuat](#ts-streaming-video-create-sp)
+ [Saya tidak tahu apakah saya telah mengonfigurasi pemroses aliran saya dengan benar](#ts-configured-sp)
+ [Pemroses aliran saya tidak memberikan hasil](#ts-streaming-video-no-results-from-sp)
+ [Status pemroses aliran saya GAGAL](#ts-failed-state)
+ [Pemroses aliran saya tidak memberikan hasil yang diharapkan](#w2aac27c79c27c15)

## Saya tidak tahu apakah prosesor streaming saya berhasil dibuat
<a name="ts-streaming-video-create-sp"></a>

Gunakan AWS CLI perintah berikut untuk mendapatkan daftar prosesor aliran dan statusnya saat ini.

```
aws rekognition list-stream-processors
```

Anda bisa mendapatkan detail tambahan dengan menggunakan AWS CLI perintah berikut. Ganti `stream-processor-name` dengan nama pemroses aliran yang diperlukan.

```
aws rekognition describe-stream-processor --name stream-processor-name
```

## Saya tidak tahu apakah saya telah mengonfigurasi pemroses aliran saya dengan benar
<a name="ts-configured-sp"></a>

Jika kode Anda tidak mengeluarkan hasil analisis dari Amazon Rekognition Video, pemroses aliran Anda mungkin tidak dikonfigurasi dengan benar. Lakukan hal berikut untuk mengonfirmasi bahwa pemroses aliran Anda dikonfigurasi dengan benar dan dapat mengeluarkan hasil.

**Untuk menentukan apakah solusi Anda dikonfigurasi dengan benar**

1. Jalankan perintah berikut untuk mengonfirmasi bahwa pemroses aliran Anda berada dalam keadaan berjalan. Ubah `stream-processor-name` ke nama pemroses aliran Anda. Pemroses aliran berjalan jika nilai `Status` adalah `RUNNING`. Jika statusnya adalah `RUNNING` dan Anda tidak mendapatkan hasil, lihat [Pemroses aliran saya tidak memberikan hasil](#ts-streaming-video-no-results-from-sp). Jika statusnya adalah `FAILED`, lihat [Status pemroses aliran saya GAGAL](#ts-failed-state).

   ```
   aws rekognition describe-stream-processor --name stream-processor-name
   ```

1. Jika prosesor stream Anda berjalan, jalankan Bash berikut atau PowerShell perintah untuk membaca data dari output Kinesis data stream. 

   **Bash**

   ```
   SHARD_ITERATOR=$(aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name kinesis-data-stream-name --query 'ShardIterator')
                           aws kinesis get-records --shard-iterator $SHARD_ITERATOR
   ```

   **PowerShell**

   ```
   aws kinesis get-records --shard-iterator ((aws kinesis get-shard-iterator --shard-id shardId-000000000000 --shard-iterator-type TRIM_HORIZON --stream-name kinesis-data-stream-name).split('"')[4])
   ```

1. Gunakan [Alat dekode](https://www.base64decode.org/) pada situs web Base64 Decode untuk menerjemahkan kode output menjadi string yang dapat dibaca manusia. Untuk informasi selengkapnya, lihat [Langkah 3: Dapatkan Catatan](https://docs.aws.amazon.com/streams/latest/dev/fundamental-stream.html#get-records).

1. Jika perintah berfungsi dan Anda melihat hasil deteksi wajah di aliran data Kinesis, berarti solusi Anda terkonfigurasi dengan benar. Jika perintah gagal, periksa saran pemecahan masalah lainnya dan lihat [Memberikan Amazon Rekognition Video akses ke sumber daya Anda](api-streaming-video-roles.md).

Atau, Anda dapat menggunakan AWS Lambda cetak biru kinesis-process-record "" untuk mencatat pesan dari aliran data Kinesis untuk visualisasi berkelanjutan. CloudWatch Ini menimbulkan biaya tambahan untuk AWS Lambda dan. CloudWatch 

## Pemroses aliran saya tidak memberikan hasil
<a name="ts-streaming-video-no-results-from-sp"></a>

Pemroses aliran Anda mungkin tidak memberikan hasil karena beberapa alasan. 

### Alasan 1: Prosesor streaming Anda tidak dikonfigurasi dengan benar
<a name="w2aac27c79c27c11b5"></a>

Pemroses aliran Anda mungkin tidak dikonfigurasi dengan benar. Untuk informasi selengkapnya, lihat [Saya tidak tahu apakah saya telah mengonfigurasi pemroses aliran saya dengan benar](#ts-configured-sp).

### Alasan 2: Pemroses aliran Anda tidak dalam status BERJALAN
<a name="w2aac27c79c27c11b7"></a>

**Untuk memecahkan masalah status pemroses aliran**

1. Periksa status prosesor aliran dengan AWS CLI perintah berikut.

   ```
   aws rekognition describe-stream-processor --name stream-processor-name
   ```

1. Jika nilai dari `Status` adalah `STOPPED`, mulai pemroses aliran Anda dengan perintah berikut:

   ```
   aws rekognition start-stream-processor --name stream-processor-name
   ```

1. Jika nilai dari `Status` adalah `FAILED`, lihat [Status pemroses aliran saya GAGAL](#ts-failed-state).

1. Jika nilai dari `Status` adalah `STARTING`, tunggu selama 2 menit dan periksa statusnya dengan mengulangi langkah 1. Jika nilai Status masih `STARTING`, lakukan hal berikut:

   1. Hapus pemroses aliran dengan perintah berikut.

      ```
      aws rekognition delete-stream-processor --name stream-processor-name
      ```

   1. Buat pemroses aliran baru dengan konfigurasi yang sama. Untuk informasi selengkapnya, lihat [Bekerja dengan acara video streaming](streaming-video.md).

   1. Jika Anda masih mengalami masalah, hubungi AWS Support.

1. Jika nilai dari `Status` adalah `RUNNING`, lihat [Alasan 3: Tidak ada data aktif di aliran video Kinesis](#ts-no-data).

### Alasan 3: Tidak ada data aktif di aliran video Kinesis
<a name="ts-no-data"></a>

**Untuk memeriksa apakah ada data aktif dalam aliran video Kinesis**

1. Masuk ke Konsol Manajemen AWS, dan buka konsol Amazon Kinesis Video [https://console.aws.amazon.com/kinesisvideo/](https://console.aws.amazon.com/kinesisvideo/)Streams di.

1. Pilih aliran video Kinesis yang merupakan input untuk pemroses aliran Amazon Rekognition.

1. Jika pratinjau menyatakan **Tidak ada data pada aliran**, maka tidak ada data dalam input stream untuk Amazon Rekognition Video yang bisa diproses.

Untuk informasi tentang memproduksi video dengan Kinesis Video Streams, lihat [Perpustakaan Produsen Kinesis Video Streams](https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-sdk.html). 

## Status pemroses aliran saya GAGAL
<a name="ts-failed-state"></a>

Anda dapat memeriksa status prosesor aliran dengan menggunakan AWS CLI perintah berikut.

```
aws rekognition describe-stream-processor --name stream-processor-name
```

Jika nilai Status GAGAL, periksa informasi pemecahan masalah untuk pesan kesalahan berikut.

### Kesalahan: "Akses ditolak ke Peran”
<a name="w2aac27c79c27c13b9"></a>

IAM role yang digunakan oleh pemroses aliran tidak ada atau Amazon Rekognition Video tidak memiliki izin untuk mengambil peran.

**Memecahkan masalah akses ke IAM role**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Dari panel navigasi kiri, pilih **Peran**dan Konfirmasikan bahwa peran itu ada. 

1. Jika peran ada, periksa apakah peran tersebut memiliki kebijakan *AmazonRekognitionServiceRole*izin.

1. Jika peran tidak ada atau tidak memiliki izin yang benar, lihat [Memberikan Amazon Rekognition Video akses ke sumber daya Anda](api-streaming-video-roles.md).

1. Mulai prosesor aliran dengan AWS CLI perintah berikut.

   ```
   aws rekognition start-stream-processor --name stream-processor-name
   ```

### Kesalahan: “Akses ditolak ke Video Kinesis *atau* Akses ditolak ke Data Kinesis”
<a name="w2aac27c79c27c13c11"></a>

Peran tersebut tidak memiliki akses ke operasi API Kinesis Video Streams `GetMedia` dan `GetDataEndpoint`. Ini juga mungkin tidak memiliki akses ke operasi API Kinesis Data Streams `PutRecord` dan `PutRecords`. 

**Untuk memecahkan izin API**

1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Buka peran dan pastikan kebijakan izin berikut terlampir.

1. Jika salah satu izin hilang, perbarui kebijakan. Untuk informasi selengkapnya, lihat [Memberikan Amazon Rekognition Video akses ke sumber daya Anda](api-streaming-video-roles.md).

### Kesalahan: “Stream *input-video-stream-name* tidak ada”
<a name="w2aac27c79c27c13c13"></a>

Input aliran video Kinesis ke pemroses aliran tidak ada atau tidak dikonfigurasi dengan benar. 

**Memecahkan masalah aliran video Kinesis**

1. Gunakan perintah berikut untuk mengonfirmasi bahwa aliran ada: 

   ```
   aws kinesisvideo list-streams
   ```

1. Jika aliran ada, periksa berikut ini.
   + Amazon Resource Name (ARN) sama dengan ARN dari aliran input untuk pemroses aliran.
   + Aliran video Kinesis berada di Wilayah yang sama dengan pemroses aliran.

   Jika prosesor stream tidak dikonfigurasi dengan benar, hapus dengan AWS CLI perintah berikut.

   ```
   aws rekognition delete-stream-processor --name stream-processor-name
   ```

1. Buat pemroses aliran baru dengan aliran video Kinesis yang diinginkan. Untuk informasi selengkapnya, lihat [Membuat prosesor aliran pencarian wajah Amazon Rekognition Video](rekognition-video-stream-processor-search-faces.md#streaming-video-creating-stream-processor).

### Kesalahan: “Koleksi tidak ditemukan”
<a name="w2aac27c79c27c13c15"></a>

Koleksi Amazon Rekognition yang digunakan oleh pemroses aliran untuk mencocokkan wajah tidak ada, atau koleksi yang salah yang sedang digunakan.

**Untuk mengonfirmasi koleksi**

1. Gunakan AWS CLI perintah berikut untuk menentukan apakah koleksi yang diperlukan ada. Ubah `region` ke AWS Wilayah tempat Anda menjalankan prosesor streaming.

   ```
   aws rekognition list-collections --region region
   ```

   Jika koleksi yang diperlukan tidak ada, buat koleksi baru dan tambahkan informasi wajah. Untuk informasi selengkapnya, lihat [Mencari wajah dalam koleksi](collections.md).

1. Ketika memanggil [CreateStreamProcessor](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_CreateStreamProcessor.html), periksa bahwa nilai parameter input `CollectionId` benar.

1. Mulai prosesor aliran dengan AWS CLI perintah berikut.

   ```
   aws rekognition start-stream-processor --name stream-processor-name
   ```

### Kesalahan: “Streaming *output-kinesis-data-stream-name* di bawah akun *account-id* tidak ditemukan”
<a name="w2aac27c79c27c13c17"></a>

Aliran data Kinesis keluaran yang digunakan oleh prosesor aliran tidak ada di Wilayah Anda Akun AWS atau tidak di AWS Wilayah yang sama dengan prosesor aliran Anda.

**Memecahkan masalah aliran data Kinesis**

1. Gunakan AWS CLI perintah berikut untuk menentukan apakah aliran data Kinesis ada. Ubah `region` ke AWS Wilayah tempat Anda menggunakan prosesor streaming.

   ```
   aws kinesis list-streams --region region
   ```

1. Jika aliran data Kinesis ada, periksa apakah nama aliran data Kinesis tersebut sama dengan nama aliran output yang digunakan oleh pemroses aliran.

1. Jika aliran data Kinesis tidak ada, mungkin ada di Wilayah lain AWS . Aliran data Kinesis harus berada di Wilayah yang sama dengan pemroses aliran.

1. Jika perlu, buat aliran data Kinesis. 

   1. Buat aliran data Kinesis dengan nama yang sama dengan nama yang digunakan oleh pemroses aliran. Untuk informasi selengkapnya, lihat [ Langkah 1: Buat aliran data](https://docs.aws.amazon.com/streams/latest/dev/learning-kinesis-module-one-create-stream.html).

   1. Mulai prosesor aliran dengan AWS CLI perintah berikut.

      ```
      aws rekognition start-stream-processor --name stream-processor-name
      ```

## Pemroses aliran saya tidak memberikan hasil yang diharapkan
<a name="w2aac27c79c27c15"></a>

Jika pemroses aliran Anda tidak menampilkan kecocokan wajah yang diharapkan, gunakan informasi berikut.
+ [Mencari wajah dalam koleksi](collections.md)
+ [Rekomendasi untuk pengaturan kamera (video streaming)](recommendations-camera-streaming-video.md)