Esempio: Plugin Kinesis Video Streams Producer SDK GStreamer - Amazon Kinesis Video Streams

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 Kinesis Video Streams Producer SDK GStreamer

Questo argomento mostra come creare l'SDK Amazon Kinesis Video Streams Producer da utilizzare come plugin GStreamer.

GStreamer è un framework multimediale diffuso utilizzato da numerose videocamere e fonti video per creare pipeline multimediali personalizzate attraverso l'abbinamento di plugin modulari. Il plugin Kinesis Video Streams GStreamer semplifica ampiamente l'integrazione di pipeline multimediali GStreamer esistenti con Kinesis Video Streams. Dopo l'integrazione di GStreamer, è possibile iniziare a utilizzare lo streaming di video da una webcam o da una videocamera RTSP (Real Time Streaming Protocol) a Kinesis Video Streams per la riproduzione in tempo reale o successiva, lo storage e ulteriori analisi.

Il plugin GStreamer gestisce automaticamente il trasferimento del flusso video su Kinesis Video Streams incapsulando la funzionalità fornita dall'SDK Kinesis Video Streams Producer in un elemento sink 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 plugin che incapsula l'SDK gestisce quindi l'invio del flusso video a Kinesis Video Streams.

In questo argomento viene illustrato come creare una pipeline multimediale GStreamer in grado di eseguire lo streaming video da una sorgente video, ad esempio una webcam o un flusso RTSP, in genere connesso tramite fasi di codifica intermedi (usando la codifica H.264) a Kinesis Video Streams. Quando il flusso video è disponibile come flusso video Kinesis, è possibile utilizzare la Kinesis Video Stream Parser Library per ulteriori elaborazioni, per la riproduzione, lo storage o l'analisi del flusso video.


                La visualizzazione funzionale della pipeline multimediale GStreamer per lo streaming video da una videocamera al servizio Kinesis Video Streams.

Scaricare, creare e configurare l'Elemento GStreamer

L'esempio di un plugin GStreamer è incluso nell'SDK Kinesis Video Streams C++ Producer. Per informazioni sui prerequisiti e il download di SDK consulta Fase 1: Download e configurazione del codice di C++ Producer Library.

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, esso deve essere in GST_PLUGIN_PATH. Eseguire il comando seguente:

export GST_PLUGIN_PATH=`pwd`/build

Eseguire l'elemento GStreamer

Per eseguire GStreamer con l'elemento SDK Kinesis Video Streams Producer SDK come sink, eseguire ilgst-launch-1.0comando. Usa le impostazioni appropriate per il plugin GStreamer da usare. Ad esempio, v4l2src per dispositivi v4l2 su sistemi Linux o rtspsrc per dispositivi RTSP. Specificare kvssink come sink (destinazione finale della pipeline) per inviare video all'SDK Producer.

L'elemento kvssink richiede i seguenti parametri:

  • stream-name: nome del flusso video Kinesis di destinazione.

  • storage-size: la dimensione dello storage del dispositivo in kilobyte. Per informazioni sulla configurazione dello storage del dispositivo, consulta StorageInfo.

  • access-key: la chiave di accesso AWS utilizzata per accedere a Kinesis Video Streams. È necessario fornire questo parametro o credential-path.

  • secret-key: la chiave segreta AWS utilizzata per accedere a Kinesis Video Streams. È necessario fornire questo parametro o credential-path.

  • credential-path: il percorso a un file contenente le credenziali di accesso a Kinesis Video Streams. Per ulteriori informazioni sulle credenziali in rotazione, consulta Gestione delle chiavi di accesso per gli utenti IAM. È necessario fornire questo parametro o access-key e secret-key.

Per informazioni sui kvssink parametri opzionali consulta Guida di riferimento sui parametri degli elementi GStreamer.

Per le informazioni più recenti sui plugin e i parametri GStreamer, consulta Plugin GStreamero esegui il seguente comando per elencare le opzioni:

gst-inspect-1.0 kvssink

Se la compilazione non è riuscita o GST_PLUGIN_PATH non è impostato in modo appropriato, l'output è simile a questo:

No such element or plugin 'kvssink'

Comandi di avvio di esempio di GStreamer

Questi esempi illustrano come utilizzare un plugin GStreamer per lo streaming di video da diversi tipi di dispositivi.

Esempio 1: Streaming video da una videocamera RTSP su Ubuntu

