

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

# Memanggil operasi Amazon Rekognition Video
<a name="api-video"></a>

Amazon Rekognition Video adalah API secara tidak sinkron yang dapat Anda gunakan untuk menganalisis video yang disimpan di bucket Amazon Simple Storage Service (Amazon S3). Anda memulai analisis video dengan memanggil operasi Amazon Rekognition Video `Start`, seperti [StartPersonTracking](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartPersonTracking.html). Amazon Rekognition Video menerbitkan hasil permintaan analisis ke topik Amazon Simple Notification Service (Amazon SNS). Anda dapat menggunakan antrean Amazon Simple Queue Service (Amazon SQS) atau AWS Lambda fungsi untuk mendapatkan status penyelesaian permintaan analisis video dari topik Amazon SNS. Akhirnya, Anda mendapatkan hasil permintaan analisis video dengan memanggil operasi Amazon Rekognition `Get`, seperti [GetPersonTracking](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_GetPersonTracking.html). 

Informasi pada bagian ini menggunakan operasi pendeteksi label untuk menunjukkan bagaimana Amazon Rekognition Video mendeteksi label (objek, peristiwa, konsep, dan aktivitas) dalam video yang disimpan dalam bucket Amazon S3. Pendekatan yang sama bekerja untuk operasi Amazon Rekognition Video yang lain-misalnya, [StartFaceDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartFaceDetection.html) dan [StartPersonTracking](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartPersonTracking.html). Contoh [Menganalisis video yang disimpan di bucket Amazon S3 dengan Java atau Python (SDK)](video-analyzing-with-sqs.md) menunjukkan cara menganalisis video dengan menggunakan antrean Amazon SQS untuk mendapatkan status penyelesaian dari topik Amazon SNS. Amazon SQS juga digunakan sebagai dasar untuk contoh Amazon Rekognition Video lainnya, seperti [Lintasan orang](persons.md). Sebagai AWS CLI contoh, lihat[Menganalisis video dengan AWS Command Line Interface](video-cli-commands.md).

