Passer au contenu principal
dweOS ne prend pas officiellement en charge le streaming avec GStreamer. Les étapes suivantes ne s’appliquent qu’à Linux et Windows.REMARQUE : la qualité du flux peut en pâtir.
GStreamer peut être très complexe/élaboré, même pour configurer un seul flux vidéo. La plupart des fonctionnalités de confort comme les flux multiples et les enregistrements en direct sont beaucoup plus simples et disposent d’une interface utilisateur dans Discovery.
1

Vérifier dweOS

Après avoir suivi la configuration de dweOS, passez aux étapes suivantes.
Notez le(s) port(s) vers lesquels la diffusion est effectuée.
2

Installer GStreamer

Dans le terminal, exécutez :
sudo apt update
Puis exécutez la commande suivante pour installer GStreamer :
sudo apt install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-tools                
Pour vérifier l’installation de GStreamer, ouvrez CMD et exécutez :
gst-launch-1.0 --version
Cela devrait afficher quelque chose comme :
gst-launch-1.0 version 1.16.2
GStreamer 1.16.2
https://launchpad.net/distros/ubuntu/+source/gstreamer1.0
3

Identifier les variables pour la ligne de commande GStreamer

Afin de relier les flux vidéo des appareils connectés, vous allez d’abord configurer dweOS.
1
Identifiez d’abord l’adresse IP de votre portable/bureau, que nous renseignerons dans le logiciel dweOS.Cela peut être fait en exécutant :
ip addr
Vous serez confronté à de nombreuses adresses, parcourez-les, en particulier les adresses suivant le texte : inet.
Elle sera très probablement au format 192.168.x.xx
2
Vous devrez remplacer l’IP collectée dans dweOS sous Adresse IP, et noter le port vers lequel vous diffusez. (5600 par défaut)
N’oubliez pas de créer le point de terminaison de streaming avec le bouton (+) une fois les champs remplis !
Dans cet exemple, l’IP collectée est 192.168.5.55, et le port est 5600Points de terminaison dweOS
Le champ Port défini sur 5601 est automatique avec le programme, le seul point de terminaison vers lequel la diffusion est effectuée comporte l’icône de caméra à côté et un bouton corbeille pour le supprimer.
3
Le format de GStreamer est le suivant :
gst-launch-1.0 [FLAGS] [SOURCE] ! [FILTER] ! [SINK]
En tenant compte du port, il existe quelques paramètres de la commande GStreamer à connaître.Drapeaux essentiels :
  • -v (Verbose) : affiche les informations du flux pour que vous puissiez voir la résolution/le format négocié entre les éléments.
  • -e (EOS - End of Stream) : crucial pour l’enregistrement. Si vous appuyez sur Ctrl+C sans ce drapeau, votre fichier peut être corrompu (en-têtes manquants). Ce drapeau force un arrêt propre.
  • --help-all : liste tous les éléments disponibles sur votre système.
Sources (entrée) :
  • videotestsrc : génère un motif de test (barres de couleur, statique, etc.).
  • Paramètre : pattern=smpte (ou snow, ball, etc.)
  • autovideosrc / v4l2src : votre webcam (Linux).
  • Paramètre : device=/dev/video0
  • filesrc : lit un fichier local.
  • Paramètre : location=./video.mp4
  • udpsrc : reçoit des données sur le réseau via UDP.
    • Paramètre : port=5600 (le port d’écoute).
    • Paramètre : caps="..." (Essentiel ! Indique à GStreamer ce que sont réellement les octets bruts).
    • Paramètre : buffer-size=524288 (augmente le tampon pour éviter la perte de paquets sur les flux haute résolution).
      • Les tailles de tampon standard pour H264 sont 96 et pour MJPEG 26
Sinks (sortie)
  • autovideosink : ouvre une fenêtre et lit la vidéo.
  • fakesink : ignore les données (utile pour tester si un pipeline s’exécute sans erreurs).
  • filesink : écrit dans un fichier.
  • Paramètre : location=output.mp4
  • udpsink : diffuse sur le réseau.
Essentiels (filtres/convertisseurs)
  • videoconvert : convertit les espaces colorimétriques (par exemple, de YUV à RGB). Si vous obtenez une erreur « could not link », mettez-le au milieu.
  • videoscale : redimensionne la vidéo.
  • capsfilter : force un format spécifique. Syntaxe : video/x-raw,width=1920,height=1080.
  • rtp[format]depay : dépaquetage. Déballe les paquets réseau RTP pour révéler le flux à l’intérieur.
    • Exemples : rtpjpegdepay (pour MJPEG), rtph264depay (pour H.264).
  • [format]dec : décodeur. Décompresse la vidéo en pixels bruts pour l’affichage.
    • Exemples : jpegdec, avdec_h264.
4
Voici quelques lignes d’exemple pour tester votre GStreamer :Motif de test
gst-launch-1.0 -v videotestsrc ! videoconvert ! autovideosink
Affichage webcam (si disponible)
gst-launch-1.0 -v v4l2src ! videoconvert ! autovideosink
Forcer webcam en 720p 30 ips
gst-launch-1.0 -v v4l2src ! image/jpeg,width=1280,height=720,framerate=30/1 ! jpegdec ! videoconvert ! autovideosink
Pour des résolutions supérieures, la sortie vidéo est généralement en MJPEG compressé.image/jpeg accepte le format compressé provenant de la caméra.jpegdec ajoute un décodeur pour transformer ce flux JPEG en vidéo brute afin que la fenêtre puisse l’afficher.
Enregistrer la webcam
gst-launch-1.0 -e v4l2src ! videoconvert ! x264enc ! mp4mux ! filesink location=test.mp4
Cela enregistrera en arrière-plan. Pour terminer le clip, appuyez sur Ctrl + C, et il sera dans le répertoire courant.Dans ce cas, le fichier s’appelle test.mp4, dont nous pouvons vérifier l’existence avec ls -lh test.mp4.
4

Configurer le streaming depuis dweOS

Avec une compréhension des commandes GStreamer, nous pouvons commencer à configurer le flux vidéo spécifiquement avec dweOS.
N’oubliez pas de définir votre propre IP comme IP dans le point de terminaison de streaming !
Selon le codec vidéo (MJPEG / H264) spécifié dans dweOS, exécutez l’une des commandes suivantes :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
N’oubliez pas de remplacer le numéro de port dans la ligne de commande par le port vers lequel la diffusion est effectuée !
Vous devriez maintenant avoir un flux en direct depuis votre caméra dans une fenêtre !
5

Configurer l'enregistrement

Pour enregistrer un flux, le codec vidéo est à nouveau important !Vous saurez qu’un flux est en cours d’enregistrement si votre terminal contient un texte similaire à celui-ci :Enregistrement GStreamerMJPEGPour 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
La ligne ci-dessus est pour un format MKV, car l’AVI est extrêmement capricieux avec GStreamer et nécessite un formatage très spécifique des données de sortie. Bien que possible, MJPEG vers AVI est beaucoup plus simple dans Discovery, car c’est la sortie par défaut.
H264Pour 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
Pour 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

Succès !

Magnifique ! Vous devriez maintenant disposer des éléments de base pour configurer un flux et un enregistrement avec GStreamer !
Avertissement :Avec GStreamer, une configuration d’une seule caméra demande déjà pas mal de travail, et l’enregistrement simultané de plusieurs flux nécessiterait également beaucoup de travail et de développement.Nous recommandons Discovery si vos configurations de caméras deviennent complexes.

Télécharger Discovery

La solution multimédia tout-en-un pour les flux vidéo réseau sous-marins.