Il comando seguente crea una pipeline GStreamer su Ubuntu che esegue flussi in streaming da una videocamera di rete RTSP, utilizzando il plugin rtspsrc 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 2: Codifica e flussi video da una videocamera USB su Ubuntu

Il comando seguente crea una pipeline GStreamer su Ubuntu che codifica il flusso in streaming da una videocamera USB in formato H.264 e lo invia a Kinesis Video Streams. In questo esempio viene utilizzatov4l2srcPlugin 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: Effettuare la precodifica video da una videocamera USB su Ubuntu

Il comando seguente crea una pipeline GStreamer su Ubuntu che esegue lo streaming di video già codificati dalla videocamera in formato H.264 su Kinesis Video Streams. In questo esempio viene utilizzatov4l2srcPlugin 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: Video in streaming da una videocamera di rete su macOS

Il comando seguente crea una pipeline GStreamer su macOS che esegue lo streaming video su Kinesis Video Streams da una videocamera di rete. In questo esempio viene utilizzato il plugin rtspsrc 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 5: Video in streaming da una videocamera di rete su Windows

Il comando seguente crea una pipeline GStreamer su Windows che esegue lo streaming video su Kinesis Video Streams da una videocamera di rete. In questo esempio viene utilizzato il plugin rtspsrc 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: Video in streaming da una videocamera su Raspberry Pi

Il comando seguente crea una pipeline GStreamer su Raspberry Pi che esegue lo streaming video su Kinesis Video Streams. In questo esempio viene utilizzatov4l2srcPlugin 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: Streaming di video da una videocamera su Raspberry Pi e regione specifica

Il comando seguente crea una pipeline GStreamer su Raspberry Pi che esegue lo streaming di video in Kinesis Video Streams nella regione Stati Uniti orientali (Virginia settentrionale). In questo esempio viene utilizzatov4l2srcPlugin 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 8: Streaming audio e video in Raspberry-PI e Ubuntu

Scopri come eseguire il comando gst-launch-1.0 per avviare lo streaming audio e video in Raspberry-PI e Ubuntu.

Esempio 9: Streaming audio e video in macOS

Scopri come eseguire il comando gst-launch-1.0 per avviare lo streaming audio e video in MacOS.

Esempio 10: Carica un file MKV che contiene sia audio che video

Scopri come eseguire il comando gst-launch-1.0 per caricare il file MKV che contiene sia audio che video.

Eseguire l'elemento GStreamer in un container Docker

Docker è una piattaforma per sviluppare, distribuire ed eseguire le applicazioni utilizzando i contenitori. Utilizzando Docker per creare la pipeline GStreamer è possibile standardizzare l'ambiente operativo per Kinesis Video Streams, semplificando notevolmente la creazione e l'esecuzione dell'applicazione.

Per installare e configurare Docker, consulta le seguenti informazioni:

Dopo aver installato Docker, è possibile scaricare Kinesis Video Streams C++ Producer SDK (e il plugin GStreamer) da Amazon Elastic Container Registry utilizzando ildocker pullcomando.

Per eseguire GStreamer con l'elemento SDK Kinesis Video Streams Producer SDK come sink in un container Docker, procedere nel seguente modo:

Autenticare il Client Docker

Autentica il tuo client Docker nel registro Amazon ECR dal quale desideri estrarre la tua immagine. Devi ottenere i token di autenticazione per ciascun registro utilizzato. I token hanno una validità di 12 ore. Per maggiori informazioni, consulta Autorizzazioni del registro nella Guida per l'utente di Amazon Elastic Container Registry.

Esempio : autenticazione con Amazon ECR

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

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

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

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

Scaricare l'immagine Docker per Windows

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

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

Eseguire l'immagine Docker

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

Eseguire l'immagine Docker su Ubuntu

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

Eseguire l'immagine Docker su macOS

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

Eseguire l'immagine Docker su Windows

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>

Eseguire l'immagine Docker su Raspberry Pi

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 lancia il container e presenta un prompt dei comandi per eseguire i 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

Avviare lo streaming dalla videocamera utilizzando il comando gst-launch-1.0 appropriato per il dispositivo.

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.

Per esempi sull'utilizzo del comando gst-launch-1.0 per connettersi a una videocamera Web locale o una videocamera RTSP di rete, consulta Comandi di avvio.