View a markdown version of this page

Exemplo: Plugin GStreamer do SDK do produtor do Kinesis Video Streams - kvssink - Amazon Kinesis Video Streams

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplo: Plugin GStreamer do SDK do produtor do Kinesis Video Streams - kvssink

Este tópico descreve como criar o SDK do produtor do Amazon Kinesis Video Streams para usar como um plug-in do GStreamer.

O GStreamer é uma estrutura de mídia popular usada por várias câmeras e fontes de vídeo para criar canais de mídia personalizados combinando plug-ins modulares. O plug-in Kinesis Video Streams GStreams simplifica a integração do seu pipeline de mídia existente do GStreamer com o Kinesis Video Streams. Depois de integrar o GStreamer, você pode transmitir vídeo de uma webcam ou câmera Real Time Streaming Protocol (RTSP) para o Kinesis Video Streams para reprodução em tempo real ou posterior, armazenamento e análise adicional.

O plug-in GStreamer gerencia automaticamente a transferência do seu stream de vídeo para o Kinesis Video Streams encapsulando a funcionalidade fornecida pelo SDK do produtor do Kinesis Video Streams em um elemento coletor do GStreamer,. kvssink A estrutura do GStreamer fornece um ambiente gerenciado padrão para construir o fluxo de mídia de um dispositivo, como uma câmera ou outra fonte de vídeo para processamento adicional, renderização ou armazenamento.

O pipeline do GStreamer normalmente consiste no link entre uma fonte (câmera de vídeo) e o elemento coletor (um player para renderizar o vídeo ou um armazenamento para recuperação off-line). Neste exemplo, você usa o elemento Producer SDK como um coletor, ou mídia de destino, para sua fonte de vídeo (webcam ou câmera IP). O elemento de plug-in que encapsula o SDK então envia o stream de vídeo para o Kinesis Video Streams.

Este tópico descreve como construir um pipeline de mídia do GStreamer capaz de transmitir vídeo de uma fonte de vídeo, como uma webcam ou stream RTSP, normalmente conectado por meio de estágios intermediários de codificação (usando H.264 codificação) ao Kinesis Video Streams. Quando seu stream de vídeo está disponível como um stream de vídeo do Kinesis, você pode usá-lo Veja a saída das câmeras usando a biblioteca de analisadores para processamento, reprodução, armazenamento ou análise adicional do seu stream de vídeo.

Visualização funcional do pipeline de mídia do GStreamer para streaming de vídeo de uma câmera para o serviço .

Baixe, crie e configure o elemento GStreamer

O exemplo do plug-in GStreamer está incluído no SDK do produtor de C++ do Kinesis Video Streams. Para obter informações sobre os pré-requisitos e o download do SDK, consulte Baixe e configure o código da biblioteca do produtor C++.

Você pode criar o coletor GStreamer do SDK do produtor como uma biblioteca dinâmica no macOS, Ubuntu, Raspberry Pi ou Windows. O plug-in do GStreamer está localizado no diretório build. Para carregar este plugin, ele deve estar no seuGST_PLUGIN_PATH. Execute este comando: .

export GST_PLUGIN_PATH=`pwd`/build
nota

No macOS, você só pode fazer streaming de vídeo de uma câmera de rede ao executar o GStreamer em um contêiner do Docker. O streaming de vídeo de uma câmera USB no macOS em um contêiner do Docker não é suportado.

Execute o elemento GStreamer

Para executar o GStreamer com o elemento SDK do produtor do Kinesis Video Streams como coletor, use o comando. gst-launch-1.0 Use elementos upstream que sejam apropriados para o plug-in GStreamer usar. Por exemplo, v4l2src para dispositivos v4l2 em sistemas Linux ou rtspsrc para dispositivos RTSP. Especifique kvssink como o coletor (destino final do pipeline) para enviar vídeo ao Producer SDK.

Além de fornecer credenciais e fornecer uma região, o kvssink elemento tem o seguinte parâmetro obrigatório:

  • stream-name— O nome do destino Kinesis Video Streams.

Para obter informações sobre os parâmetros opcionais kvssink, consulte Referência de parâmetros do elemento GStreamer.

Para obter as informações mais recentes sobre os plug-ins e parâmetros do GStreamer, consulte Plugins do GStreamer. Você também pode usar gst-inspect-1.0 seguido pelo nome de um elemento ou plug-in do GStreamer para imprimir suas informações e verificar se elas estão disponíveis em seu dispositivo:

gst-inspect-1.0 kvssink

Se a construção kvssink falhar ou o GST_PLUGIN_PATH não estiver configurado corretamente, sua saída será semelhante a esta:

No such element or plugin 'kvssink'

Exemplo de comandos de inicialização do GStreamer

Os exemplos a seguir demonstram como usar o plug-in kvssink GStreamer para transmitir vídeo de diferentes tipos de dispositivos.

Exemplo 1: Transmita vídeo de uma câmera RTSP no Ubuntu