**Topics**
+ [Memulai analisis video](#api-video-start)
+ [Mendapatkan status penyelesaian permintaan analisis Amazon Rekognition Video](#api-video-get-status)
+ [Mendapatkan hasil analisis Amazon Rekognition Video](#api-video-get)

## Memulai analisis video
<a name="api-video-start"></a>

Anda memulai permintaan pendeteksi label Amazon Rekognition Video dengan menelepon [StartLabelDetection](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_StartLabelDetection.html). Berikut ini adalah contoh permintaan JSON yang diberikan oleh `StartLabelDetection`.

```
{
    "Video": {
        "S3Object": {
            "Bucket": "amzn-s3-demo-bucket",
            "Name": "video.mp4"
        }
    },
    "ClientRequestToken": "LabelDetectionToken",
    "MinConfidence": 50,
    "NotificationChannel": {
        "SNSTopicArn": "arn:aws:sns:us-east-1:nnnnnnnnnn:topic",
        "RoleArn": "arn:aws:iam::nnnnnnnnnn:role/roleopic"
    },
    "JobTag": "DetectingLabels"
}
```

Parameter input `Video` menyediakan nama file video dan bucket Amazon S3 untuk mengambil dari kode video tersebut. `NotificationChannel` terdiri Amazon Resource Name (ARN) dari topik Amazon SNS yang memberitahukan Amazon Rekognition Video saat permintaan analisis video selesai. Topik Amazon SNS harus berada di wilayah AWS yang sama dengan titik akhir Amazon Rekognition Video yang Anda panggil. `NotificationChannel` juga berisi ARN untuk peran yang memungkinkan Amazon Rekognition Video untuk mempublikasikan topik Amazon SNS. Anda memberikan izin penerbitan kepada Amazon Rekognition untuk topik Amazon SNS Anda dengan menciptakan peran layanan IAM. Untuk informasi selengkapnya, lihat [Mengonfigurasi Amazon Rekognition Video](api-video-roles.md).

Anda juga dapat menentukan parameter input opsional, `JobTag`, yang mengizinkan Anda untuk mengidentifikasi tugas yang memiliki status penyelesaian yang diterbitkan untuk topik Amazon SNS. 

Untuk mencegah duplikasi pekerjaan analisis yang tidak disengaja, Anda dapat memberikan token idempotensi , `ClientRequestToken`. Jika Anda memberikan nilai untuk `ClientRequestToken`, operasi `Start` mengembalikan `JobId` yang sama untuk beberapa panggilan yang identik ke operasi awal, seperti `StartLabelDetection`. Token `ClientRequestToken` memiliki masa pakai 7 hari. Setelah 7 hari, Anda bisa menggunakannya kembali. Jika Anda menggunakan kembali token selama masa token aktif, hal berikut akan terjadi: 
+ Jika Anda menggunakan kembali token dengan operasi `Start` dan parameter input yang sama, kode `JobId` yang sama akan dikembalikan. Tugas tidak lagi dijalankan dan Amazon Rekognition Video tidak mengirimkan status penyelesaian untuk topik Amazon SNS yang terdaftar.
+ Jika Anda menggunakan kembali token dengan operasi `Start` dan perubahan pada input parameter kecil, Anda mendapatkan pengecualian yang ditimbulkan `IdempotentParameterMismatchException` (Kode status HTTP: 400).
+ Anda seharusnya tidak menggunakan kembali token dengan operasi `Start` yang berbeda karena Anda akan mendapatkan hasil yang tak terduga dari Amazon Rekognition.

Respons terhadap operasi `StartLabelDetection` adalah pengidentifikasi tugas (`JobId`). Gunakan `JobId` untuk melacak permintaan dan mendapatkan hasil analisis setelah Amazon Rekognition Video telah menerbitkan status penyelesaian ke topik Amazon SNS. Sebagai contoh:

```
{"JobId":"270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1784ca90fc180e3"}
```

Jika Anda memulai terlalu banyak tugas secara bersamaan, hubungi `StartLabelDetection` untuk meningkatkan `LimitExceededException` (Kode status HTTP: 400) hingga jumlah tugas yang berjalan bersamaan di bawah batas layanan Amazon Rekognition. 

Jika Anda menemukan bahwa pengecualian `LimitExceededException` dimunculkan dengan runtunan aktivitas, mohon pertimbangkan untuk menggunakan antrean Amazon SQS untuk mengelola permintaan yang masuk. Hubungi AWS dukungan jika Anda menemukan bahwa jumlah rata-rata permintaan bersamaan tidak dapat dikelola oleh antrian Amazon SQS dan Anda masih menerima pengecualian. `LimitExceededException` 

## Mendapatkan status penyelesaian permintaan analisis Amazon Rekognition Video
<a name="api-video-get-status"></a>

Amazon Rekognition Video mengirimkan pemberitahuan penyelesaian analisis untuk topik Amazon SNS yang terdaftar. Pemberitahuan tersebut mencakup pengindentifikasi tugas dan status penyelesaian operasi dalam string JSON. Permintaan analisis video yang berhasil memiliki status `SUCCEEDED`. Contohnya, hasil berikut menunjukkan berhasilnya pengolahan tugas pendeteksi label.

```
{
    "JobId": "270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1nnnnnnnnnnnn",
    "Status": "SUCCEEDED",
    "API": "StartLabelDetection",
    "JobTag": "DetectingLabels",
    "Timestamp": 1510865364756,
    "Video": {
        "S3ObjectName": "video.mp4",
        "S3Bucket": "amzn-s3-demo-bucket"
    }
}
```

Untuk informasi selengkapnya, lihat [Referensi: Notifikasi hasil analisis video](video-notification-payload.md).

Untuk mendapatkan status informasi yang dipublikasikan ke topik Amazon SNS oleh Amazon Rekognition Video, gunakan salah satu opsi berikut:
+ **AWS Lambda** — Anda dapat berlangganan fungsi AWS Lambda yang Anda tulis untuk topik Amazon SNS. Fungsi ini terpanggil ketika Amazon Rekognition memberitahu topik Amazon SNS bahwa permintaannya telah selesai. Gunakan fungsi Lambda jika Anda ingin kode sisi server untuk memproses hasil permintaan analisis video. Misalnya, Anda mungkin ingin menggunakan kode sisi server untuk menganotasi video atau membuat laporan tentang konten video sebelum mengembalikan informasi ke aplikasi klien. Kami juga merekomendasikan pemrosesan sisi server untuk video besar karena Amazon Rekognition API dapat menghasilkan data dalam jumlah besar. 
+ **Amazon Simple Queue Service** — Anda dapat berlangganan antrean Amazon SQS ke topik Amazon SNS. Anda kemudian dapat melakukan polling antrean Amazon SQS untuk mengambil status penyelesaian yang diterbitkan oleh Amazon Rekognition saat permintaan analisis video selesai. Untuk informasi selengkapnya, lihat [Menganalisis video yang disimpan di bucket Amazon S3 dengan Java atau Python (SDK)](video-analyzing-with-sqs.md). Gunakan antrean Amazon SQS jika Anda ingin memanggil operasi Amazon Rekognition Video hanya dari aplikasi klien. 

**penting**  
Kami tidak merekomendasikan untuk mendapatkan status penyelesaian permintaan dengan berulang kali memanggil operasi `Get` Amazon Rekognition Video. Hal ini karena Amazon Rekognition Video membatasi operasi `Get` jika permintaan terlalu banyak dibuat. Jika Anda memproses beberapa video secara bersamaan, akan lebih mudah dan lebih efisien untuk memantau satu antrean SQS untuk notifikasi penyelesaian daripada membuat polling Amazon Rekognition Video untuk status setiap video secara individual.

## Mendapatkan hasil analisis Amazon Rekognition Video
<a name="api-video-get"></a>

 Untuk mendapatkan hasil permintaan analisis video, pertama pastikan bahwa status penyelesaian yang diambil dari topik Amazon SNS adalah `SUCCEEDED`. Kemudian panggil `GetLabelDetection`, yang memberikan nilai `JobId` yang dikembalikan dari `StartLabelDetection`. Permintaan JSON serupa dengan contoh berikut:

```
{
    "JobId": "270c1cc5e1d0ea2fbc59d97cb69a72a5495da75851976b14a1784ca90fc180e3",
    "MaxResults": 10,
    "SortBy": "TIMESTAMP"
}
```

JobId adalah pengenal untuk operasi analisis video. Mengingat analisis video dapat menghasilkan data dalam jumlah besar, gunakan `MaxResults` untuk menentukan hasil jumlah maksimum agar dapat kembali dalam satu operasi Get. Nilai default untuk `MaxResults` adalah 1000. Jika Anda menentukan nilai yang lebih besar dari 1000, maksimum hasil dikembalikan adalah 1000. Jika operasi tidak mengembalikan seluruh set hasil, token pemberian nomor halaman untuk halaman berikutnya dikembalikan dalam respons operasi. Jika Anda memiliki token pemberian nomor halaman dari permintaan Get sebelumnya, gunakan token tersebut dengan `NextToken` untuk mendapatkan halaman hasil berikutnya.

**catatan**  
Amazon Rekognition mempertahankan hasil operasi analisis video selama 7 hari. Anda tidak akan dapat mengambil hasil analisis setelah periode ini.

Respons JSON dari operasi `GetLabelDetection` serupa dengan hal berikut:

```
{
    "Labels": [
        {
            "Timestamp": 0,
            "Label": {
                "Instances": [],
                "Confidence": 60.51791763305664,
                "Parents": [],
                "Name": "Electronics"
            }
        },
        {
            "Timestamp": 0,
            "Label": {
                "Instances": [],
                "Confidence": 99.53411102294922,
                "Parents": [],
                "Name": "Human"
            }
        },
        {
            "Timestamp": 0,
            "Label": {
                "Instances": [
                    {
                        "BoundingBox": {
                            "Width": 0.11109819263219833,
                            "Top": 0.08098889887332916,
                            "Left": 0.8881205320358276,
                            "Height": 0.9073750972747803
                        },
                        "Confidence": 99.5831298828125
                    },
                    {
                        "BoundingBox": {
                            "Width": 0.1268676072359085,
                            "Top": 0.14018426835536957,
                            "Left": 0.0003282368124928324,
                            "Height": 0.7993982434272766
                        },
                        "Confidence": 99.46029663085938
                    }
                ],
                "Confidence": 99.53411102294922,
                "Parents": [],
                "Name": "Person"
            }
        },
        .
        .   
        .

        {
            "Timestamp": 166,
            "Label": {
                "Instances": [],
                "Confidence": 73.6471176147461,
                "Parents": [
                    {
                        "Name": "Clothing"
                    }
                ],
                "Name": "Sleeve"
            }
        }
        
    ],
    "LabelModelVersion": "2.0",
    "JobStatus": "SUCCEEDED",
    "VideoMetadata": {
        "Format": "QuickTime / MOV",
        "FrameRate": 23.976024627685547,
        "Codec": "h264",
        "DurationMillis": 5005,
        "FrameHeight": 674,
        "FrameWidth": 1280
    }
}
```

`GetContentModeration`Operasi `GetLabelDetection` dan memungkinkan Anda untuk mengurutkan hasil analisis berdasarkan stempel waktu atau dengan nama label. Anda juga dapat mengumpulkan hasil berdasarkan segmen video atau stempel waktu. 

Anda dapat mengurutkan hasil berdasarkan waktu deteksi (milidetik dari awal video) atau menurut abjad sesuai entitas yang terdeteksi (objek, wajah, selebriti, label moderasi, atau orang). Untuk mengurutkan berdasarkan waktu, tetapkan nilai dari `SortBy` input parameter ke `TIMESTAMP`. Jika `SortBy` tidak ditentukan, perilaku default menjadi pengurutan berdasarkan waktu. Contoh sebelumnya diurutkan berdasarkan waktu. Untuk mengurutkan berdasarkan entitas, gunakan parameter input `SortBy` dengan nilai yang sesuai untuk operasi yang Anda jalankan. Misalnya, untuk mengurutkan berdasarkan label yang terdeteksi dalam panggilan ke `GetLabelDetection`, gunakan nilai `NAME`.

Untuk menggabungkan hasil dengan stempel waktu, atur nilai parameter ke. `AggregateBy` `TIMESTAMPS` Untuk agregat menurut segmen video, atur nilai `AggregateBy` ke`SEGMENTS`. `SEGMENTS`mode agregasi akan menggabungkan label dari waktu ke waktu, sementara `TIMESTAMPS` memberikan stempel waktu label terdeteksi pada, menggunakan 2 pengambilan sampel FPS dan per output bingkai (Catatan: Tingkat pengambilan sampel saat ini dapat berubah, asumsi tidak boleh dibuat tentang laju pengambilan sampel saat ini). Jika tidak ada nilai yang ditentukan, metode agregasi default adalah`TIMESTAMPS`. 