O GStreamer pode ser muito complexo/elaborado, mesmo para configurar um único fluxo de vídeo. Muitos dos recursos de conveniência, como múltiplos fluxos e gravações ao vivo, são muito mais simples e vêm com uma interface de usuário no Discovery
Verifique o dweOS
Após seguir a configuração do dweOS, prossiga para as próximas etapas.
Anote a(s) porta(s) para as quais está sendo feita a transmissão.
Instale o GStreamer
- Para Linux
- Para Windows
No terminal, execute:Em seguida, execute o seguinte para instalar o GStreamer:
Identifique as variáveis para a linha de comando do GStreamer
Para conectar os fluxos de vídeo dos dispositivos conectados, primeiro você configurará o dweOS.
Primeiro identifique o endereço IP do seu laptop/desktop, que preencheremos no software dweOS.Isso pode ser feito executando o seguinte:Você verá vários endereços; procure entre eles, especificamente os endereços após o texto:
inet.
Você deverá substituir o IP coletado no dweOS em IP address e anotar a porta para a qual está transmitindo. (Padrão 5600)Neste exemplo o IP coletado é 192.168.5.55, e a porta é 5600

O campo Port sendo definido como 5601 é automático com o programa; os únicos endpoints em transmissão têm o ícone da câmera ao lado e um botão de lixeira para excluí-los.
O formato do GStreamer é o seguinte:
Com a porta em mente, existem alguns parâmetros do comando GStreamer para se ter atenção.Flags essenciais:
-v(Verbose): imprime informações do fluxo para que você possa ver qual resolução/formato está sendo negociado entre os elementos.-e(EOS - End of Stream): crucial para gravação. Se você pressionar Ctrl+C sem essa flag, seu arquivo pode ficar corrompido (cabeçalhos ausentes). Essa flag força um encerramento limpo.--help-all: lista todos os elementos disponíveis no seu sistema.
-
videotestsrc: gera um padrão de teste (barras de cores, estática, etc.). -
Param:
pattern=smpte(ousnow,ball, etc.) -
autovideosrc/v4l2src: sua webcam (Linux). -
Param:
device=/dev/video0 -
filesrc: lê um arquivo local. -
Param:
location=./video.mp4 -
udpsrc: recebe dados pela rede via UDP.- Param:
port=5600(a porta para escutar). - Param:
caps="..."(essencial! Informa ao GStreamer o que são os bytes brutos). - Param:
buffer-size=524288(aumenta o buffer para evitar perda de pacotes em fluxos de alta resolução).- Tamanhos de buffer padrão para H264 é
96e MJPEG é26
- Tamanhos de buffer padrão para H264 é
- Param:
-
autovideosink: abre uma janela e reproduz o vídeo. -
fakesink: descarta dados (útil para testar se um pipeline é executado sem erros). -
filesink: grava em um arquivo. -
Param:
location=output.mp4 -
udpsink: transmite pela rede.
-
videoconvert: converte espaços de cores (por exemplo, de YUV para RGB). Se receber um erro “could not link”, coloque isso no meio. -
videoscale: redimensiona o vídeo. -
capsfilter: força um formato específico. Sintaxe:video/x-raw,width=1920,height=1080. -
rtp[format]depay: Depayloader. Desembrulha os pacotes RTP da rede para revelar o fluxo dentro deles.- Exemplos:
rtpjpegdepay(para MJPEG),rtph264depay(para H.264).
- Exemplos:
-
[format]dec: Decodificador. Descomprime o vídeo em pixels brutos para exibição.- Exemplos:
jpegdec,avdec_h264.
- Exemplos:
Aqui estão algumas linhas de exemplo para testar seu GStreamer:Padrão de testeExibição de webcam (se disponível)Forçar webcam para 720p 30fpsGravar webcam
Para resoluções mais altas, a saída de vídeo geralmente é MJPEG comprimido.
image/jpeg aceita o formato comprimido da câmera.jpegdec adiciona um decodificador para transformar esse fluxo JPEG de volta em vídeo bruto para que a janela possa exibi-lo.Isso gravará em segundo plano; para finalizar o clipe, pressione
Ctrl + C, e ele estará no diretório atual.Neste caso o arquivo se chama test.mp4, o qual podemos verificar com ls -lh test.mp4Configurando o streaming a partir do dweOS
Com um entendimento dos comandos do GStreamer, podemos começar a configurar o fluxo de vídeo especificamente com o dweOS.Dependendo do codec de vídeo (MJPEG / H264) especificado no dweOS, execute um dos seguintes comandos:MJPEGH264Você agora deve ter uma transmissão ao vivo da sua câmera em uma janela!
Configurando a gravação
Para gravar um fluxo, mais uma vez o codec de vídeo importa!Você saberá que um fluxo está sendo gravado quando seu terminal contiver texto semelhante a este:
MJPEGPara MKVH264Para MKVPara MP4

A linha acima é para o formato MKV, pois AVI é incrivelmente sensível com GStreamer e requer que os dados de saída sejam formatados de forma muito específica. Embora possível, MJPEG para AVI é muito mais simples no Discovery, pois é a saída padrão.
Baixar o Discovery
A solução multimídia tudo-em-um para fluxos de vídeo de rede submarina.


