Passer au contenu principal

Présentation

GStreamer est un puissant framework multimédia qui permet le streaming et le traitement vidéo efficaces. Le stellarHD prend en charge les formats de compression MJPEG et YUYV brut, avec une prise en charge des fréquences d’images élevées jusqu’à 60 FPS.

Prérequis

Vous devez avoir GStreamer installé sur un ordinateur Linux. Vous pouvez utiliser la commande d’installation suivante pour obtenir les packages requis.
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

Identifier les nœuds de périphérique

Lorsque vous branchez une caméra stellarHD, le noyau Linux (via V4L2) crée généralement quatre nœuds de périphérique (par exemple, /dev/video0 à /dev/video3).
  • MJPEG / YUYV : présent sur le premier nœud du groupe (par exemple, /dev/video0).
Vous pouvez vérifier vos nœuds de périphérique à l’aide de v4l2-ctl :
v4l2-ctl --list-devices
Recherchez l’entrée correspondant au stellarHD. Elle listera les chemins associés à cette caméra spécifique.

Mode MJPEG

Le mode MJPEG est le principal moyen d’atteindre des fréquences d’images élevées (jusqu’à 60 FPS) sur le stellarHD.

Aperçu local

En supposant que /dev/video0 soit le nœud MJPEG :
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    image/jpeg,width=1600,height=1200,framerate=60/1 ! \
    jpegdec ! autovideosink

Flux réseau UDP

Pour diffuser du MJPEG sur un réseau vers un autre appareil (par exemple, IP 192.168.1.50 sur le 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
Pour recevoir le flux sur un autre ordinateur, vous pouvez utiliser ceci :
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

Mode YUYV

Notez que YUYV est limité à des fréquences d’images plus faibles à des résolutions plus élevées en raison de la bande passante USB.

Aperçu local

En supposant que /dev/video0 soit le nœud :
gst-launch-1.0 v4l2src device=/dev/video0 ! \
    video/x-raw,format=YUY2,width=640,height=480,framerate=5/1 ! \
    videoconvert ! autovideosink
Consultez les spécifications techniques du stellarHD pour voir quelles combinaisons de résolution et de fréquence d’images sont prises en charge en mode YUYV.

Encodage logiciel (H.264)

Comme le stellarHD ne dispose pas d’encodeur H.264 matériel intégré, vous pouvez utiliser GStreamer pour effectuer un encodage logiciel si vous devez diffuser du H.264 sur un réseau.
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