

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 \+\+](producer-sdk-cpp.md) sebagai [Contoh: Kinesis Video Streams produser SDK GStreamer Plugin - kvssink](examples-gstreamer-plugin.md) plugin.

Untuk mengirim media dari berbagai perangkat pada berbagai sistem operasi, tutorial ini menggunakan [perpustakaan](https://gstreamer.freedesktop.org/) produser Kinesis Video Streams C \+\+ dan GStreamer, 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\+\+.

   ```
   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 \+\+. 

   ```
   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 makefile. 

   ```
   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\_gstreamer\_sample
   + libgstkvssink.so

1. (Opsional) Anda dapat menambahkan pengaturan variabel lingkungan GST\_PLUGIN\_PATH ke skrip start-up shell Anda. Ini memastikan GST\_PLUGIN\_PATH 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\_PLUGIN\_PATH 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 plugin `kvssink` GStreamer. 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`
```

Pipeline GStreamer 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 H.264 format dan keyframe dihasilkan paling banyak setiap 10 frame, menghasilkan durasi fragmen (juga dikenal sebagai ukuran sekelompok gambar (GoP)) 1 detik. `kvssink`mengambil aliran H.264-encoded video, 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 pipa GStreamer, pilih jendela terminal dan tekan CTRL\+C.**

------

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

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

Selama pengunggahan, Kinesis Video Streams akan mengirim objek pengakuan kembali ke klien yang melakukan unggahan. 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](https://docs.aws.amazon.com/kinesisvideostreams/latest/APIReference/API_dataplane_PutMedia.html)