

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

# Gunakan Amazon Kinesis Video Streams dengan WebRTC untuk menelan dan menyimpan media
<a name="webrtc-ingestion"></a>

Amazon Kinesis Video Streams menawarkan kemampuan untuk melakukan streaming video dan audio secara real-time melalui WebRTC ke cloud untuk penyimpanan, pemutaran, dan pemrosesan analitis. Pelanggan dapat menggunakan SDK WebRTC dan APIs cloud kami yang disempurnakan untuk mengaktifkan streaming real-time, serta konsumsi media ke cloud.

Untuk memulai, Anda dapat menginstal Amazon Kinesis Video [Streams dengan](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-c/tree/Release-WebRTC-Streams-Ingestion-Public-Preview) WebRTC SDK pada kamera atau perangkat AWS IoT keamanan apa pun dengan sensor video [APIs](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_Operations_Amazon_Kinesis_Video_Streams.html)dan menggunakan kami untuk mengaktifkan streaming media dengan latensi sub 1 detik, serta konsumsi dan penyimpanan di cloud. Setelah tertelan, Anda dapat mengakses data Anda melalui kami easy-to-use APIs. Amazon Kinesis Video Streams memungkinkan Anda memutar video untuk ditonton langsung dan sesuai permintaan, serta dengan cepat membangun aplikasi yang memanfaatkan visi komputer dan analitik video melalui integrasi dengan Amazon Rekognition Video dan AI. SageMaker 

