Hopp til hovedinnhold
dweOS støtter ikke offisielt streaming med GStreamer. Trinnene nedenfor er kun for Linux og Windows.MERK: Strømkvaliteten kan bli redusert som følge av dette.
GStreamer kan være svært komplekst/omfattende, selv for å sette opp én videostrøm. Mange av kvalitetsfunksjonene som flere strømmer og direkteopptak er mye enklere og kommer med et brukergrensesnitt i Discovery
1

Sjekk dweOS

Etter at du har fulgt dweOS-oppsettet, fortsett til neste trinn.
Noter ned porten(e) det streames til.
2

Installer GStreamer

I terminalen, kjør:
sudo apt update
Kjør deretter følgende for å installere GStreamer:
sudo apt install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools                
For å verifisere GStreamer-oppsettet, åpne CMD og kjør følgende:
gst-launch-1.0 --version
Dette skal gi en utdata som:
gst-launch-1.0 version 1.16.2
GStreamer 1.16.2
https://launchpad.net/distros/ubuntu/+source/gstreamer1.0
3

Identifiser variabler for GStreamer-kommandolinjen

For å koble sammen tilkoblede enheters videostrømmer, vil du først konfigurere dweOS.
1
Identifiser først IP-adressen til din bærbare/stasjonære PC, som vi skal legge inn i dweOS-programvaren.Dette kan gjøres ved å kjøre følgende:
ip addr
Du vil møte mange adresser, se gjennom dem, spesifikt adresser som følger teksten: inet.
Den vil mest sannsynlig være i formatet 192.168.x.xx
2
Du vil erstatte den innsamlede IP-en i dweOS under IP-adresse, og noter porten du streamer til. (Standard 5600)
Husk å opprette streaming-endepunktet med (+)-knappen når feltene er fylt ut!
I dette eksemplet er den innsamlede IP-en 192.168.5.55, og porten er 5600dweOS-endepunkter
At Port-feltet er satt til 5601 er automatisk med programmet, det eneste endepunktet det streames til har kameraikonet ved siden av seg og en søppelbøtte-knapp for å slette dem.
3
Formatet til GStreamer er som følger:
gst-launch-1.0 [FLAGS] [SOURCE] ! [FILTER] ! [SINK]
Med porten i tankene, er det noen parametere for GStreamer-kommandoen du bør være klar over.Viktige flagg:
  • -v(Verbose): Skriver ut strøminformasjon slik at du kan se hvilken oppløsning/format som forhandles mellom elementene.
  • -e(EOS - End of Stream): Avgjørende for opptak. Hvis du trykker Ctrl+C uten dette flagget, kan filen din bli ødelagt (manglende headere). Dette flagget tvinger en ren nedstenging.
  • --help-all: Lister opp hvert eneste element som er tilgjengelig på systemet ditt.
Kilder (inndata):
  • videotestsrc: Genererer et testmønster (fargestolper, statisk, osv.).
  • Param: pattern=smpte (eller snow, ball, osv.)
  • autovideosrc / v4l2src: Webkameraet ditt (Linux).
  • Param: device=/dev/video0
  • filesrc: Leser en lokal fil.
  • Param: location=./video.mp4
  • udpsrc: Mottar data over nettverket via UDP.
    • Param: port=5600 (Porten å lytte på).
    • Param: caps="..." (Essensielt! Forteller GStreamer hva de rå bytene faktisk er).
    • Param: buffer-size=524288 (Øker bufferen for å forhindre pakketap på høyoppløselige strømmer).
      • Standard bufferstørrelser for H264 er 96 og MJPEG er 26
Sluk (utdata)
  • autovideosink: Åpner et vindu og spiller av videoen.
  • fakesink: Forkaster data (nyttig for å teste om en pipeline kjører uten feil).
  • filesink: Skriver til en fil.
  • Param: location=output.mp4
  • udpsink: Streamer over nettverket.