O comando a seguir cria um pipeline do GStreamer no Ubuntu que transmite de uma câmera RTSP na rede, usando o plug-in do GStreamer do rtspsrc:

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

Exemplo 2: codifique e transmita vídeo de uma câmera USB no Ubuntu

O comando a seguir cria um pipeline do GStreamer no Ubuntu que codifica o stream de uma câmera USB em H.264 formato e o transmite para o Kinesis Video Streams. Este exemplo usa o plug-in v4l2src 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"

Exemplo 3: Transmita vídeo pré-codificado de uma câmera USB no Ubuntu

O comando a seguir cria um pipeline do GStreamer no Ubuntu que transmite vídeo que a câmera já codificou em H.264 formato para o Kinesis Video Streams. Este exemplo usa o plug-in v4l2src 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"

Exemplo 4: Transmita vídeo de uma câmera de rede no macOS

O comando a seguir cria um pipeline do GStreamer no macOS que transmite vídeo para o Kinesis Video Streams a partir de uma câmera de rede. Este exemplo usa o plug-in do GStreamer do rtspsrc.

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"

Exemplo 5: Transmita vídeo de uma câmera de rede no Windows

O comando a seguir cria um pipeline do GStreamer no Windows que transmite vídeo para o Kinesis Video Streams a partir de uma câmera de rede. Este exemplo usa o plug-in do GStreamer do rtspsrc.

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"

Exemplo 6: Transmita vídeo de uma câmera no Raspberry Pi

O comando a seguir cria um pipeline do GStreamer no Raspberry Pi que transmite vídeo para o Kinesis Video Streams. Este exemplo usa o plug-in v4l2src 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"

Exemplo 7: Transmita áudio e vídeo no Raspberry Pi e no Ubuntu

Veja como executar o comando gst-launch-1.0 para começar a transmitir áudio e vídeo no Ubuntu. Raspberry-PI

Exemplo 8: Transmita áudio e vídeo de fontes de dispositivos no macOS

Veja como executar o comando gst-launch-1.0 para iniciar o streaming de áudio e vídeo no MacOS.

Exemplo 9: Carregue o arquivo MKV que contém áudio e vídeo

Veja como executar o comando gst-launch-1.0 para fazer upload do arquivo MKV que contém áudio e vídeo. Você precisará de um arquivo de teste MKV com mídia codificada em h.264 e AAC.

Execute o elemento GStreamer em um contêiner Docker

O Docker é uma plataforma para desenvolvimento, implantação e execução de aplicativos usando contêineres. Usar o Docker para criar o pipeline do GStreamer padroniza o ambiente operacional do Kinesis Video Streams, o que simplifica a criação e o uso do aplicativo.

Para instalar e configurar o Docker, consulte o seguinte:

Depois de instalar o Docker, você pode baixar o SDK do Kinesis Video Streams C++ Producer (e o plug-in GStreamer) do Amazon Elastic Container Registry usando um dos comandos fornecidos abaixo. docker pull

Para executar o GStreamer com o elemento SDK do produtor do Kinesis Video Streams como coletor em um contêiner do Docker, faça o seguinte:

Autentique seu cliente Docker

Autentique o cliente do Docker para o registro do Amazon ECR do qual você pretende extrair a imagem. Você deve obter tokens de autenticação para cada registro usado. Os tokens são válidos por 12 horas. Para obter mais informações, consulte Autenticação de Registro no campo do Manual do Usuário do Amazon Elastic Container Registry.

exemplo: autenticar com o Amazon ECR

Para se autenticar com o Amazon ECR, copie e cole o seguinte comando conforme mostrado.

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

Se for bem-sucedido, a saída imprimirá Login Succeeded.

Fazer download da imagem de docker para Ubuntu, macOS, Windows ou Raspberry Pi

Faça download da imagem do Docker no ambiente do Docker usando um dos comandos a seguir, dependendo do sistema operacional:

Fazer download da imagem do Docker para Ubuntu

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

Fazer download da imagem do Docker para macOS

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

Fazer download da imagem de docker para Windows

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

Fazer download da imagem do Docker para Raspberry Pi

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

Para verificar se a imagem foi adicionada com êxito, execute o seguinte comando:

docker images

Execute a imagem do Docker

Use um dos comandos a seguir para executar a imagem do Docker, dependendo do sistema operacional:

Execute a imagem do Docker no 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

Execute a imagem do Docker no macOS

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

Execute a imagem do Docker no 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

Execute a imagem do Docker no 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

O Docker inicia o contêiner e apresenta um prompt de comando para usar comandos dentro do contêiner.

No contêiner, defina as variáveis de ambiente usando o seguinte comando:

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

Comece a transmitir kvssink usando o gst-launch-1.0 para executar um pipeline apropriado para seu dispositivo e fonte de vídeo. Por exemplo, oleodutos, consulteExemplo de comandos de inicialização do GStreamer.