**Topics**
+ [Operasi API](#ingestion-apis)
+ [Apa itu Amazon Kinesis Video Streams dengan konsumsi dan penyimpanan WebRTC?](getting-started-ingestion.md)
+ [Buat saluran pensinyalan](ingestion-create-channel.md)
+ [Buat aliran video](ingestion-create-stream.md)
+ [Izin pemberian](ingestion-grant-permission.md)
+ [Konfigurasikan tujuan](configure-ingestion.md)
+ [Menelan media](ingest-media.md)
+ [Pemutaran media yang dicerna](ingestion-view-media.md)
+ [Connect ke sesi penyimpanan](ingestion-initiate.md)
+ [Memecahkan masalah yang berhubungan dengan sesi penyimpanan](troubleshoot-establish-storage.md)

## Operasi API
<a name="ingestion-apis"></a>

Gunakan operasi API berikut untuk mengonfigurasi konsumsi Amazon Kinesis Video Streams WebRTC:
+ [DescribeMappedResourceConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMappedResourceConfiguration.html)
+ [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html)
+ [JoinStorageSession](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSession.html)
+ [JoinStorageSessionAsViewer](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSessionAsViewer.html)
+ [UpdateMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_UpdateMediaStorageConfiguration.html)

# Apa itu Amazon Kinesis Video Streams dengan konsumsi dan penyimpanan WebRTC?
<a name="getting-started-ingestion"></a>

Amazon Kinesis Video Streams menawarkan kemampuan untuk melakukan streaming video dan audio secara real-time melalui WebRTC ke cloud untuk penyimpanan, pemutaran, dan pemrosesan analitis. Topik ini akan memberikan step-by-step instruksi untuk mengatur dan menggunakan SDK WebRTC dan cloud kami untuk mengaktifkan streaming real-time dan konsumsi media ke APIs cloud. Instruksi ini mencakup panduan untuk menggunakan AWS Command Line Interface dan konsol Kinesis Video Streams.

Sebelum Anda menggunakan Amazon Kinesis Video Streams dengan WebRTC untuk pertama kalinya, lihat. [Mengatur sebuah Akun AWS](set-up-account.md)

## Memahami konsumsi dan penyimpanan WebRTC
<a name="understanding-ingestion"></a>

Bagian berikut menjelaskan berbagai opsi konsumsi dan penyimpanan yang tersedia di Kinesis Video Streams dengan WebRTC.

**Topics**
+ [Hanya peserta master](#master-ptp-only)
+ [Peserta master dan pemirsa bersama-sama](#master-viewer-ptp-together)

### Hanya peserta master
<a name="master-ptp-only"></a>

Peserta master pertama-tama terhubung ke Kinesis Video Streams dengan [ConnectAsMaster](ConnectAsMaster.md) WebRTC Signaling via. Selanjutnya, mereka memanggil [JoinStorageSession](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSession.html)API agar sesi penyimpanan memulai koneksi WebRTC. Setelah koneksi WebRTC dibuat, media akan dicerna ke aliran video Kinesis yang dikonfigurasi. 

![\[Diagram yang menunjukkan aliran konsumsi WebRTC antara peserta utama, sesi penyimpanan, dan aliran.\]](http://docs.aws.amazon.com/id_id/kinesisvideostreams-webrtc-dg/latest/devguide/images/ingestion-flow.png)


### Peserta master dan pemirsa bersama-sama
<a name="master-viewer-ptp-together"></a>

Peserta pemirsa pertama terhubung ke Kinesis Video Streams dengan [ConnectAsViewer](ConnectAsViewer.md) WebRTC Signaling via. Selanjutnya, mereka memanggil [JoinStorageSessionAsViewer](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSessionAsViewer.html)API agar sesi penyimpanan memulai koneksi WebRTC. Setelah koneksi WebRTC dibuat, media gabungan dari master dan semua peserta pemirsa akan dicerna ke aliran video Kinesis yang dikonfigurasi, selama peserta master hadir.

Sesi penyimpanan menggabungkan dan meneruskan semua audio peserta pemirsa ke peserta utama. Peserta pemirsa menerima media gabungan dari peserta utama dan audio dari peserta pemirsa lain dari sesi penyimpanan.

![\[Diagram yang menunjukkan aliran konsumsi WebRTC dengan penampil antara peserta utama, sesi penyimpanan, peserta penampil, dan aliran.\]](http://docs.aws.amazon.com/id_id/kinesisvideostreams-webrtc-dg/latest/devguide/images/ingestion-flow-with-viewer.png)


## Buat koneksi WebRTC dengan sesi penyimpanan
<a name="ingestion-establish-connection"></a>

Karena sesi penyimpanan berada dalam jaringan Amazon, sesi penyimpanan hanya akan mengirim `relay` (`TURN`) kandidat ke peserta. Jika jaringan peserta memungkinkan, `srflx` (`STUN`) kandidat dapat digunakan untuk terhubung ke sesi penyimpanan. Dengan kata lain, dari sudut pandang peserta, kandidat ICE yang dinominasikan lokal dapat `srflx` atau`relay`, sedangkan kandidat ICE jarak jauh selalu`relay`.

Untuk mengoptimalkan waktu koneksi, jangan mengirim `host` kandidat ke sesi penyimpanan. Sesi penyimpanan juga `Trickle ICE` harus digunakan.

Lihat [Memecahkan masalah yang berhubungan dengan sesi penyimpanan](troubleshoot-establish-storage.md) untuk memecahkan masalah koneksi ke sesi penyimpanan.

# Buat saluran pensinyalan
<a name="ingestion-create-channel"></a>

Kinesis Video Streams dengan saluran pensinyalan WebRTC memfasilitasi pertukaran pesan pensinyalan yang diperlukan untuk membangun dan memelihara koneksi antara klien WebRTC. peer-to-peer Ini menangani negosiasi penawaran dan jawaban Session Description Protocol (SDP) untuk parameter sesi, serta pertukaran kandidat Interactive Connectivity Establishment (ICE) untuk informasi jaringan. 

Untuk membuat saluran pensinyalan, panggil [CreateSignalingChannel](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_CreateSignalingChannel.html)API. Halaman ini akan menunjukkan kepada Anda cara menjalankan API itu menggunakan Konsol Manajemen AWS, AWS CLI, dan salah satunya. AWS SDKs 

**penting**  
Catat saluran ARN, Anda akan membutuhkannya nanti.

------
#### [ Konsol Manajemen AWS ]

Lakukan hal-hal berikut:

1. [Buka konsol Saluran Pensinyalan **Kinesis Video Streams** di rumah/\$1/SignalingChannels. https://console.aws.amazon.com/kinesisvideo/](https://console.aws.amazon.com//kinesisvideo/home/#/signalingChannels)

1. Pilih **Buat saluran pensinyalan**.

1. Pada halaman **Buat saluran pensinyalan baru**, ketikkan nama untuk saluran pensinyalan.

   Biarkan nilai default **Time-to-live (Ttl)** sebagai 60 detik.

   Pilih **Buat saluran pensinyalan**.

1. Setelah saluran pensinyalan dibuat, tinjau detail di halaman detail saluran.

------
#### [ AWS CLI ]

Verifikasi bahwa Anda telah AWS CLI menginstal dan mengkonfigurasi. Untuk informasi selengkapnya, silakan lihat [Panduan Pengguna AWS Command Line Interface](https://docs.aws.amazon.com//cli/latest/userguide/).

Untuk petunjuk penginstalan, lihat [Panduan AWS Command Line Interface Pengguna](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions). Setelah instalasi, [konfigurasikan AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-quickstart.html#getting-started-quickstart-new) dengan kredensyal dan wilayah.

Atau, buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya.

Jalankan perintah [Create-Signaling-Channel](https://docs.aws.amazon.com//cli/latest/reference/kinesisvideo/create-signaling-channel.html) berikut menggunakan: AWS CLI

```
aws kinesisvideo create-signaling-channel \
  --channel-name "YourChannelName" \
  --region "us-west-2"
```

Responsnya akan terlihat seperti berikut:

```
{ 
    "ChannelARN": "arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123"
}
```

------
#### [ AWS SDK ]

Cuplikan kode ini menunjukkan cara membuat Kinesis Video Streams dengan saluran pensinyalan WebRTC menggunakan SDK untuk v2. AWS JavaScript Sintaks akan berbeda dari yang lain AWS SDKs, tetapi aliran umum akan sama. Lihat contoh kode lengkap di [GitHub](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/blob/master/examples/createSignalingChannel.js).

Buat klien Kinesis Video Streams. Ini adalah klien yang digunakan untuk memanggil `CreateSignalingChannel` API.

```
const clientConfig = {
    accessKeyId: 'YourAccessKey',
    secretAccessKey: 'YourSecretKey',
    region: 'us-west-2'
};
const kinesisVideoClient = new AWS.KinesisVideo(clientConfig);
```

Gunakan klien untuk memanggil `CreateSignalingChannel` API.

```
const createSignalingChannelResponse = await kinesisVideoClient
    .createSignalingChannel({
        ChannelName: 'YourChannelName',
    })
    .promise();
```

Cetak responsnya.

```
console.log(createSignalingChannelResponse.ChannelARN);
```

Halaman web langsung dengan contoh kode ini tersedia untuk digunakan di [GitHub](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html). Masukkan wilayah, AWS kredensil, dan nama saluran pensinyalan Anda. 

Pilih **Buat Saluran**.

------

# Buat aliran video
<a name="ingestion-create-stream"></a>

Ikuti prosedur ini untuk membuat aliran yang akan dicerna media. Jika Anda telah membuat aliran tujuan, lewati langkah ini.

**penting**  
WebRTC Ingestion memerlukan aliran video Kinesis dengan retensi data lebih besar dari 0. Minimal adalah 1 jam.

Untuk membuat stream, panggil [CreateStream](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_CreateStream.html)API menggunakan Konsol Manajemen AWS, AWS CLI, atau salah satu AWS SDK.

**penting**  
Catat aliran ARN, Anda akan membutuhkannya nanti.

------
#### [ Konsol Manajemen AWS ]

Lakukan hal-hal berikut:

1. [Buka konsol **Kinesis Video** Streams https://console.aws.amazon.com/kinesisvideo/ di rumah/.](https://console.aws.amazon.com//kinesisvideo/home/)

1. Pada halaman **Streaming video**, pilih **Buat aliran video**.

1. Pada halaman **Create a new video stream**, masukkan `YourStreamName` nama stream. Biarkan tombol **konfigurasi Default** dipilih. 

   Ini akan membuat aliran dengan retensi data lebih dari 0.

   Pilih **Buat aliran video**.

1. Setelah Kinesis Video Streams membuat streaming, tinjau detail `YourStreamName` di halaman.

------
#### [ AWS CLI ]

Verifikasi bahwa Anda telah AWS CLI menginstal dan mengkonfigurasi. Untuk informasi selengkapnya, silakan lihat [Panduan Pengguna AWS Command Line Interface](https://docs.aws.amazon.com//cli/latest/userguide/).

Untuk petunjuk penginstalan, lihat [Panduan AWS Command Line Interface Pengguna](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions). Setelah instalasi, [konfigurasikan AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-quickstart.html#getting-started-quickstart-new) dengan kredensyal dan wilayah.

Atau, buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya.

Jalankan `Create-Stream` perintah berikut menggunakan AWS CLI:

```
aws kinesisvideo create-stream \
  --stream-name "YourStreamName" \
  --data-retention-in-hours 24 \
  --region "us-west-2"
```

Responsnya akan terlihat seperti berikut:

```
{
    "StreamARN": "arn:aws:kinesisvideo:us-west-2:123456789012:stream/YourStreamName/1234567890123"
}
```

------
#### [ AWS SDK ]

Cuplikan kode ini menunjukkan cara membuat aliran video Kinesis menggunakan SDK untuk v2. AWS JavaScript Sintaks akan berbeda dari yang lain AWS SDKs, tetapi aliran umum akan sama. Lihat contoh kode lengkap di [GitHub](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/blob/master/examples/createStream.js).

Buat klien Kinesis Video Streams. Ini adalah klien yang digunakan untuk memanggil [CreateStream](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_CreateStream.html)API.

```
const clientConfig = {
    accessKeyId: 'YourAccessKey',
    secretAccessKey: 'YourSecretKey',
    region: 'us-west-2'
};
const kinesisVideoClient = new AWS.KinesisVideo(clientConfig);
```

Gunakan klien untuk memanggil `CreateStream` API.

```
const createStreamResponse = await kinesisVideoClient
    .createStream({
        StreamName: 'YourStreamName',
        DataRetentionInHours: 48,
    })
    .promise();
```

Cetak responsnya.

```
console.log(createStreamResponse.StreamARN);
```

Halaman web langsung dengan contoh kode ini tersedia untuk digunakan di [GitHub](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html). Masukkan wilayah, AWS kredensil, dan nama saluran pensinyalan Anda. 

**Perluas node **WebRTC Ingestion dan** Storage, ketik nama stream Anda, lalu pilih Create Stream.** Sebuah pop-up menanyakan jumlah jam yang Anda inginkan untuk menyimpan data streaming. Masukkan nilai yang lebih besar dari 0, lalu pilih **Create Stream**.

------

# Izin pemberian
<a name="ingestion-grant-permission"></a>

Anda harus memberikan izin streaming ke peran IAM Anda untuk menyerap aliran di Amazon Kinesis Video Streams dengan WebRTC.

**catatan**  
 Peran layanan adalah [peran IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) yang diambil oleh sebuah layanan untuk melakukan tindakan atas nama Anda. Administrator IAM dapat membuat, mengubah, dan menghapus peran layanan dari dalam IAM. Untuk informasi selengkapnya, lihat [Buat sebuah peran untuk mendelegasikan izin ke Layanan AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) dalam *Panduan pengguna IAM*. 

Peran Master dan Viewer juga harus memiliki`DescribeStream`,`GetDataEndpoint`, dan `PutMedia` izin untuk menyerap media ke Kinesis Video Streams. 

Lihat contoh kebijakan IAM di bawah ini untuk peserta Master: 

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "kinesisvideo:DescribeSignalingChannel",
        "kinesisvideo:DescribeMediaStorageConfiguration",
        "kinesisvideo:GetSignalingChannelEndpoint",
        "kinesisvideo:GetIceServerConfig",
        "kinesisvideo:ConnectAsMaster",
        "kinesisvideo:JoinStorageSession"
      ],
      "Resource": "arn:aws:kinesisvideo:us-west-2:123456789012:channel/SignalingChannelName/1234567890123"
    },
    {
      "Effect": "Allow",
      "Action": [
        "kinesisvideo:GetDataEndpoint",
        "kinesisvideo:DescribeStream",
        "kinesisvideo:PutMedia"
      ],
      "Resource": "arn:aws:kinesisvideo:us-west-2:123456789012:stream/VideoStreamName/1234567890123"
    }
  ]
}
```

------

# Konfigurasikan tujuan
<a name="configure-ingestion"></a>

Setelah Anda membuat sumber daya Kinesis Video Streams, Anda perlu memberi tahu saluran pensinyalan aliran mana yang akan disimpan.

Jika Anda ingin menghapus saluran pensinyalan atau streaming, Anda harus memutuskan tautannya terlebih dahulu. Lihat [Putuskan tautan saluran dan streaming pensinyalan](#ingest-unlink).

## Tautkan saluran dan aliran pensinyalan
<a name="ingestion-link"></a>

Gunakan [UpdateMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_UpdateMediaStorageConfiguration.html)API dan masukkan sumber daya Kinesis Video Streams yang ingin Anda tautkan. ARNs 

**penting**  
Setelah `StorageStatus` diaktifkan, koneksi langsung peer-to-peer (master-viewer) tidak lagi terjadi. Peer terhubung langsung ke sesi penyimpanan. Anda harus memanggil `JoinStorageSession` API untuk memicu pengiriman penawaran SDP dan membuat koneksi antara peer dan sesi penyimpanan.

------
#### [ Konsol Manajemen AWS ]

**catatan**  
Operasi ini saat ini tidak didukung di Kinesis Konsol Manajemen AWS Video Streams.

Buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya. 

Ikuti instruksi di AWS CLI tab.

------
#### [ AWS CLI ]

Verifikasi bahwa Anda telah AWS CLI menginstal dan mengkonfigurasi. Untuk informasi lebih lanjut, lihat [AWS Command Line Interface](https://docs.aws.amazon.com//cli/latest/userguide/)dokumentasi.

Untuk petunjuk penginstalan, lihat [Panduan AWS Command Line Interface Pengguna](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions). Setelah instalasi, [konfigurasikan AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-quickstart.html#getting-started-quickstart-new) dengan kredensyal dan wilayah.

Atau, buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya.

Jalankan `Update-Media-Storage-Configuration` perintah di AWS CLI:

```
aws kinesisvideo update-media-storage-configuration \
  --channel-arn arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123 \
  --media-storage-configuration \
    StreamARN="arn:aws:kinesisvideo:us-west-2:123456789012:stream/YourStreamName/1234567890123",Status="ENABLED" \
  --region "us-west-2"
```

------
#### [ AWS SDK ]

Cuplikan kode ini menunjukkan cara mengonfigurasi saluran pensinyalan untuk menyerap media ke aliran video Kinesis yang ditentukan menggunakan SDK untuk v2. AWS JavaScript Sintaks akan berbeda dari yang lain AWS SDKs, tetapi aliran umum akan sama. Lihat contoh kode lengkap di [GitHub](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/blob/master/examples/updateMediaStorageConfiguration.js).

Buat klien Kinesis Video Streams. Ini adalah klien yang digunakan untuk memanggil [UpdateMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_UpdateMediaStorageConfiguration.html)API.

```
const clientConfig = {
    accessKeyId: 'YourAccessKey',
    secretAccessKey: 'YourSecretKey',
    region: 'us-west-2'
};
const kinesisVideoClient = new AWS.KinesisVideo(clientConfig);
```

Gunakan klien untuk memanggil `UpdateMediaStorageConfiguration` API.

```
await kinesisVideoClient
    .updateMediaStorageConfiguration({
        ChannelARN: 'YourChannelARN',
        MediaStorageConfiguration: {
            Status: 'ENABLED',
            StreamARN: 'YourStreamARN',
        },
    })
    .promise();
```

Halaman web langsung dengan contoh kode ini tersedia untuk digunakan di [GitHub](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html). Masukkan wilayah, AWS kredensil, dan nama saluran pensinyalan Anda. 

**Perluas node **WebRTC Ingestion and** Storage, ketik nama aliran Anda, lalu pilih Perbarui Konfigurasi Penyimpanan Media.** Saluran akan dikonfigurasi untuk menyerap media ke aliran yang ditentukan.

------

## Putuskan tautan saluran dan streaming pensinyalan
<a name="ingest-unlink"></a>

**penting**  
Anda tidak dapat menghapus saluran pensinyalan atau streaming sampai mereka tidak terhubung satu sama lain.

Jika Anda tidak ingin media saluran pensinyalan tertelan ke streaming, gunakan [UpdateMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_UpdateMediaStorageConfiguration.html)API untuk memutuskan tautan sumber daya Kinesis Video Streams. Setelah saluran tidak terhubung, peer-to-peer koneksi langsung dapat dilanjutkan. 

------
#### [ Konsol Manajemen AWS ]

**catatan**  
Operasi ini saat ini tidak didukung di Kinesis Konsol Manajemen AWS Video Streams.

Buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya. 

Ikuti instruksi di AWS CLI tab.

------
#### [ AWS CLI ]

Verifikasi bahwa Anda telah AWS CLI menginstal dan mengkonfigurasi. Untuk informasi lebih lanjut, lihat [AWS Command Line Interface](https://docs.aws.amazon.com//cli/latest/userguide/)dokumentasi.

Untuk petunjuk penginstalan, lihat [Panduan AWS Command Line Interface Pengguna](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions). Setelah instalasi, [konfigurasikan AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-quickstart.html#getting-started-quickstart-new) dengan kredensyal dan wilayah.

Atau, buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya.

Jalankan `Update-Media-Storage-Configuration` perintah di AWS CLI:

```
aws kinesisvideo update-media-storage-configuration \
  --channel-arn arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123 \
  --media-storage-configuration \
    StreamARN="null",Status="DISABLED" \
  --region "us-west-2"
```

------
#### [ AWS SDK ]

Cuplikan kode ini menunjukkan cara mengonfigurasi saluran pensinyalan untuk menyerap media ke aliran video Kinesis yang ditentukan menggunakan SDK untuk v2. AWS JavaScript Sintaks akan berbeda dari yang lain AWS SDKs, tetapi aliran umum akan sama. Lihat contoh kode lengkap di [GitHub](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/blob/master/examples/updateMediaStorageConfiguration.js).

Buat klien Kinesis Video Streams. Ini adalah klien yang digunakan untuk memanggil [UpdateMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_UpdateMediaStorageConfiguration.html)API.

```
const clientConfig = {
    accessKeyId: 'YourAccessKey',
    secretAccessKey: 'YourSecretKey',
    region: 'us-west-2'
};
const kinesisVideoClient = new AWS.KinesisVideo(clientConfig);
```

Gunakan klien untuk memanggil `UpdateMediaStorageConfiguration` API.

```
await kinesisVideoClient
    .updateMediaStorageConfiguration({
        ChannelARN: 'YourChannelARN',
        MediaStorageConfiguration: {
            Status: 'DISABLED',
            StreamARN: 'null',
        },
    })
    .promise();
```

Halaman web langsung dengan contoh kode ini tersedia untuk digunakan di [GitHub](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html). Masukkan wilayah, AWS kredensyal, dan nama saluran pensinyalan Anda. 

**Perluas simpul **WebRTC Ingestion dan** Storage, verifikasi bahwa bidang Nama **Aliran kosong, lalu pilih Perbarui** Konfigurasi Penyimpanan Media.** Saluran tidak akan lagi dikonfigurasi untuk menyerap media ke aliran yang ditentukan.

------

# Menelan media
<a name="ingest-media"></a>

Batasan berikut sudah ada: 
+ **Durasi sesi:** satu jam, maksimal
+ **Saluran pensinyalan:** maksimum 100 per akun dengan konfigurasi penyimpanan diaktifkan

**Topics**
+ [Menelan media dari browser](#ingest-browser)
+ [Menelan media dari WebRTC C SDK](#ingest-webrtc-sdk)
+ [Tambahkan pemirsa ke sesi konsumsi](#ingest-add-viewers)

## Menelan media dari browser
<a name="ingest-browser"></a>

**penting**  
Chrome saat ini adalah satu-satunya browser yang didukung.

1. [Buka Amazon Kinesis Video Streams dengan WebRTC SDK di halaman contoh. JavaScript ](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html)

1. Lengkapi informasi berikut:
   + **KVS Endpoint** - Di bidang **Region**, pilih wilayah Anda. 

     Misalnya, `us-west-2`.
   + **AWS Kredensialnya**

     Lengkapi bidang berikut:
     + **ID Kunci Akses**
     + **Kunci Akses Rahasia**
     + **Token Sesi** - Aplikasi sampel mendukung kredensyal sementara dan jangka panjang. Biarkan bidang ini kosong jika Anda menggunakan kredensi IAM jangka panjang. Lihat [Kredensi keamanan sementara di IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_temp.html) untuk informasi selengkapnya.
   + **Saluran Sinyal** - Di bidang **Nama Saluran**, ketik nama saluran pensinyalan yang Anda konfigurasikan sebelumnya. Untuk informasi selengkapnya, lihat [Konfigurasikan tujuan](configure-ingestion.md).
   + **Trek** - Pilih **Kirim Video** dan **Kirim Audio**.
   + **WebRTC Ingestion and Storage - Perluas node dan pilih** **Secara otomatis menentukan mode konsumsi.** Opsi ini membuat aplikasi sampel memanggil [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html)API untuk menentukan mode mana yang akan dijalankan.

1. Pilih **Mulai Master**.

   Jika saluran pensinyalan dikonfigurasi untuk konsumsi menggunakan [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html)API, aplikasi sampel akan secara otomatis memanggil [JoinStorageSession](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSession.html)API segera setelah tersambung ke saluran Signaling untuk memulai alur kerja penyerapan WebRTC.

## Menelan media dari WebRTC C SDK
<a name="ingest-webrtc-sdk"></a>

Ikuti [Amazon Kinesis Video Streams dengan WebRTC SDK di C untuk perangkat yang disematkan](kvswebrtc-sdk-c.md) prosedur untuk membangun aplikasi sampel.

1. Siapkan lingkungan Anda dengan Akun AWS kredensi Anda:

   ```
   export AWS_ACCESS_KEY_ID=YourAccessKey
   export AWS_SECRET_ACCESS_KEY=YourSecretKey
   export AWS_DEFAULT_REGION=YourAWSRegion
   ```

   Jika Anda menggunakan AWS kredensil sementara, ekspor juga token sesi Anda:

   ```
   export AWS_SESSION_TOKEN=YourSessionToken
   ```

1. Jalankan sampel:

   **Sampel master**

   Arahkan ke `build` folder dan gunakan “1" sebagai argumen kedua. Jenis:

   ```
   ./samples/kvsWebrtcClientMaster channel-name 1
   ```

   **GStreamer sampel master**

   Arahkan ke `build` folder dan gunakan audio-video-storage "" sebagai argumen kedua. Jenis:

   ```
   ./samples/kvsWebrtcClientMasterGstSample channel-name audio-video-storage testsrc
   ```

Ini memulai konsumsi WebRTC. 

**catatan**  
Saluran pensinyalan yang disediakan harus dikonfigurasi untuk penyimpanan. Gunakan [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html)API untuk mengonfirmasi.

## Tambahkan pemirsa ke sesi konsumsi
<a name="ingest-add-viewers"></a>

Setelah saluran pensinyalan berada dalam mode WebRTC Ingestion, peserta pemirsa tidak lagi terhubung langsung ke peserta utama. Peserta penampil terhubung langsung ke sesi penyimpanan. Peserta pemirsa menerima media yang dikirim oleh peserta utama, dan peserta pemirsa dapat mengirim kembali audio opsional ke peserta utama. Setiap audio yang dikirim kembali oleh pemirsa akan dikirim ke semua rekan lain yang terhubung ke sesi penyimpanan dan dicerna ke Kinesis Video Stream, selama peserta utama terhubung ke sesi penyimpanan.

Batasan berikut sudah ada:
+ **Jumlah maksimum pemirsa:** 3 
+ **Waktu maksimum peserta penampil dapat dihubungkan ke sesi penyimpanan tanpa peserta master hadir:** 3 menit 

**penting**  
Jika pemirsa terputus dari sesi penyimpanan (menutup koneksi rekan), kuota mereka (batas penampil) tetap dikonsumsi selama 1 menit. Selama periode 1 menit ini, pemirsa dapat memanggil API ini dengan ID Klien yang sama untuk bergabung kembali dengan sesi tanpa menggunakan kuota penampil tambahan. Setelah 1 menit, kuota pemirsa dirilis dan tersedia bagi pemirsa lain untuk bergabung.

**Browser**

**penting**  
Chrome adalah satu-satunya browser yang didukung.

1. [Buka tab lain di Amazon Kinesis Video Streams dengan WebRTC SDK di halaman contoh. JavaScript ](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html) Semua informasi dari halaman sebelumnya akan diisi secara otomatis. Jika tidak, lengkapi informasi berikut:
   + **KVS Endpoint** - Di bidang **Region**, pilih wilayah Anda. 

     Misalnya, `us-west-2`.
   + **AWS Kredensialnya**

     Lengkapi bidang-bidang berikut:
     + **ID Kunci Akses**
     + **Kunci Akses Rahasia**
     + **Token Sesi** - Aplikasi sampel mendukung kredensyal sementara dan jangka panjang. Biarkan bidang ini kosong jika Anda menggunakan kredensi IAM jangka panjang. Lihat [Kredensi keamanan sementara di IAM](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_temp.html) untuk informasi selengkapnya.
   + **Saluran Sinyal** - Di bidang **Nama Saluran**, ketik nama saluran pensinyalan yang Anda konfigurasikan sebelumnya. Untuk informasi selengkapnya, lihat [Konfigurasikan tujuan](configure-ingestion.md).
   + **Trek** - Pilih **Kirim Audio**. Perhatikan bahwa jika **Kirim Video** dicentang, secara otomatis akan dihapus centang saat memilih **Mulai Penampil**.
   + **WebRTC Ingestion and Storage - Perluas node dan pilih** **Secara otomatis menentukan mode konsumsi.** Opsi ini membuat aplikasi sampel memanggil [DescribeMediaStorageConfiguration](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeMediaStorageConfiguration.html)API untuk menentukan mode mana yang akan dijalankan.

1. Pilih **Mulai Penampil**.

   Aplikasi secara otomatis memanggil [JoinStorageSessionAsViewer](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSessionAsViewer.html)API segera setelah terhubung ke saluran pensinyalan untuk memicu penawaran SDP yang dikirim ke pemirsa dari sesi.

**catatan**  
Dengan peer-to-peer WebRTC, peserta pemirsa adalah rekan pengendali dan peserta utama adalah rekan yang dikendalikan. Dalam mode konsumsi WebRTC, sesi penyimpanan sekarang menjadi rekan pengendali. Setelah terhubung ke pensinyalan dan pemanggilan [JoinStorageSessionAsViewer](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSessionAsViewer.html), penampil harus menanggapi penawaran SDP dan membuat koneksi ke sesi penyimpanan melalui WebRTC.

**catatan**  
Sesi penyimpanan hanya akan mengirim `TURN` kandidat. Saat mencalonkan pasangan kandidat ICE dari sudut pandang peserta, kandidat jarak jauh akan selalu bertipe. `relay`

# Pemutaran media yang dicerna
<a name="ingestion-view-media"></a>

Anda dapat menggunakan data media dengan melihatnya di konsol, atau dengan membuat aplikasi yang membaca data media dari aliran menggunakan Hypertext Live Streaming (HLS).

## Lihat media di konsol
<a name="ingestion-view-media-console"></a>

Di tab browser lain, buka file Konsol Manajemen AWS. Di Dasbor Kinesis Video Streams[,](https://us-west-2.console.aws.amazon.com/kinesisvideo/home?region=us-west-2#/streams) pilih Streaming video.

Pilih nama aliran Anda dalam daftar aliran. Gunakan bilah pencarian, jika perlu.

Perluas bagian **Pemutaran media**. Jika video masih diunggah, itu akan ditampilkan. Jika unggahan telah selesai, pilih panah kiri ganda.

## Konsumsi data media menggunakan HLS
<a name="ingestion-consume-hls"></a>

Anda dapat membuat aplikasi klien yang mengkonsumsi data dari aliran video Kinesis menggunakan HLS. Untuk informasi tentang membuat aplikasi yang menggunakan data media menggunakan HLS, lihat Pemutaran [Kinesis Video Streams](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/how-playback.html).

## Melihat media menggunakan aplikasi penampil media sampel
<a name="ingestion-view-application"></a>

Amazon Kinesis Video Streams membuat contoh implementasi halaman web dari penampil media yang mampu memutar Kinesis Video Streams di HLS atau DASH. Anda dapat melihat kode sumber [GitHub](https://github.com/aws-samples/amazon-kinesis-video-streams-media-viewer)dan mencoba menggunakan [halaman web yang dihosting](https://aws-samples.github.io/amazon-kinesis-video-streams-media-viewer/).

1. Buka [Penampil Media Streams Video Amazon Kinesis](https://aws-samples.github.io/amazon-kinesis-video-streams-media-viewer/).

1. Lengkapi bidang-bidang berikut:
   + **Wilayah** - Pilih **us-west-2**.
   + **AWS Kunci Akses**
   + **AWS Kunci Rahasia**
   + **Nama aliran**
   + **Mode Pemutaran** - Pilih **Langsung**.

1. Pilih **Mulai Pemutaran**.

# Connect ke sesi penyimpanan
<a name="ingestion-initiate"></a>

Ikuti prosedur ini untuk membuat sesi penyimpanan dan memulai proses koneksi WebRTC. Peserta utama harus menelepon [JoinStorageSession](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSession.html). Peserta pemirsa harus menelepon [JoinStorageSessionAsViewer](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSessionAsViewer.html). 

Ini akan membuat sesi penyimpanan mengirim penawaran SDP dan kandidat ICE melalui pensinyalan ke peserta utama yang terhubung[ConnectAsMaster](ConnectAsMaster.md), atau peserta pemirsa tertentu yang terhubung melalui. [ConnectAsViewer](ConnectAsViewer.md) 

1. Dapatkan ARN dari saluran pensinyalan, karena ini adalah input yang diperlukan untuk langkah selanjutnya. Jika Anda sudah tahu ARN, lanjutkan dengan langkah berikutnya.

------
#### [ Konsol Manajemen AWS ]

   1. Buka konsol Saluran [Pensinyalan Kinesis Video Streams](https://console.aws.amazon.com//kinesisvideo/home/#/signalingChannels).

   1. Pilih nama saluran pensinyalan Anda.

   1. Di bawah tab **Info saluran Pensinyalan**, cari ARN untuk saluran pensinyalan Anda.

------
#### [ AWS CLI ]

   Verifikasi bahwa Anda telah AWS CLI menginstal dan mengkonfigurasi. Untuk informasi selengkapnya, silakan lihat [Panduan Pengguna AWS Command Line Interface](https://docs.aws.amazon.com//cli/latest/userguide/).

   Untuk petunjuk penginstalan, lihat [Panduan AWS Command Line Interface Pengguna](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions). Setelah instalasi, [konfigurasikan AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-quickstart.html#getting-started-quickstart-new) dengan kredensyal dan wilayah.

   Atau, buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya.

   Jalankan perintah [Describe-Signaling-Channel](https://docs.aws.amazon.com//cli/latest/reference/kinesisvideo/describe-signaling-channel.html) berikut menggunakan: AWS CLI

   ```
   aws kinesisvideo describe-signaling-channel \
     --channel-name "YourChannelName" \
   ```

   Responsnya akan terlihat seperti berikut:

   ```
   {
       "ChannelInfo": {
           "ChannelName": "YourChannelName",
           "ChannelARN": "arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123",
           "ChannelType": "SINGLE_MASTER", 
           "ChannelStatus": "ACTIVE",
           "CreationTime": "2024-07-07T23:28:24.941000-07:00",
           "SingleMasterConfiguration": {
           "MessageTtlSeconds": 60
       },
       "Version": "Ws0fZvFGXzEpuZ2CE1s9"
       }
   }
   ```

   Anda akan menemukan saluran pensinyalan ARN di `ChannelInfo` objek.

------
#### [ AWS SDK ]

   Cuplikan kode ini menunjukkan cara membuat Kinesis Video Streams dengan saluran pensinyalan WebRTC menggunakan SDK untuk v2. AWS JavaScript Sintaks akan berbeda dari yang lain AWS SDKs, tetapi aliran umum akan sama. 

   Anda dapat melihat contoh kode lengkap untuk [JoinStorageSession](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/blob/master/examples/joinStorageSession.js)atau [JoinStorageSessionAsViewer](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/blob/master/examples/joinStorageSessionAsViewer.js).

   Buat klien Kinesis Video Streams. Ini digunakan untuk memanggil [DescribeSignalingChannel API](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeSignalingChannel.html).

   ```
   const clientConfig = {
       accessKeyId: 'YourAccessKey',
       secretAccessKey: 'YourSecretKey',
       region: 'us-west-2'
   };
   const kinesisVideoClient = new AWS.KinesisVideo(clientConfig);
   ```

   Gunakan klien untuk memanggil `DescribeSignalingChannel` API.

   ```
   const describeSignalingChannelResponse = await kinesisVideoClient
       .describeSignalingChannel({
           ChannelName: 'YourChannelName',
       })
       .promise();
   ```

   Simpan responsnya.

   ```
   const channelARN =
       describeSignalingChannelResponse.ChannelInfo.ChannelARN;
   ```

------

1. Dapatkan titik akhir WEBRTC. Permintaan ke [JoinStorageSession](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSession.html)atau [JoinStorageSessionAsViewer](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSessionAsViewer.html)untuk saluran pensinyalan tertentu harus dilakukan ke titik akhir yang ditentukan.

------
#### [ Konsol Manajemen AWS ]

**catatan**  
Operasi ini saat ini tidak didukung di Kinesis Konsol Manajemen AWS Video Streams.

   Buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya. 

   Ikuti instruksi di AWS CLI tab.

------
#### [ AWS CLI ]

   Verifikasi bahwa Anda telah AWS CLI menginstal dan mengkonfigurasi. Untuk informasi lebih lanjut, lihat [AWS Command Line Interface](https://docs.aws.amazon.com//cli/latest/userguide/)dokumentasi.

   Untuk petunjuk penginstalan, lihat [Panduan AWS Command Line Interface Pengguna](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions). Setelah instalasi, [konfigurasikan AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-quickstart.html#getting-started-quickstart-new) dengan kredensyal dan wilayah.

   Atau, buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya.

   Jalankan `Get-Signaling-Channel-Endpoint` perintah di AWS CLI:

   ```
   aws kinesisvideo get-signaling-channel-endpoint \
     --channel-arn "arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123" \
     --single-master-channel-endpoint-configuration "Protocols=['WEBRTC'],Role=MASTER" \
     --region "us-west-2"
   ```

   Responsnya terlihat seperti berikut ini:

   ```
   {
       "ResourceEndpointList": [
           {
               "Protocol": "WEBRTC",
               "ResourceEndpoint": "https://w-abcd1234.kinesisvideo.aws-region.amazonaws.com"
           } 
       ]
   }
   ```

------
#### [ AWS SDK ]

   Cuplikan kode ini menunjukkan cara memanggil `GetSignalingChannelEndpoint` API untuk Kinesis Video Streams dengan saluran pensinyalan WebRTC menggunakan SDK untuk v2. AWS JavaScript Sintaks akan berbeda dari yang lain AWS SDKs, tetapi aliran umum akan sama. Lihat contoh kode lengkap untuk [JoinStorageSession](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/blob/master/examples/joinStorageSession.js)atau [JoinStorageSessionAsViewer](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/blob/master/examples/joinStorageSessionAsViewer.js).

   Buat klien Kinesis Video Streams. Ini adalah klien yang digunakan untuk memanggil [DescribeSignalingChannel API](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_DescribeSignalingChannel.html). 

   Jika Anda membuat klien Kinesis Video Streams sebelumnya `DescribeSignalingChannel` untuk menelepon, Anda dapat menggunakan kembali klien yang sama.

   ```
   const clientConfig = {
       accessKeyId: 'YourAccessKey',
       secretAccessKey: 'YourSecretKey',
       region: 'us-west-2'
   };
   const kinesisVideoClient = new AWS.KinesisVideo(clientConfig);
   ```

   Gunakan klien untuk memanggil `GetSignalingChannelEndpoint` API.

   ```
   const getSignalingChannelEndpointResponse = await kinesisVideoClient
       .getSignalingChannelEndpoint({
           ChannelARN: channelARN,
           SingleMasterChannelEndpointConfiguration: {
               Protocols: ['WEBRTC'],
               Role: 'MASTER',
           },
       })
       .promise();
   ```

   Simpan responsnya:

   ```
   const webrtcEndpoint = getSignalingChannelEndpointResponse.ResourceEndpointList[0].ResourceEndpoint;
   ```

------

1. Gunakan saluran ARN dan titik akhir WEBRTC untuk melakukan panggilan API. Jika peserta terhubung dengan benar ke Kinesis Video Streams dengan WebRTC `ConnectAsMaster` Signaling `ConnectAsViewer` WebSocket APIs melalui or, penawaran SDP dan aliran pesan kandidat ICE akan dikirim sepanjang sesi penyimpanan ke peserta. WebSocket 

------
#### [ Konsol Manajemen AWS ]

**catatan**  
Operasi ini saat ini tidak didukung di Kinesis Konsol Manajemen AWS Video Streams.

   Buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya. 

   Ikuti instruksi di AWS CLI tab.

------
#### [ AWS CLI ]

   Verifikasi bahwa Anda telah AWS CLI menginstal dan mengkonfigurasi. Untuk informasi lebih lanjut, lihat [AWS Command Line Interface](https://docs.aws.amazon.com//cli/latest/userguide/)dokumentasi.

   Untuk petunjuk penginstalan, lihat [Panduan AWS Command Line Interface Pengguna](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-install.html#getting-started-install-instructions). Setelah instalasi, [konfigurasikan AWS CLI](https://docs.aws.amazon.com//cli/latest/userguide/getting-started-quickstart.html#getting-started-quickstart-new) dengan kredensyal dan wilayah.

   Atau, buka AWS CloudShell terminal, yang telah AWS CLI diinstal dan dikonfigurasi. Lihat [Panduan AWS CloudShell Pengguna](https://docs.aws.amazon.com//cloudshell/latest/userguide/welcome.html#how-to-get-started) untuk informasi selengkapnya.

   Jalankan `Join-Storage-Session` perintah untuk peserta master dalam AWS CLI menggunakan saluran ARN dan titik akhir WEBRTC dari langkah sebelumnya:

   ```
   aws kinesis-video-webrtc-storage join-storage-session \
     --endpoint-url https://w-abcd1234.kinesisvideo.us-west-2.amazonaws.com \
     --channel-arn arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123 \
     --region "us-west-2"
   ```

   Setelah berhasil dijalankan, respons kosong dikembalikan dan tidak ada yang dicetak. 

   Dalam kasus peserta penampil, jalankan `Join-Storage-Session-As-Viewer` perintah berikut di AWS CLI menggunakan saluran ARN dan titik akhir WEBRTC dari sebelumnya:

   ```
   aws kinesis-video-webrtc-storage join-storage-session-as-viewer \
     --endpoint-url https://w-abcd1234.kinesisvideo.us-west-2.amazonaws.com \
     --channel-arn arn:aws:kinesisvideo:us-west-2:123456789012:channel/YourChannelName/1234567890123 \
     --client-id "ExampleViewerClientID"
     --region "us-west-2"
   ```

   Setelah berhasil dijalankan, respons kosong dikembalikan dan tidak ada yang dicetak. 

------
#### [ AWS SDK ]

   Cuplikan kode ini menunjukkan cara memanggil `JoinStorageSessionAsViewer` API `JoinStorageSession` atau untuk Kinesis Video Streams dengan saluran pensinyalan WebRTC menggunakan SDK untuk v2. AWS JavaScript Sintaks akan berbeda dari yang lain AWS SDKs, tetapi aliran umum akan sama. Lihat contoh kode lengkap untuk [JoinStorageSession](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/blob/master/examples/joinStorageSession.js)atau [JoinStorageSessionAsViewer](https://github.com/awslabs/amazon-kinesis-video-streams-webrtc-sdk-js/blob/master/examples/joinStorageSessionAsViewer.js).

   Buat klien penyimpanan WebRTC Kinesis Video Streams. Ini adalah klien yang digunakan untuk memanggil `JoinStorageSession` atau `JoinStorageSessionAsViewer` dan berbeda dari klien Kinesis Video Streams yang dibuat pada langkah sebelumnya.

   ```
   const webrtcStorageClientConfig = {
       accessKeyId: 'YourAccessKey',
       secretAccessKey: 'YourSecretKey',
       region: 'us-west-2',
       endpoint: webrtcEndpoint
   };
   const kinesisVideoWebRTCStorageClient = new AWS.KinesisVideoWebRTCStorage(clientConfig);
   ```

   Gunakan klien untuk memanggil `JoinStorageSession` API bagi peserta master.

   ```
   await kinesisVideoWebRTCStorageClient
       .joinStorageSession({
           channelArn: channelARN,
       })
       .promise();
   ```

   Dalam kasus peserta penampil, gunakan klien untuk memanggil `JoinStorageSessionAsViewer` API.

   ```
   await kinesisVideoWebRTCStorageClient
       .joinStorageSessionAsViewer({
           channelArn: channelARN,
           clientId: "ExampleViewerClientID",
       })
       .promise();
   ```

   Halaman web langsung dengan contoh kode ini tersedia di [GitHub](https://awslabs.github.io/amazon-kinesis-video-streams-webrtc-sdk-js/examples/index.html). Masukkan wilayah, AWS kredensyal, dan nama saluran pensinyalan Anda. **Perluas simpul **WebRTC Ingestion and Storage, dan** hapus centang Secara otomatis menentukan mode konsumsi.** 

   Alihkan penggantian manual ke **ON** dan pilih **tombol Tampilkan untuk memanggil tombol JoinStorageSession API and/or Show secara manual** **untuk memanggil JoinStorageSessionAsViewer API secara manual**. 

   Ketika Anda memilih **Start Master** atau **Start Viewer**, setelah aplikasi terhubung ke signaling via `ConnectAsMaster` or`ConnectAsViewer`, sebuah tombol akan muncul untuk memiliki sesi penyimpanan memulai koneksi WebRTC dengan peer alih-alih aplikasi memanggil API segera setelah menghubungkan ke signaling.

------

# Memecahkan masalah yang berhubungan dengan sesi penyimpanan
<a name="troubleshoot-establish-storage"></a>

Bagian ini memberikan panduan tentang masalah pemecahan masalah yang terkait dengan pengaturan dan konfigurasi penyimpanan untuk merekam aliran video.

**Topics**
+ [Mengontrol dan mengendalikan rekan-rekan](#troubleshoot-control-peers)
+ [Tinjau codec yang didukung](#troubleshoot-review-codecs)
+ [Jika saluran tidak dipetakan ke aliran, juga akan membuang 400 InvalidArgumentException](#troubleshoot-channel-mapping)

## Mengontrol dan mengendalikan rekan-rekan
<a name="troubleshoot-control-peers"></a>

Di WebRTC, peer pengendali memulai koneksi ke peer yang dikontrol dengan mengirimkan penawaran SDP. Untuk peer-to-peer sesi, peserta pemirsa memulai koneksi dengan mengirimkan penawaran kepada peserta utama melalui Signaling. Saat menghubungkan ke sesi penyimpanan untuk konsumsi WebRTC, sesi penyimpanan adalah rekan pengendali. Untuk peserta master, mereka masih tetap menjadi peserta yang terkontrol. Namun, peserta pemirsa beralih dari kontrol ke kontrol.

Setelah menelepon [JoinStorageSession](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSession.html)atau [JoinStorageSessionAsViewer](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSessionAsViewer.html), semua peserta harus menanggapi dengan jawaban SDP dan bertukar kandidat ICE dengan sesi penyimpanan.

Untuk diagram urutan, lihat Memahami konsumsi dan penyimpanan WebRTC.

**penting**  
Pesan sinyal yang diterima dari sesi penyimpanan tidak memiliki senderClientId bidang di JSON, yang berbeda dari peer-to-peer master, yang selalu menerima senderClientId bidang dengan penawaran SDP dan kandidat ICE.

## Tinjau codec yang didukung
<a name="troubleshoot-review-codecs"></a>

Saat [mengirim jawaban SDP](https://docs.aws.amazon.com//kinesisvideostreams-webrtc-dg/latest/devguide/SendSdpAnswer.html) dan [bertukar kandidat ICE](https://docs.aws.amazon.com//kinesisvideostreams-webrtc-dg/latest/devguide/SendIceCandidate.html) dengan sesi penyimpanan, kami sarankan untuk menyertakan a `correlationId` dalam pesan. `correlationId`Menyertakan a dalam pesan memungkinkan sesi penyimpanan untuk mengembalikan `statusResponse` pesan. Pesan-pesan ini akan berisi pesan masukan, memungkinkan Anda untuk melacak pesan mana yang `statusResponse` dimiliki. `correlationId` Ini memungkinkan Anda menerima umpan balik langsung tentang mengapa jawaban SDP Anda ditolak. 

Untuk informasi selengkapnya tentang `correlationId` dan `statusResponse`, lihat [Penerimaan pesan asinkron](async-message-reception-api.md). 

Salah satu alasan umum sesi penyimpanan mungkin menolak jawaban SDP adalah karena sesi penyimpanan tidak dapat menerima codec yang ditentukan dalam jawabannya. Sampel `statusResponse` mungkin terlihat seperti berikut: 

```
{
  "correlationId": "1700186220273",
  "errorType": "InvalidArgumentException",
  "statusCode": "400",
  "success": false
}
```

Saat Anda meninjau konten jawaban SDP, tinjau baris yang dimulai `a=rtpmap` dan verifikasi bahwa codec cocok dengan codec yang didukung sesi penyimpanan. Di bawah ini adalah cuplikan dari contoh jawaban SDP yang berisi audio dan video opus. VP8 

```
...
a=rtpmap:111 opus/48000/2
...
a=rtpmap:120 VP8/90000
...
```

Lihat [JoinStorageSession](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/API_webrtc_JoinStorageSession.html)daftar codec yang didukung.

## Jika saluran tidak dipetakan ke aliran, juga akan membuang 400 InvalidArgumentException
<a name="troubleshoot-channel-mapping"></a>

### Tinjau arah transceiver
<a name="troubleshoot-transceiver-directions"></a>

Dalam jawaban SDP, tinjau arah transceiver video dan audio. Garis-garis di SDP terlihat seperti ini:

```
a=sendrecv
a=recvonly
```

Untuk peserta master, persyaratan berikut ada:
+ Video H.264: kirim saja
+ Opus audio: sendonly atau sendrecv

Untuk peserta pemirsa, persyaratan berikut diberlakukan:
+ Video H.264: recvonly
+ Opus audio: recvonly atau sendrecv

Jika persyaratan layanan tidak terpenuhi, StatusResponse dengan 400 IllegalArgumentException akan dikembalikan jika CorrelationID diberikan saat jawaban dikirim.

Saat menggunakan aplikasi sampel konsumsi WebRTC yang disediakan KVS:
+ Peserta utama: Pastikan pengaturan “kirim video” dan “kirim audio” keduanya diaktifkan
+ Peserta pemirsa: Pastikan pengaturan “kirim video” dinonaktifkan

### Tinjau konversi kandidat ICE
<a name="troubleshoot-ice-candidate-conversion"></a>

Saat menerima kandidat ICE dari KVS Signaling SDK, aplikasi mungkin perlu mengubah string menjadi objek kandidat ICE.

Kandidat ICE yang diterima dari sesi penyimpanan tidak mengandung properti SDPMID, dan tidak datang dengan. senderClientId

Tinjau logika aplikasi Anda untuk menambahkan kandidat ICE yang diterima dari jarak jauh ke objek RTCPeer Connection aplikasi Anda.

### Tinjau logika antrian kandidat ICE
<a name="troubleshoot-ice-candidate-queuing"></a>

Semua kandidat ICE yang diterima dari sesi penyimpanan perlu ditambahkan ke RTCPeer Koneksi melalui addIceCandidate API.

Meskipun sesi penyimpanan mengirimkan penawaran SDP sebelum kandidat ICE, karena sifat tidak sinkron dari pengiriman pesan Signaling, aplikasi dapat menerima kandidat ICE sebelum menerima penawaran.

Dalam hal ini, Anda perlu menerapkan buffer sementara untuk menahan kandidat ICE.

Logika yang diterapkan dalam aplikasi sampel KVS adalah sebagai berikut:

1. Sampel memelihara peta senderClientId ke RTCPeer Koneksinya.

1. Sampel mempertahankan peta lain dari daftar Kandidat Es yang tertunda. senderClientId 

1. Ketika kandidat ICE diterima, periksa PeerConnection peta. Jika PeerConnection peta belum memiliki koneksi, tambahkan ke daftar yang tertunda. Jika tidak, tambahkan kandidat ICE ke PeerConnection.

1. Ketika penawaran diterima, itu membuat RTCPeer Koneksi dan menambahkannya ke PeerConnection peta. Kemudian, tambahkan semua kandidat ICE dari antrian yang tertunda ke ini PeerConnection.