Hopp til hovedinnhold

Oversikt

GStreamer er et kraftig multimediarammeverk som muliggjør effektiv videostrømming og -behandling. stellarHD støtter komprimeringsformatene MJPEG og rå YUYV, med støtte for høy bildefrekvens opp til 60 FPS.

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 stellarHD-kamera, oppretter Linux-kjernen (via V4L2) vanligvis fire enhetsnoder (f.eks. /dev/video0 til /dev/video3).
  • MJPEG / YUYV: Finnes på den første noden i gruppen (f.eks. /dev/video0).
Du kan bekrefte enhetsnodene dine ved hjelp av v4l2-ctl:
v4l2-ctl --list-devices
Se etter oppføringen som tilsvarer stellarHD. Den vil liste opp stiene som er knyttet til det spesifikke kameraet.

MJPEG-modus

MJPEG-modus er den primære måten å oppnå høye bildefrekvenser (opp til 60 FPS) på stellarHD.

Lokal forhåndsvisning

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

UDP-nettverksstrøm

For å strømme MJPEG over et nettverk til en annen enhet (f.eks. IP 192.168.1.50 på port 5600):
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1600,height=1200,framerate=60/1 ! \
    rtpjpegpay ! 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)JPEG, payload=(int)26" ! \
    rtpjpegdepay ! jpegdec ! videoconvert ! autovideosink

YUYV-modus

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

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=5/1 ! \
    videoconvert ! autovideosink
Se tekniske spesifikasjoner for stellarHD for å se hvilke kombinasjoner av oppløsning og bildefrekvens som støttes i YUYV-modus.

Programvarekoding (H.264)

Siden stellarHD ikke har en innebygd maskinvare-H.264-koder, kan du bruke GStreamer til å utføre programvarekoding hvis du trenger å strømme H.264 over et nettverk.
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1280,height=720,framerate=60/1 ! \
    jpegdec ! queue ! x264enc tune=zerolatency bitrate=4000 speed-preset=ultrafast ! \
    h264parse ! rtph264pay config-interval=10 pt=96 ! \
    udpsink host=192.168.1.50 port=5600