Essensielle (filtre/konvertere)
  • videoconvert: Konverterer fargerom (f.eks. fra YUV til RGB). Hvis du får en “could not link”-feil, kast denne inn i midten.
  • videoscale: Endrer størrelsen på video.
  • capsfilter: Tvinger et spesifikt format. Syntaks: video/x-raw,width=1920,height=1080.
  • rtp[format]depay: Depayloader. Pakker ut RTP-nettverkspakker for å avsløre strømmen inni.
    • Eksempler: rtpjpegdepay (for MJPEG), rtph264depay (for H.264).
  • [format]dec: Dekoder. Dekomprimerer video til rå piksler for visning.
    • Eksempler: jpegdec, avdec_h264.
4
Her er et par eksempellinjer for å teste GStreamer:Testmønster
gst-launch-1.0 -v videotestsrc ! videoconvert ! autovideosink
Visning av webkamera (hvis tilgjengelig)
gst-launch-1.0 -v v4l2src ! videoconvert ! autovideosink
Webkamera tvunget 720p 30fps
gst-launch-1.0 -v v4l2src ! image/jpeg,width=1280,height=720,framerate=30/1 ! jpegdec ! videoconvert ! autovideosink
For høyere oppløsninger er videoutdataene vanligvis komprimert MJPEG.image/jpeg aksepterer det komprimerte formatet fra kameraet.jpegdec legger til en dekoder for å gjøre JPEG-strømmen tilbake til rå video slik at vinduet kan vise den.
Ta opp webkamera
gst-launch-1.0 -e v4l2src ! videoconvert ! x264enc ! mp4mux ! filesink location=test.mp4
Dette vil ta opp i bakgrunnen. For å avslutte klippet, trykk Ctrl + C, og det vil ligge i gjeldende katalog.I dette tilfellet heter filen test.mp4, som vi kan sjekke eksistensen til med ls -lh test.mp4
4

Sette opp streaming fra dweOS

Med en forståelse av GStreamer-kommandoer, kan vi begynne å sette opp videostrømmen spesifikt med dweOS.
Husk å sette din egen IP som IP-en i streaming-endepunktet!
Avhengig av videokodeken (MJPEC / H264) spesifisert i dweOS, kjør en av følgende:MJPEG
gst-launch-1.0 udpsrc port=5600 caps="application/x-rtp, encoding-name=JPEG, payload=26" ! rtpjpegdepay ! jpegdec ! autovideosink
H264
gst-launch-1.0 udpsrc port=5600 caps="application/x-rtp, encoding-name=H264, payload=96" ! rtph264depay ! avdec_h264 ! autovideosink
Husk å erstatte portnummeret i kommandolinjen med porten det streames til!
Du skal nå ha en direktestrøm fra kameraet ditt i et vindu!
5

Sette opp opptak

For å ta opp en strøm spiller videokodeken igjen en rolle!Du vet at en strøm blir tatt opp hvis terminalen din inneholder tekst som ligner på dette:GStreamer-opptakMJPEGFor MKV
gst-launch-1.0 -e udpsrc port=5600 caps="application/x-rtp, encoding-name=JPEG, payload=26" ! rtpjpegdepay ! jpegparse ! matroskamux ! filesink location=output_mjpeg.mkv
Linjen over er for MKV-format, da AVI er utrolig finurlig med GStreamer og krever at utdataene formateres svært spesifikt. Selv om det er mulig, er MJPEG til AVI mye enklere i Discovery, siden det er standardutdata.
H264For MKV
gst-launch-1.0 -e udpsrc port=5600 caps="application/x-rtp, encoding-name=H264, payload=96" ! rtph264depay ! h264parse ! matroskamux ! filesink location=output_h264.mkv
For MP4
gst-launch-1.0 -e udpsrc port=5600 caps="application/x-rtp, encoding-name=H264, payload=96" ! rtph264depay ! h264parse ! video/x-h264,stream-format=avc ! mp4mux ! filesink location=video.mp4
6

Suksess!

Fantastisk! Du skal nå ha byggesteinene for å sette opp en strøm og opptak med GStreamer!
Advarsel:Med GStreamer krever allerede et oppsett med ett enkelt kamera ganske mye arbeid, og opptak av flere strømmer samtidig vil også kreve ganske mye arbeid og utvikling.Vi anbefaler Discovery hvis kameraoppsettene dine blir komplekse.

Last ned Discovery

Den alt-i-ett-multimedialøsningen for undervannsvideostrømmer over nettverk.