

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 GStreamer per 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 di GStreamer](#examples-gstreamer-plugin-launch)
+ [Esegui l'elemento GStreamer in un contenitore Docker](#examples-gstreamer-plugin-docker)
+ [Riferimento ai parametri dell'elemento GStreamer](examples-gstreamer-plugin-parameters.md)

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

Il plugin GStreamer 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 di GStreamer,. `kvssink` Il framework GStreamer fornisce un ambiente gestito standard per la costruzione di un flusso multimediale da un dispositivo, ad esempio una videocamera o altre sorgente video per ulteriori elaborazioni, il rendering o lo storage. 

La pipeline GStreamer in genere contiene il link tra una sorgente (videocamera) e l'elemento sink (un lettore per il rendering del video o lo storage 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 multimediale GStreamer 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) a Kinesis Video Streams. H.264 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.

![La visualizzazione funzionale della pipeline multimediale GStreamer per lo streaming video da una videocamera 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 plugin GStreamer è incluso nell'SDK per produttori Kinesis Video Streams C\+\+. Per informazioni sui prerequisiti e il download di SDK consulta [Scarica e configura il codice della libreria C\+\+ Producer](producersdk-cpp-download.md).

Puoi creare il sink Producer SDK GStreamer come libreria dinamica su macOS, Ubuntu, Raspberry Pi o Windows. Il plugin GStreamer si trova nella 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, è possibile solo eseguire lo streaming di video da una videocamera di rete durante l'esecuzione di GStreamer in un container 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 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 plugin GStreamer. 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 [Riferimento ai parametri dell'elemento GStreamer](examples-gstreamer-plugin-parameters.md).

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

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

Se la compilazione `kvssink` fallisce o GST\_PLUGIN\_PATH non è impostato correttamente, il risultato sarà simile al seguente:

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

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

I seguenti esempi mostrano come usare il plugin `kvssink` GStreamer 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 pipeline GStreamer su Ubuntu che esegue flussi in streaming da una videocamera di rete RTSP, 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 riproduci in streaming video da una videocamera USB su Ubuntu
<a name="examples-gstreamer-plugin-launch-ex2"></a>

Il comando seguente crea una pipeline GStreamer su Ubuntu che codifica il flusso proveniente da una telecamera USB in H.264 formato e lo trasmette a Kinesis Video Streams. [Questo esempio utilizza il plugin GStreamer v4l2src.](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page)

```
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 pipeline GStreamer su Ubuntu che trasmette video che la videocamera ha già codificato in formato su H.264 Kinesis Video Streams. [Questo esempio utilizza il plugin GStreamer v4l2src.](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page)

```
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 pipeline GStreamer su macOS che trasmette video a Kinesis Video Streams da una telecamera di rete. In questo esempio viene utilizzato 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 pipeline GStreamer su Windows che trasmette video a Kinesis Video Streams da una telecamera di rete. In questo esempio viene utilizzato 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 pipeline GStreamer su Raspberry Pi che trasmette video a Kinesis Video Streams. [Questo esempio utilizza il plugin GStreamer v4l2src.](https://gstreamer.freedesktop.org/documentation/video4linux2/v4l2src.html?gi-language=c#v4l2src-page)

```
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 di audio e](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) video in Ubuntu. Raspberry-PI 

### 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'elemento GStreamer 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 pipeline GStreamer 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 Kinesis Video Streams C\+\+ Producer (e il plug-in GStreamer) dal registro Amazon Elastic Container utilizzando uno dei comandi forniti di seguito. `docker pull`

Per eseguire 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 di GStreamer](#examples-gstreamer-plugin-launch)