

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esempio: plugin SDK per GStreamer produttori di Kinesis Video Streams - kvssink
<a name="examples-gstreamer-plugin"></a>

Questo argomento descrive come creare l'SDK per produttori di Amazon Kinesis Video Streams da utilizzare come plug-in. GStreamer 

**Topics**
+ [Scarica, crea e configura l'elemento GStreamer](#examples-gstreamer-plugin-download)
+ [Esegui l'elemento GStreamer](#examples-gstreamer-plugin-run)
+ [Esempi di comandi di avvio GStreamer](#examples-gstreamer-plugin-launch)
+ [Esegui l' GStreamer elemento in un contenitore Docker](#examples-gstreamer-plugin-docker)
+ [GStreamer riferimento al parametro dell'elemento](examples-gstreamer-plugin-parameters.md)

[GStreamer](https://gstreamer.freedesktop.org/)è un popolare framework multimediale utilizzato da più fotocamere e sorgenti video per creare pipeline multimediali personalizzate combinando plug-in modulari. Il plug-in Kinesis GStreamer Video Streams semplifica l'integrazione della GStreamer pipeline multimediale esistente con Kinesis Video Streams. Dopo l'integrazione GStreamer, è possibile trasmettere video da una webcam o da una telecamera RTSP (Real Time Streaming Protocol) a Kinesis Video Streams per la riproduzione, l'archiviazione e ulteriori analisi in tempo reale o in un secondo momento. 

Il GStreamer plug-in gestisce automaticamente il trasferimento del flusso video su Kinesis Video Streams incapsulando la funzionalità fornita dall'SDK per produttori di Kinesis Video Streams in un elemento sink,. GStreamer `kvssink` Il GStreamer framework fornisce un ambiente gestito standard per la creazione del flusso multimediale da un dispositivo come una videocamera o un'altra sorgente video per ulteriori elaborazioni, renderizzazioni o archiviazione. 

La GStreamer pipeline consiste in genere nel collegamento tra una sorgente (videocamera) e l'elemento sink (un lettore per il rendering del video o un'archiviazione per il recupero offline). In questo esempio, si utilizza l'elemento SDK Producer come *sink* o destinazione multimediale, per la fonte video (webcam o videocamera IP). L'elemento del plug-in che incapsula l'SDK invia quindi il flusso video a Kinesis Video Streams. 

Questo argomento descrive come costruire una pipeline GStreamer multimediale in grado di trasmettere video da una sorgente video, come una webcam o un flusso RTSP, in genere collegata tramite fasi di codifica intermedie (utilizzando la codifica H.264) a Kinesis Video Streams. Quando il tuo flusso video è disponibile come flusso video Kinesis, puoi utilizzarlo [Guarda l'output delle telecamere utilizzando la libreria parser](parser-library.md) per l'ulteriore elaborazione, riproduzione, archiviazione o analisi del tuo flusso video.

![\[Visualizzazione funzionale della pipeline GStreamer multimediale per lo streaming di video da una telecamera al servizio.\]](http://docs.aws.amazon.com/it_it/kinesisvideostreams/latest/dg/images/gstreamer-pipeline.png)


## Scarica, crea e configura l'elemento GStreamer
<a name="examples-gstreamer-plugin-download"></a>

L'esempio del GStreamer plugin è incluso nell'SDK per produttori Kinesis Video Streams C\$1\$1. Per informazioni sui prerequisiti e il download di SDK consulta [Scarica e configura il codice della libreria C\$1\$1 Producer](producersdk-cpp-download.md).

Puoi creare il GStreamer sink Producer SDK come libreria dinamica su macOS, Ubuntu, Raspberry Pi o Windows. Il GStreamer plugin si trova nella tua directory. `build` Per caricare questo plugin, deve essere nel tuo`GST_PLUGIN_PATH`. Esegui il comando seguente:

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

**Nota**  
Su macOS, puoi eseguire lo streaming di video da una telecamera di rete solo quando è GStreamer in esecuzione in un contenitore Docker. Lo streaming video da una videocamera USB su macOS in un container Docker non è supportato. 

## Esegui l'elemento GStreamer
<a name="examples-gstreamer-plugin-run"></a>

Per eseguire l'esecuzione GStreamer con l'elemento Kinesis Video Streams producer SDK come sink, usa il comando. `gst-launch-1.0` Usa elementi upstream appropriati per l'uso del GStreamer plugin. Ad esempio, [v4l2src](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page) per dispositivi v4l2 su sistemi Linux o [rtspsrc](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc-page) per dispositivi RTSP. Specificare `kvssink` come sink (destinazione finale della pipeline) per inviare video all'SDK Producer. 

Oltre a [fornire credenziali](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html#credentials-to-kvssink) e [fornire una regione](https://docs.aws.amazon.com//kinesisvideostreams/latest/dg/examples-gstreamer-plugin-parameters.html#kvssink-region), l'`kvssink`elemento ha il seguente parametro obbligatorio:
+ `stream-name`— Il nome della destinazione Kinesis Video Streams.

Per informazioni sui `kvssink` parametri opzionali consulta [GStreamer riferimento al parametro dell'elemento](examples-gstreamer-plugin-parameters.md).

[Per le informazioni più recenti su GStreamer plugin e parametri, consulta Plugin. GStreamer ](https://gstreamer.freedesktop.org/documentation/plugins_doc.html?gi-language=c) Puoi anche utilizzare `gst-inspect-1.0` seguito dal nome di un GStreamer elemento o di un plug-in per stamparne le informazioni e verificare che siano disponibili sul tuo dispositivo:

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

Se la compilazione `kvssink` fallisce o GST\$1PLUGIN\$1PATH non è impostato correttamente, l'output sarà simile al seguente:

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

## Esempi di comandi di avvio GStreamer
<a name="examples-gstreamer-plugin-launch"></a>

Gli esempi seguenti mostrano come utilizzare il `kvssink` GStreamer plug-in per lo streaming di video da diversi tipi di dispositivi.

### Esempio 1: Streaming di video da una videocamera RTSP su Ubuntu
<a name="examples-gstreamer-plugin-launch-ex1"></a>

[Il comando seguente crea una GStreamer pipeline su Ubuntu che trasmette in streaming da una telecamera RTSP di rete, utilizzando il plugin rtspsrc:](https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html?gi-language=c) GStreamer 

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

### Esempio 2: codifica e trasmetti video da una videocamera USB su Ubuntu
<a name="examples-gstreamer-plugin-launch-ex2"></a>

Il comando seguente crea una GStreamer pipeline su Ubuntu che codifica lo stream proveniente da una videocamera USB in formato H.264 e lo trasmette a Kinesis Video Streams. [Questo esempio utilizza il 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"
```

### Esempio 3: streaming di video precodificati da una videocamera USB su Ubuntu
<a name="examples-gstreamer-plugin-launch-ex3"></a>

Il comando seguente crea una GStreamer pipeline su Ubuntu che trasmette video che la videocamera ha già codificato in formato H.264 su Kinesis Video Streams. [Questo esempio utilizza il 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"
```

### Esempio 4: streaming di video da una telecamera di rete su macOS
<a name="examples-gstreamer-plugin-launch-ex4"></a>

Il comando seguente crea una GStreamer pipeline su macOS che trasmette video a Kinesis Video Streams da una telecamera di rete. [Questo esempio utilizza il 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"
```

### Esempio 5: streaming di video da una telecamera di rete su Windows
<a name="examples-gstreamer-plugin-launch-ex5"></a>

Il comando seguente crea una GStreamer pipeline su Windows che trasmette video a Kinesis Video Streams da una telecamera di rete. [Questo esempio utilizza il 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"
```

### Esempio 6: streaming di video da una videocamera su Raspberry Pi
<a name="examples-gstreamer-plugin-launch-ex6"></a>

Il comando seguente crea una GStreamer pipeline su Raspberry Pi che trasmette video a Kinesis Video Streams. [Questo esempio utilizza il 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"
```

### Esempio 7: Trasmetti in streaming audio e video in Raspberry Pi e Ubuntu
<a name="examples-gstreamer-plugin-launch-ex7"></a>

Scopri come [eseguire il comando gst-launch-1.0 per avviare lo streaming audio e video in Raspberry-PI e Ubuntu](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).

### Esempio 8: trasmetti in streaming audio e video da sorgenti di dispositivi in macOS
<a name="examples-gstreamer-plugin-launch-ex8"></a>

Scopri come [eseguire il comando gst-launch-1.0 per avviare lo streaming audio e video in MacOS](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).

### Esempio 9: carica un file MKV che contiene sia audio che video
<a name="examples-gstreamer-plugin-launch-ex9"></a>

Scopri come [eseguire il comando gst-launch-1.0 per caricare il file MKV che contiene sia audio che video](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). Avrai bisogno di un file di test MKV con supporti codificati h.264 e AAC.

## Esegui l' GStreamer elemento in un contenitore Docker
<a name="examples-gstreamer-plugin-docker"></a>

Docker è una piattaforma per sviluppare, distribuire ed eseguire le applicazioni utilizzando i contenitori. L'utilizzo di Docker per creare la GStreamer pipeline standardizza l'ambiente operativo per Kinesis Video Streams, semplificando la creazione e l'utilizzo dell'applicazione.

Per installare e configurare Docker, consulta le seguenti informazioni:
+ [Istruzioni di download di Docker](https://docs.docker.com/engine/install/)
+ [Nozioni di base su Docker](https://docs.docker.com/guides/getting-started/)

Dopo aver installato Docker, puoi scaricare l'SDK (e il GStreamer plug-in) di Kinesis Video Streams C\$1\$1 Producer da Amazon Elastic Container Registry utilizzando uno dei comandi forniti di seguito. `docker pull`

Per eseguire l'esecuzione GStreamer con l'elemento Kinesis Video Streams producer SDK come sink in un contenitore Docker, procedi come segue:

**Topics**
+ [Autentica il tuo client Docker](#examples-gstreamer-plugin-docker-authenticate)
+ [Scaricare l'immagine Docker per Ubuntu, macOS, Windows o Raspberry Pi](#examples-gstreamer-plugin-docker-download)
+ [Esegui l'immagine Docker](#examples-gstreamer-plugin-docker-run)

### Autentica il tuo client Docker
<a name="examples-gstreamer-plugin-docker-authenticate"></a>

Autentica il tuo client Docker nel registro Amazon ECR dal quale desideri estrarre la tua immagine. È necessario ottenere token di autenticazione per ogni registro utilizzato. I token sono validi per 12 ore. Per maggiori informazioni, consulta [Autorizzazioni del registro](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Registries.html#registry_auth) nella *Guida per l'utente di Amazon Elastic Container Registry*.

**Example : autenticazione con Amazon ECR**  
Per autenticarti con Amazon ECR, copia e incolla il seguente comando come illustrato.  

```
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
```
In caso di esito positivo, l'output stampa `Login Succeeded`.

### Scaricare l'immagine Docker per Ubuntu, macOS, Windows o Raspberry Pi
<a name="examples-gstreamer-plugin-docker-download"></a>

Scaricare l'immagine Docker per l'ambiente Docker utilizzando uno dei comandi riportati di seguito, a seconda del sistema operativo in uso:

#### Scaricare l'immagine Docker per 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
```

#### Scaricare l'immagine Docker per 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
```

#### Scaricare l'immagine Docker per 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
```

#### Scaricare l'immagine Docker per 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
```

Per verificare che l'immagine sia stata aggiunta, eseguire il comando riportato di seguito:

```
docker images
```

### Esegui l'immagine Docker
<a name="examples-gstreamer-plugin-docker-run"></a>

Utilizzare uno dei seguenti comandi per eseguire l'immagine Docker, a seconda del sistema operativo in uso:

#### Esegui l'immagine Docker su 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
```

#### Esegui l'immagine Docker su 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
```

#### Esegui l'immagine Docker su 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
```

#### Esegui l'immagine Docker su 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 avvia il contenitore e presenta un prompt dei comandi per l'utilizzo dei comandi all'interno del contenitore.

Nel container, impostare le variabili di ambiente utilizzando il comando seguente:

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

Inizia lo streaming per `kvssink` utilizzare il per `gst-launch-1.0` eseguire una pipeline appropriata per il tuo dispositivo e la tua sorgente video. Ad esempio, le pipeline, vedi. [Esempi di comandi di avvio GStreamer](#examples-gstreamer-plugin-launch)