Hopp til hovedinnhold

Oversikt

GStreamer er et kraftig multimediarammeverk som muliggjør effektiv videostrømming og -behandling. exploreHD støtter flere komprimeringsformater inkludert maskinvareakselerert H.264, MJPEG og rå YUYV.

Krav

Du må ha GStreamer installert på en Linux-datamaskin for dette. Du kan bruke følgende installasjonskommando for å få de nødvendige pakkene.
sudo apt install v4l-utils libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-plugins-ugly

Identifisering av enhetsnoder

Når du kobler til et exploreHD-kamera, oppretter Linux-kjernen (via V4L2) vanligvis fire enhetsnoder (f.eks. /dev/video0 til /dev/video3).
  • MJPEG / YUYV: Vanligvis funnet på den første noden i gruppen (f.eks. /dev/video0).
  • Maskinvare-H.264: Vanligvis funnet på den tredje noden i gruppen (f.eks. /dev/video2).
Du kan bekrefte enhetsnodene dine ved hjelp av v4l2-ctl:
v4l2-ctl --list-devices
Se etter oppføringen som tilsvarer exploreHD. Den vil liste opp stiene som er knyttet til det spesifikke kameraet.

Maskinvare-H.264-modus

exploreHD har innebygd maskinvare-H.264-koding, som gir høy videokvalitet ved lav bitrate med minimal CPU-belastning.

Lokal forhåndsvisning

For å vise H.264-strømmen lokalt (forutsatt at /dev/video2 er H.264-noden):
gst-launch-1.0 v4l2src device=/dev/video2 ! \
    video/x-h264,width=1920,height=1080,framerate=30/1 ! \
    h264parse ! avdec_h264 ! autovideosink

UDP-nettverksstrøm

For å strømme H.264-feeden over et nettverk til en annen enhet (f.eks. IP 192.168.1.50 på port 5600):
gst-launch-1.0 v4l2src device=/dev/video2 ! \
    video/x-h264,width=1920,height=1080,framerate=30/1 ! \
    h264parse ! queue ! rtph264pay config-interval=10 pt=96 ! \
    udpsink host=192.168.1.50 port=5600
For å motta strømmen på en annen datamaskin kan du bruke følgende:
gst-launch-1.0 -v udpsrc port=5600 ! \
    "application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, payload=(int)96" ! \
    rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosink

MJPEG-modus

MJPEG-modus er bredt kompatibel og gir god kvalitet med lav forsinkelse.

Lokal forhåndsvisning

Forutsatt at /dev/video0 er MJPEG-noden:
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1920,height=1080,framerate=30/1 ! \
    jpegdec ! autovideosink

UDP-nettverksstrøm

For å strømme MJPEG over nettverket:
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1920,height=1080,framerate=30/1 ! \
    rtpjpegpay ! udpsink host=192.168.1.50 port=5600

YUYV-modus

Merk at YUYV på grunn av USB-båndbreddebegrensninger typisk er begrenset til lavere bildefrekvenser ved høye oppløsninger.

Lokal forhåndsvisning

Forutsatt at /dev/video0 er noden:
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    video/x-raw,format=YUY2,width=640,height=480,framerate=30/1 ! \
    videoconvert ! autovideosink
Se tekniske spesifikasjoner for exploreHD for å se hvilke kombinasjoner av oppløsning og bildefrekvens som støttes i YUYV-modus. Ved 1080p er YUYV begrenset til 5 FPS.

Avansert bitratekontroll

Når du bruker H.264-modus, kan du justere bitrate og andre koderparametere via V4L2-kontroller mens pipelinen kjører.
# Eksempel: Sett bitrate til 5 Mbps
v4l2-ctl -d /dev/video2 --set-ctrl=video_bitrate=5000000