Zum Hauptinhalt springen

Übersicht

GStreamer ist ein leistungsfähiges Multimedia-Framework, das effizientes Video-Streaming und -Processing ermöglicht. Die stellarHD unterstützt die Kompressionsformate MJPEG und rohes YUYV mit hohen Bildraten von bis zu 60 FPS.

Voraussetzungen

Sie müssen GStreamer auf einem Linux-Computer installiert haben. Sie können den folgenden Installationsbefehl verwenden, um die erforderlichen Pakete zu erhalten.
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

Geräteknoten identifizieren

Wenn Sie eine stellarHD-Kamera anschließen, erstellt der Linux-Kernel (über V4L2) in der Regel vier Geräteknoten (z. B. /dev/video0 bis /dev/video3).
  • MJPEG / YUYV: Zu finden auf dem ersten Knoten der Gruppe (z. B. /dev/video0).
Sie können Ihre Geräteknoten mit v4l2-ctl überprüfen:
v4l2-ctl --list-devices
Suchen Sie nach dem Eintrag, der der stellarHD entspricht. Dort werden die mit dieser bestimmten Kamera verknüpften Pfade aufgelistet.

MJPEG-Modus

Der MJPEG-Modus ist die primäre Methode, um bei der stellarHD hohe Bildraten (bis zu 60 FPS) zu erzielen.

Lokale Vorschau

Unter der Annahme, dass /dev/video0 der MJPEG-Knoten ist:
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1600,height=1200,framerate=60/1 ! \
    jpegdec ! autovideosink

UDP-Netzwerkstream

Um MJPEG über ein Netzwerk an ein anderes Gerät zu streamen (z. B. IP 192.168.1.50 auf 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
Um den Stream auf einem anderen Computer zu empfangen, können Sie Folgendes verwenden:
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

Beachten Sie, dass YUYV bei höheren Auflösungen aufgrund der USB-Bandbreite auf niedrigere Bildraten begrenzt ist.

Lokale Vorschau

Unter der Annahme, dass /dev/video0 der Knoten ist:
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    video/x-raw,format=YUY2,width=640,height=480,framerate=5/1 ! \
    videoconvert ! autovideosink
Sehen Sie in den technischen Spezifikationen der stellarHD nach, welche Kombinationen aus Auflösung und Bildrate im YUYV-Modus unterstützt werden.

Software-Kodierung (H.264)

Da die stellarHD keinen integrierten Hardware-H.264-Encoder besitzt, können Sie GStreamer für die Software-Kodierung verwenden, wenn Sie H.264 über ein Netzwerk streamen möchten.
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