URL: https://linuxfr.org/forums/programmation-shell/posts/gst-launch-v4l2loopback-et-autres-joyeusetes Title: gst-launch, v4l2loopback et autres joyeusetés Authors: gUI Date: 2020年04月09日T14:43:31+02:00 License: CC By-SA Tags: gst-launch, v4l2 et v4l2loopback Score: 3 Bonjour, Pour le cadre général : je travaille sur un produit (fonctionnant sous Linux) qui fait de la reconnaissance vidéo (basée sur `openCV`). Il utilise en temps normal une webcam, et pour des tests automatisés, je voudrais envoyer des vidéos de tests, que le produit verrait à travers une fausse webcam via le module `v4l2loopback`. J'arrive à faire fonctionner v4l2loopback via un stream de test. Ceci fonctionne : ```bash gst-launch-1.0 -v videotestsrc pattern=ball ! v4l2sink device=/dev/video0 ``` Je force les dimensions et le format du stream, ceci fonctionne toujours (je me prépare pour la suite) : ```bash gst-launch-1.0 -v videotestsrc pattern=ball ! decodebin ! videoconvert ! videoscale ! "video/x-raw,format=YUY2,width=320,height=240" ! v4l2sink device=/dev/video0 ``` Maintenant je voudrais envoyer une video de test, et là je galère. Je change simplement la source avec un fichier : ```bash gst-launch-1.0 -v filesrc location=test.avi ! avidemux ! decodebin ! videoconvert ! videoscale ! "video/x-raw,format=YUY2,width=320,height=240" ! v4l2sink device=/dev/video0 ``` J'obtiens l'erreur suivante : ```bash ERREUR : de l’élément /GstPipeline:pipeline0/GstAviDemux:avidemux0 : Internal data stream error. Information de débogage supplémentaire : ../gst-plugins-good/gst/avi/gstavidemux.c(5780): gst_avi_demux_loop (): /GstPipeline:pipeline0/GstAviDemux:avidemux0: streaming stopped, reason not-negotiated (-4) ERREUR : le pipeline refuse de passer en phase de préparation. Définition du pipeline à NULL... Libération du pipeline... ``` Pourtant le pipeline a l'air correct, car si je modifie juste le sink final pour un simple affichage, ça marche : ```bash gst-launch-1.0 -v filesrc location=test.avi ! avidemux ! decodebin ! videoconvert ! videoscale ! "video/x-raw,format=YUY2,width=320,height=240" ! autovideosink ``` Quelque-chose de curieux tout de même avec cette dernière commande, le message qui arrive régulièrement dans la console : ```bash BALISE TROUVÉE : découverte par l’élément « autovideosink0-actual-sink-xvimage ». codec vidéo: MPEG-4 Video (Simple Profile) débit: 2499979 débit minimum: 188544 débit maximum: 7636416 ``` ... comme si le `decodebin` ne servait à rien, ce qui expliquerait alors que le flux ne peut pas aller dans v4l2loopback. Une idée ? Merci !

AltStyle によって変換されたページ (->オリジナル) /