

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

# Contoh: Plugin SDK GStreamer produsen Kinesis Video Streams - kvssink
<a name="examples-gstreamer-plugin"></a>

Topik ini menjelaskan cara membuat SDK produser Amazon Kinesis Video Streams untuk digunakan sebagai plugin. GStreamer 

**Topics**
+ [Unduh, bangun, dan konfigurasikan GStreamer elemen](#examples-gstreamer-plugin-download)
+ [Jalankan GStreamer elemen](#examples-gstreamer-plugin-run)
+ [Contoh perintah GStreamer peluncuran](#examples-gstreamer-plugin-launch)
+ [Jalankan GStreamer elemen dalam wadah Docker](#examples-gstreamer-plugin-docker)
+ [GStreamer referensi parameter elemen](examples-gstreamer-plugin-parameters.md)

[GStreamer](https://gstreamer.freedesktop.org/)adalah kerangka media populer yang digunakan oleh beberapa kamera dan sumber video untuk membuat saluran media khusus dengan menggabungkan plugin modular. Plugin Kinesis GStreamer Video Streams merampingkan integrasi pipeline media yang ada dengan Kinesis Video Streams. GStreamer Setelah mengintegrasikan GStreamer, Anda dapat melakukan streaming video dari webcam atau kamera Real Time Streaming Protocol (RTSP) ke Kinesis Video Streams untuk pemutaran, penyimpanan, dan analisis lebih lanjut secara real-time atau lebih baru. 

 GStreamer Plugin secara otomatis mengelola transfer aliran video Anda ke Kinesis Video Streams dengan merangkum fungsionalitas yang disediakan oleh SDK produsen Kinesis Video Streams dalam elemen sink,. GStreamer `kvssink` GStreamer Kerangka kerja ini menyediakan lingkungan terkelola standar untuk membangun aliran media dari perangkat seperti kamera atau sumber video lainnya untuk pemrosesan, rendering, atau penyimpanan lebih lanjut. 

 GStreamer Pipeline biasanya terdiri dari tautan antara sumber (kamera video) dan elemen wastafel (baik pemutar untuk merender video, atau penyimpanan untuk pengambilan offline). Dalam contoh ini, Anda menggunakan elemen Producer SDK sebagai *wastafel*, atau tujuan media, untuk sumber video Anda (webcam atau kamera IP). Elemen plugin yang merangkum SDK kemudian mengirimkan aliran video ke Kinesis Video Streams. 

Topik ini menjelaskan bagaimana membangun saluran GStreamer media yang mampu mengalirkan video dari sumber video, seperti kamera web atau aliran RTSP, biasanya terhubung melalui tahap pengkodean menengah (menggunakan pengkodean H.264) ke Kinesis Video Streams. Ketika streaming video Anda tersedia sebagai aliran video Kinesis, Anda dapat menggunakannya [Tonton output dari kamera menggunakan pustaka parser](parser-library.md) untuk pemrosesan lebih lanjut, pemutaran, penyimpanan, atau analisis aliran video Anda.

![\[Tampilan fungsional dari pipa GStreamer media untuk streaming video dari kamera ke layanan.\]](http://docs.aws.amazon.com/id_id/kinesisvideostreams/latest/dg/images/gstreamer-pipeline.png)


## Unduh, bangun, dan konfigurasikan GStreamer elemen
<a name="examples-gstreamer-plugin-download"></a>

Contoh GStreamer Plugin disertakan dengan SDK produser Kinesis Video Streams C \$1\$1. Untuk informasi tentang prasyarat dan pengunduhan SDK, lihat. [Unduh dan konfigurasikan kode pustaka produser C\$1\$1](producersdk-cpp-download.md)

Anda dapat membangun GStreamer sink SDK produsen sebagai pustaka dinamis di macOS, Ubuntu, Raspberry Pi, atau Windows. GStreamer Plugin ini terletak di `build` direktori Anda. Untuk memuat plugin ini, itu harus ada di Anda`GST_PLUGIN_PATH`. Jalankan perintah berikut:

```
export GST_PLUGIN_PATH=`pwd`/build
```

**catatan**  
Di macOS, Anda hanya dapat melakukan streaming video dari kamera jaringan saat berjalan GStreamer di wadah Docker. Streaming video dari kamera USB di macOS dalam wadah Docker tidak didukung. 

## Jalankan GStreamer elemen
<a name="examples-gstreamer-plugin-run"></a>

Untuk menjalankan GStreamer elemen SDK produser Kinesis Video Streams sebagai sink, gunakan perintah. `gst-launch-1.0` Gunakan elemen upstream yang sesuai untuk GStreamer plugin untuk digunakan. [Misalnya, [v4l2src untuk perangkat v4l2 pada sistem Linux, atau rtspsrc](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) untuk perangkat RTSP.](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) Tentukan `kvssink` sebagai wastafel (tujuan akhir pipeline) untuk mengirim video ke Producer SDK. 

Selain [memberikan kredensi](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html#credentials-to-kvssink) dan [menyediakan wilayah](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html#kvssink-region), `kvssink` elemen memiliki parameter yang diperlukan berikut:
+ `stream-name`— Nama tujuan Kinesis Video Streams.

Untuk informasi tentang parameter `kvssink` opsional, lihat[GStreamer referensi parameter elemen](examples-gstreamer-plugin-parameters.md).

Untuk informasi terbaru tentang GStreamer plugin dan parameter, lihat [GStreamer Plugin](https://gstreamer.freedesktop.org/documentation/plugins_doc.html?gi-language=c). Anda juga dapat menggunakan `gst-inspect-1.0` diikuti dengan nama GStreamer elemen atau plugin untuk mencetak informasinya dan untuk memverifikasi bahwa itu tersedia di perangkat Anda:

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

Jika bangunan `kvssink` gagal atau GST\$1PLUGIN\$1PATH tidak disetel dengan benar, output Anda akan terlihat mirip dengan ini:

```
No such element or plugin 'kvssink'
```

## Contoh perintah GStreamer peluncuran
<a name="examples-gstreamer-plugin-launch"></a>

Contoh berikut menunjukkan cara menggunakan `kvssink` GStreamer plugin untuk streaming video dari berbagai jenis perangkat.

### Contoh 1: Streaming video dari kamera RTSP di Ubuntu
<a name="examples-gstreamer-plugin-launch-ex1"></a>

Perintah berikut membuat GStreamer pipeline di Ubuntu yang mengalir dari kamera RTSP jaringan, menggunakan plugin [ GStreamer rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html?gi-language=c):

```
gst-launch-1.0 -v rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! kvssink stream-name="YourStreamName" storage-size=128
```

### Contoh 2: Encode dan streaming video dari kamera USB di Ubuntu
<a name="examples-gstreamer-plugin-launch-ex2"></a>

Perintah berikut membuat GStreamer pipeline di Ubuntu yang mengkodekan aliran dari kamera USB dalam format H.264, dan mengalirkannya ke Kinesis Video Streams. Contoh ini menggunakan plugin [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) GStreamer .

```
gst-launch-1.0 v4l2src do-timestamp=TRUE 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="YourStreamName" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### Contoh 3: Streaming video yang telah disandikan sebelumnya dari kamera USB di Ubuntu
<a name="examples-gstreamer-plugin-launch-ex3"></a>

Perintah berikut membuat GStreamer pipeline di Ubuntu yang mengalirkan video yang telah dikodekan kamera dalam format H.264 ke Kinesis Video Streams. Contoh ini menggunakan plugin [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) GStreamer .

```
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! h264parse ! video/x-h264,stream-format=avc,alignment=au ! kvssink stream-name="plugin" storage-size=512 access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### Contoh 4: Streaming video dari kamera jaringan di macOS
<a name="examples-gstreamer-plugin-launch-ex4"></a>

Perintah berikut membuat GStreamer pipeline di macOS yang mengalirkan video ke Kinesis Video Streams dari kamera jaringan. Contoh ini menggunakan plugin [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) GStreamer .

```
gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! h264parse ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512  access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### Contoh 5: Streaming video dari kamera jaringan di Windows
<a name="examples-gstreamer-plugin-launch-ex5"></a>

Perintah berikut membuat GStreamer pipeline di Windows yang mengalirkan video ke Kinesis Video Streams dari kamera jaringan. Contoh ini menggunakan plugin [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) GStreamer .

```
gst-launch-1.0 rtspsrc location="rtsp://YourCameraRtspUrl" short-header=TRUE ! rtph264depay ! video/x-h264, format=avc,alignment=au ! kvssink stream-name="YourStreamName" storage-size=512  access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### Contoh 6: Streaming video dari kamera di Raspberry Pi
<a name="examples-gstreamer-plugin-launch-ex6"></a>

Perintah berikut membuat GStreamer pipeline pada Raspberry Pi yang mengalirkan video ke Kinesis Video Streams. Contoh ini menggunakan plugin [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) GStreamer .

```
gst-launch-1.0 v4l2src do-timestamp=TRUE device=/dev/video0 ! videoconvert ! video/x-raw,format=I420,width=640,height=480,framerate=30/1 ! omxh264enc control-rate=1 target-bitrate=5120000 periodicity-idr=45 inline-header=FALSE ! h264parse ! video/x-h264,stream-format=avc,alignment=au,width=640,height=480,framerate=30/1,profile=baseline ! kvssink stream-name="YourStreamName" access-key="YourAccessKey" secret-key="YourSecretKey" aws-region="YourAWSRegion"
```

### Contoh 7: Streaming audio dan video di Raspberry Pi dan Ubuntu
<a name="examples-gstreamer-plugin-launch-ex7"></a>

Lihat cara [menjalankan perintah gst-launch-1.0 untuk mulai streaming audio dan video di Raspberry-PI dan](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/linux.md#running-the-gst-launch-10-command-to-start-streaming-both-audio-and-video-in-raspberry-pi-and-ubuntu) Ubuntu.

### Contoh 8: Streaming audio dan video dari sumber perangkat di macOS
<a name="examples-gstreamer-plugin-launch-ex8"></a>

Lihat cara [menjalankan perintah gst-launch-1.0 untuk memulai streaming audio dan video](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/macos.md#running-the-gst-launch-10-command-to-start-streaming-both-audio-and-raw-video-in-mac-os) di macOS.

### Contoh 9: Unggah file MKV yang berisi audio dan video
<a name="examples-gstreamer-plugin-launch-ex9"></a>

Lihat cara [menjalankan perintah gst-launch-1.0 untuk mengunggah file MKV yang](https://github.com/awslabs/amazon-kinesis-video-streams-producer-sdk-cpp/blob/master/docs/windows.md#running-the-gst-launch-10-command-to-upload-mkv-file-that-contains-both-audio-and-video) berisi audio dan video. Anda akan memerlukan file uji MKV dengan media yang dikodekan h.264 dan AAC.

## Jalankan GStreamer elemen dalam wadah Docker
<a name="examples-gstreamer-plugin-docker"></a>

Docker adalah platform untuk mengembangkan, menyebarkan, dan menjalankan aplikasi menggunakan kontainer. Menggunakan Docker untuk membuat GStreamer pipeline menstandarisasi lingkungan operasi untuk Kinesis Video Streams, yang merampingkan pembuatan dan penggunaan aplikasi.

Untuk menginstal dan mengkonfigurasi Docker, lihat berikut ini:
+ [Petunjuk unduhan Docker](https://docs.docker.com/engine/install/)
+ [Memulai dengan Docker](https://docs.docker.com/guides/getting-started/)

Setelah menginstal Docker, Anda dapat mengunduh Kinesis Video Streams C \$1\$1 Producer SDK (dan GStreamer plugin) dari Amazon Elastic Container Registry menggunakan salah satu perintah yang disediakan di bawah ini. `docker pull`

Untuk menjalankan GStreamer elemen SDK produser Kinesis Video Streams sebagai sink di container Docker, lakukan hal berikut:

**Topics**
+ [Otentikasi klien Docker Anda](#examples-gstreamer-plugin-docker-authenticate)
+ [Unduh gambar Docker untuk Ubuntu, macOS, Windows, atau Raspberry Pi](#examples-gstreamer-plugin-docker-download)
+ [Jalankan image Docker](#examples-gstreamer-plugin-docker-run)

### Otentikasi klien Docker Anda
<a name="examples-gstreamer-plugin-docker-authenticate"></a>

Autentikasi klien Docker Anda ke registrasi Amazon ECR di mana Anda berniat untuk menarik citra Anda. Anda harus mendapatkan token otentikasi untuk setiap registri yang digunakan. Token berlaku selama 12 jam. Untuk informasi selengkapnya, lihat [Autentikasi Registri](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth) dalam *Panduan Pengguna Amazon Elastic Container Registry*.

**Example : Otentikasi dengan Amazon ECR**  
Untuk mengautentikasi dengan Amazon ECR, salin dan tempel perintah berikut seperti yang ditunjukkan.  

```
sudo aws ecr get-login-password --region us-west-2 | docker login -u AWS --password-stdin https://546150905175.dkr.ecr.us-west-2.amazonaws.com
```
Jika berhasil, output akan mencetak `Login Succeeded`.

### Unduh gambar Docker untuk Ubuntu, macOS, Windows, atau Raspberry Pi
<a name="examples-gstreamer-plugin-docker-download"></a>

Unduh gambar Docker ke lingkungan Docker Anda menggunakan salah satu perintah berikut, tergantung pada sistem operasi Anda:

#### Unduh gambar Docker untuk Ubuntu
<a name="examples-gstreamer-plugin-docker-download-ubuntu"></a>

```
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
```

#### Unduh gambar Docker untuk macOS
<a name="examples-gstreamer-plugin-docker-download-macos"></a>

```
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux:latest
```

#### Unduh gambar Docker untuk Windows
<a name="examples-gstreamer-plugin-docker-download-windows"></a>

```
docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-windows:latest
```

#### Unduh gambar Docker untuk Raspberry Pi
<a name="examples-gstreamer-plugin-docker-download-rpi"></a>

```
sudo docker pull 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi:latest
```

Untuk memverifikasi bahwa gambar berhasil ditambahkan, gunakan perintah berikut:

```
docker images
```

### Jalankan image Docker
<a name="examples-gstreamer-plugin-docker-run"></a>

Gunakan salah satu perintah berikut untuk menjalankan image Docker, tergantung pada sistem operasi Anda:

#### Jalankan image Docker di Ubuntu
<a name="examples-gstreamer-plugin-docker-run-ubuntu"></a>

```
sudo docker run -it --network="host" --device=/dev/video0 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
```

#### Jalankan image Docker di macOS
<a name="examples-gstreamer-plugin-docker-run-macos"></a>

```
sudo docker run -it --network="host" 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-amazon-linux /bin/bash
```

#### Jalankan gambar Docker di Windows
<a name="examples-gstreamer-plugin-docker-run-windows"></a>

```
docker run -it 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-windows AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY RTSP_URL STREAM_NAME
```

#### Jalankan gambar Docker di Raspberry Pi
<a name="examples-gstreamer-plugin-docker-run-rpi"></a>

```
sudo docker run -it --device=/dev/video0 --device=/dev/vchiq -v /opt/vc:/opt/vc 546150905175.dkr.ecr.us-west-2.amazonaws.com/kinesis-video-producer-sdk-cpp-raspberry-pi /bin/bash
```

Docker meluncurkan wadah dan memberi Anda prompt perintah untuk menggunakan perintah di dalam wadah.

Dalam wadah, atur variabel lingkungan menggunakan perintah berikut:

```
export LD_LIBRARY_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$LD_LIBRARY_PATH
export PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/bin:$PATH
export GST_PLUGIN_PATH=/opt/awssdk/amazon-kinesis-video-streams-producer-sdk-cpp/kinesis-video-native-build/downloads/local/lib:$GST_PLUGIN_PATH
```

Mulai streaming untuk `kvssink` menggunakan `gst-launch-1.0` untuk menjalankan pipeline yang sesuai untuk perangkat dan sumber video Anda. Misalnya saluran pipa, lihat[Contoh perintah GStreamer peluncuran](#examples-gstreamer-plugin-launch).