

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

# Kirim data ke aliran video Amazon Kinesis
<a name="gs-send-data"></a>

Bagian ini menjelaskan cara mengirim data media dari kamera ke aliran video Kinesis yang Anda buat di bagian sebelumnya. Bagian ini menggunakan [Gunakan pustaka produser C \$1\$1](producer-sdk-cpp.md) sebagai [Contoh: Plugin SDK GStreamer produsen Kinesis Video Streams - kvssink](examples-gstreamer-plugin.md) plugin.

Untuk mengirim media dari berbagai perangkat pada berbagai sistem operasi, tutorial ini menggunakan [GStreamer](https://gstreamer.freedesktop.org/)perpustakaan produser Kinesis Video Streams C \$1\$1 dan, kerangka media open-source yang menstandarisasi akses ke kamera dan sumber media lainnya. 

**Topics**
+ [Membangun SDK dan sampel](#send-data-build-sdk)
+ [Jalankan sampel untuk mengunggah media ke Kinesis Video Streams](#send-data-run-samples)
+ [Tinjau objek pengakuan](#gs-review-acks)

## Membangun SDK dan sampel
<a name="send-data-build-sdk"></a>

Anda dapat membangun SDK dan sampel di komputer Anda atau di AWS Cloud9. Ikuti prosedur yang sesuai di bawah ini.

------
#### [ Build on your computer ]

Gunakan instruksi dalam [file readme](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp) untuk membangun pustaka produser dan aplikasi sampel.

Hal ini mencakup:
+ Menginstal dependensi
+ Mengkloning repositori
+ Menggunakan **CMake**untuk menghasilkan **makefile**
+ Membangun file biner menggunakan **make**

------
#### [ Build in AWS Cloud9 ]

Ikuti prosedur ini untuk mengunggah ke Kinesis Video AWS Cloud9 Streams di. Anda tidak perlu mengunduh apa pun ke komputer Anda.

1. Di Konsol Manajemen AWS, terbuka [AWS Cloud9](https://us-west-2.console.aws.amazon.com/cloud9control/home).

   Pilih **Buat lingkungan**.

1. Pada layar **Create environment**, lengkapi yang berikut ini:
   + **Nama** - Ketik nama untuk lingkungan baru Anda.
   + **Platform** - Pilih **Ubuntu Server 22.04 LTS**.

   Anda dapat meninggalkan bidang lain dengan pilihan default.

1. Ketika lingkungan telah dibuat, pilih **Buka di kolom** **Cloud9 IDE**.

   Di area tengah bawah layar, Anda lihat. `Admin:~/environment $` Ini adalah terminal AWS Cloud9 (Amazon EC2).
**catatan**  
Jika Anda secara tidak sengaja menutup terminal, pilih **Jendela**, **Terminal Baru**.

   Jalankan perintah berikut di terminal untuk mengubah volume menjadi 20 GiB.

   1. Unduh skrip .

      ```
      wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/resize_volume.sh
      ```

   1. Berikan izin eksekusi skrip.

      ```
      chmod +x resize_volume.sh
      ```

   1. Jalankan penulisan.

      ```
      ./resize_volume.sh
      ```

1. Ambil informasi terbaru tentang semua perangkat lunak yang dapat Anda instal atau perbarui melalui Advanced Packaging Tool (APT). 

   Perintah ini tidak memperbarui perangkat lunak itu sendiri, tetapi memastikan sistem Anda tahu apa versi terbaru yang tersedia.

   ```
   sudo apt-get update
   ```

1. Instal dependensi SDK produsen C\$1\$1.

   ```
   sudo apt-get install -y cmake m4 git build-essential pkg-config libssl-dev libcurl4-openssl-dev \
   liblog4cplus-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
   gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-bad gstreamer1.0-plugins-good \
   gstreamer1.0-plugins-ugly gstreamer1.0-tools
   ```

1. Gunakan git untuk mengkloning SDK produsen C \$1\$1. 

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

1. Siapkan direktori build.

   ```
   cd amazon-kinesis-video-streams-producer-sdk-cpp
   mkdir build
   cd build
   ```

1. Gunakan CMake untuk menghasilkan makefiles. 

   ```
   cmake .. -DBUILD_GSTREAMER_PLUGIN=TRUE -DBUILD_DEPENDENCIES=OFF
   ```

   Akhir dari output yang diharapkan terlihat seperti berikut:

   ```
   -- Build files have been written to: /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
   ```

1. Gunakan make untuk mengkompilasi SDK dan contoh aplikasi, serta membangun executable akhir.

   ```
   make
   ```

   Akhir dari output yang diharapkan terlihat seperti berikut:

   ```
   [100%] Linking CXX executable kvs_gstreamer_file_uploader_sample
   [100%] Built target kvs_gstreamer_file_uploader_sample
   ```

1. Konfirmasikan file sampel telah dibuat. Daftar file di direktori saat ini:

   ```
   ls
   ```

   Konfirmasikan bahwa file-file berikut ada:
   + kvs\$1gstreamer\$1sample
   + libgstkvssink.so

1. (Opsional) Anda dapat menambahkan pengaturan variabel lingkungan GST\$1PLUGIN\$1PATH ke skrip start-up shell Anda. Ini memastikan GST\$1PLUGIN\$1PATH diatur dengan benar selama sesi terminal baru. Di AWS Cloud9, skrip start-up shell adalah:. `~/.bashrc`

   Jalankan perintah berikut untuk menambahkan perintah ke akhir skrip start-up shell.

   ```
   echo "export GST_PLUGIN_PATH=~/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build" >> ~/.bashrc
   ```

   Ketik berikut ini untuk menjalankan skrip start-up shell:

   ```
   source ~/.bashrc
   ```

   Konfirmasikan GST\$1PLUGIN\$1PATH disetel.

   ```
   echo $GST_PLUGIN_PATH
   ```

   Jika Anda mengatur output dengan benar, Anda akan melihat output berikut. Jika output kosong, variabel lingkungan tidak diatur dengan benar.

   ```
   /home/ubuntu/environment/amazon-kinesis-video-streams-producer-sdk-cpp/build
   ```

------

## Jalankan sampel untuk mengunggah media ke Kinesis Video Streams
<a name="send-data-run-samples"></a>

Aplikasi sampel tidak mendukung kredensyal IMDS. Di terminal Anda, ekspor AWS kredensyal untuk pengguna atau peran IAM Anda dan wilayah tempat aliran Anda berada.

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

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

```
export AWS_SESSION_TOKEN=YourSessionToken
```

------
#### [ .mp4 files ]

Unduh contoh video.mp4 untuk diunggah ke Kinesis Video Streams. 

```
wget https://awsj-iot-handson.s3-ap-northeast-1.amazonaws.com/kvs-workshop/sample.mp4
```

Spesifikasi video:
+ **Resolusi** - 1280 x 720 piksel 
+ **Frame rate** - 30 frame per detik
+ **Durasi** - 14,0 detik
+ **Pengkodean video** - H.264, di trek 1
+ **Keyframes** - Setiap 3 detik, menghasilkan durasi fragmen (juga dikenal sebagai ukuran sekelompok gambar (GoP)) 3 detik, dengan fragmen akhir berdurasi 2 detik.

Jalankan perintah berikut dengan nama aliran yang Anda buat sebelumnya. Jika Anda belum membuat streaming, lihat[Buat aliran video Amazon Kinesis](gs-createstream.md).

```
./kvs_gstreamer_sample YourStreamName ./sample.mp4
```

------
#### [ Sample video from GStreamer ]

Gunakan perintah berikut untuk menghasilkan video menggunakan GStreamer.

Beri tahu GStreamer di mana menemukan `kvssink` GStreamer plugin. Di direktori build Anda, tentukan path ke folder yang berisi `libgstkvssink.so` file. 

Dari direktori build Anda, jalankan perintah berikut:

```
export GST_PLUGIN_PATH=`pwd`
```

 GStreamer Pipeline ini menghasilkan streaming video uji langsung dengan pola pengujian standar yang berjalan pada 10 frame per detik dengan resolusi 640x480 piksel. Hamparan ditambahkan menampilkan waktu dan tanggal sistem saat ini. Video kemudian dikodekan ke dalam format H.264 dan keyframe dihasilkan paling banyak setiap 10 frame, menghasilkan durasi fragmen (juga dikenal sebagai ukuran sekelompok gambar (GoP)) 1 detik. `kvssink`mengambil aliran video yang dikodekan H.264, mengemasnya ke dalam format wadah Matroska (MKV), dan mengunggahnya ke aliran video Kinesis Anda.

Jalankan perintah berikut:

```
gst-launch-1.0 -v videotestsrc is-live=true \
  ! video/x-raw,framerate=10/1,width=640,height=480 \
  ! clockoverlay time-format="%a %B %d, %Y %I:%M:%S %p" \
  ! x264enc bframes=0 key-int-max=10 \
  ! h264parse \
  ! kvssink stream-name="YourStreamName"
```

Untuk menghentikan GStreamer pipa, pilih jendela terminal dan tekan **CTRL\$1C**.

------

**catatan**  
Untuk informasi lebih lanjut tentang menggunakan GStreamer plugin untuk melakukan streaming video dari aliran RTSP dari kamera, atau dari kamera USB, lihat[Contoh: Plugin SDK GStreamer produsen Kinesis Video Streams - kvssink](examples-gstreamer-plugin.md).

## Tinjau objek pengakuan
<a name="gs-review-acks"></a>

Selama upload, Kinesis Video Streams akan mengirim objek pengakuan kembali ke klien yang melakukan upload. Anda akan melihat ini dicetak dalam output perintah. Contohnya terlihat seperti berikut: 

```
{"EventType":"PERSISTED","FragmentTimecode":1711124585823,"FragmentNumber":"12345678901234567890123456789012345678901234567"}
```

Jika pengakuan itu`PERSISTED`, itu `EventType` berarti Kinesis Video Streams telah lama menyimpan dan mengenkripsi potongan media ini untuk pengambilan, analisis, dan penyimpanan jangka panjang. 

Untuk informasi lebih lanjut tentang ucapan terima kasih, lihat. [PutMedia](API_dataplane_PutMedia.md)