Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab

17 mai 2019 : accident de la base de données : plus d'infos

#1 2013-02-28 14:36:11 "Picture in picture" avec gstreamer

titix
nouveau membre
Date d'inscription: 2013-02-28
Messages: 8

"Picture in picture" avec gstreamer



Bonjour à tous,
j'essaie en vain de mixer 2 webcams avec gstreamer ... mais tout d'abord, et avant de détailler ce que j'ai réussi/pas réussi, ce forum est-il bien le lieu pour que je puisse questionner à ce sujet ?
Si l'objectif final est d'envoyer le tout dans un flux sur le réseau j'ai trouvé bien prétentieux de questionner dans le forum "Diffusion" wink
(mais peut-être dans "discussions Code")  ?

Merci !
titix

Dernière modification par titix (2013-02-28 14:38:47)

Hors ligne

 

#2 2013-02-28 18:22:02 Re : "Picture in picture" avec gstreamer

titix
nouveau membre
Date d'inscription: 2013-02-28
Messages: 8

Re: "Picture in picture" avec gstreamer



Rebonjour,
Je me lance ici-même ... quitte à effacer/déplacer ...

ce qui fonctionne = une webcam avec incrustation d'une mire en bas à droite :
gst-launch -v -e videomixer name=mix ! ffmpegcolorspace ! xvimagesink videotestsrc pattern=0 ! video/x-raw-yuv, width=144, height=116 ! textoverlay font-desc="Sans 24" text="CAM1" valign=top halign=left shaded-background=true ! videobox border-alpha=0 top=-120 left=-170 ! mix. v4l2src device=/dev/video0 ! videoscale ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! mix.

ce qui ne fonctionne pas : la même webcam avec incrustation d'une seconde webcam :
gst-launch -v -e videomixer name=mix ! ffmpegcolorspace ! xvimagesink v4l2src device=/dev/video2 ! videoscale ! video/x-raw-yuv, width=144, height=116 ! textoverlay font-desc="Sans 24" text="CAM1" valign=top halign=left shaded-background=true ! videobox border-alpha=0 top=-120 left=-170  ! mix. v4l2src device=/dev/video0 ! videoscale ! video/x-raw-yuv, width=320, height=240  ! ffmpegcolorspace ! mix.

au niveau des erreurs je lis (sans comprendre !) :
[...] (je ne conserve que la fin ici)
ERREUR : de l'élément /GstPipeline:pipeline0/GstV4l2Src:v4l2src0 : Erreur interne de flux de données.
Information de débogage supplémentaire :
gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
streaming task paused, reason not-negotiated (-4)
/GstPipeline:pipeline0/GstVideoMixer:mix.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, interlaced=(boolean)false, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)30/1
Execution ended after 77142866 ns.
Définition du pipeline à PAUSED...
Définition du pipeline à READY (prêt)...
/GstPipeline:pipeline0/GstVideoMixer:mix.GstVideoMixerPad:sink_0: caps = NULL
/GstPipeline:pipeline0/GstVideoMixer:mix.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp1.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp1.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstVideoScale:videoscale1.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstVideoScale:videoscale1.GstPad:sink: caps = NULL
/GstPipeline:pipeline0/GstV4l2Src:v4l2src1.GstPad:src: caps = NULL
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src: caps = NULL
Définition du pipeline à NULL...
Libération du pipeline..

Remarque :
par contre dans l'exemple ci-dessous les 2 webcams fonctionnent ... mais dans 2 fenêtres distinctes, ce qui n'est pas le but recherché wink

Si je pouvais avoir une piste pour aller de l'avant ce serait super :-)
Merci
Titix

Hors ligne

 

#3 2013-02-28 19:30:30 Re : "Picture in picture" avec gstreamer

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1427
Site web

Re: "Picture in picture" avec gstreamer



Salut titix
oui tu aurais pu aussi bien poster dans 'discussion code', m'enfin ici ça revient plus ou moins au même...

Sinon pour ton problème je vais pas pouvoir beaucoup t'aider mais voila ce que je ferais à ta place :
a) tester chaque webcam indépendamment :
genre tu lances un script simple d'utilisation de la 1ière webcam (sans incruste, que dalle, le strict minimum pour tester)
tu stopes le script
tu lances le même script mais qui pointe vers la 2ième webcam

b) si ça marche (les 2 webcams sont supportées individuellement) :
tu lances ces 2 script en même temps

c) si ça marche
tu lances un script accédant au 2 webcam sans autre chose que le mix es 2 flux
... et ainsi de suite, pour essayer de trouver ou se trouve le problème (je dis ça j'y connais que dalle en gstreamer...)

Hors ligne

 

#4 2013-03-01 00:07:49 Re : "Picture in picture" avec gstreamer

titix
nouveau membre
Date d'inscription: 2013-02-28
Messages: 8

Re: "Picture in picture" avec gstreamer



Bonjour à tous,
Bonjour Rep et merci pour ta réponse ;-)
Oui, c'est ainsi que je procède : par sauts de puce et tâtonnements multiples ... mais ces derniers ont leurs limites quand on s'envase dans les bases ... et je crains d'ailleurs avoir atteint mon niveau d'incompétence avec ma dernière bidouille :

gst-launch -v -e videomixer name=mix ! ffmpegcolorspace ! xvimagesink v4l2src device=/dev/video3 ! videoscale ! capsfilter caps="video/x-raw-yuv, framerate=(fraction)15/1, width=144, height=116" ! textoverlay font-desc="Sans 24" text="CAM1" valign=top halign=left shaded-background=true ! videobox border-alpha=0 top=-120 left=-170  !  mix. v4l2src device=/dev/video0 ! videoscale ! capsfilter caps="video/x-raw-yuv,framerate=(fraction)1/1, width=320, height=240"  ! ffmpegcolorspace !  mix.

Cette fois j'ai bien réussi à obtenir l'incrustation d'une webcam dans l'autre mais , si le râfraichissement est correct pour lune , il est très mauvais pour l'autre :-(
Quant à varier le "framerate" je n'ai trouver que cette valeur de 1/1  pour éviter de planter l'ensemble ...

(et en plus ce qui fonctionne avec une webcam usb ne le fait pas nécessairement avec une autre :-(

des idées ? (ou urls pour ma culture wink

Merci!
Titix

Hors ligne

 

#5 2013-03-01 03:02:22 Re : "Picture in picture" avec gstreamer

Makio135
membre
Lieu: Lyon
Date d'inscription: 2010-11-11
Messages: 89
Site web

Re: "Picture in picture" avec gstreamer



Salut,
j'y connais rien en gstreamer pur, mais la librairie Processing GSVideo d'Andreas Koller (http://gsvideo.sourceforge.net/) est basée sur GStreamer et supporte sans problème le multi cameras, donc selon ce que tu veux faire, tu peux:
-> soit tout faire directement tout dans processing avec GSVideo qui devrait gérer ça sans problème
-> soit te plonger dans le code source

Hors ligne

 

#6 2013-03-01 10:54:26 Re : "Picture in picture" avec gstreamer

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: "Picture in picture" avec gstreamer



Bonjour titix,

citation :

Cette fois j'ai bien réussi à obtenir l'incrustation d'une webcam dans l'autre mais , si le râfraichissement est correct pour lune , il est très mauvais pour l'autre :-(
Quant à varier le "framerate" je n'ai trouver que cette valeur de 1/1  pour éviter de planter l'ensemble ...

tes 2 cameras sont du même modèle ?
le framerate varie en effet beaucoup selon le modèle, voire en fonction de la luminosité, du profil couleur demandé, etc ... suivant les caractéristiques de la cam. et de son pilote .
au vu de tes /dev/videoX semble y en avoir beaucoup sur ta machine .
perso, pas trop au top avec Gstreamer, j'ai pas de piste pour le code . Mais j'utilise des trucs comme v4lutils, Guvcview, video4linuxControlPanel, etc ... pour fixer les réglages UVC (ou GSPCA) des caméras (quand elles le sont) .
Je veux dire : essaie qu'elles aient les mêmes et fixes .

Dernière modification par sakramh (2013-03-01 17:45:04)


le code est l'alchimie de l'âge du silicium

Hors ligne

 

#7 2013-03-09 22:33:20 Re : "Picture in picture" avec gstreamer

titix
nouveau membre
Date d'inscription: 2013-02-28
Messages: 8

Re: "Picture in picture" avec gstreamer



Bonjour à tous,
et merci beaucoup Sakramh et Makio135 pour vos compléments d'infos :-)

Je pense avoir au moins compris qu'investir en temps pour découvrir et apprendre à utiliser des outils comme Processing serait un meilleur choix que de bricoler avec mes webcams usb (modèles non identiques) en jouant sur le framerate (je ne savais pas que cela variait avec autant de paramètres dont la luminosité)

Voici donc de quoi  m'amuser un bon moment wink

@+
Titix

Hors ligne

 

#8 2013-03-10 02:08:55 Re : "Picture in picture" avec gstreamer

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: "Picture in picture" avec gstreamer



Gstreamer est quand même un outil super ( d'ailleurs si il est utilisé dans pd, processing .... avec des lib supplémentaires c'est que y a de quoi ) ;
Sauf que brut, sans surcouche, l'apprentissage est #@!"* . Que neni la doc etc ... Sinon manipulation d'images (et son) avec stream simultané , voire enregistrement , le tout dans UN soft et sans surcouche , pas trouvé mieux non plus . Désolé pour le manque d'aide sur le code , j'ai pas eu l'occasion de pousser mes connaissances plus loin avec gstreamer . Et puis là, l'occasion faisant le larron, j'ai que une webcam .
Mais il me vient une 'tite idée pour outrepasser le framerate ; pourquoi ne pas balancer (piper) les sources v4l dans des vloopback . La sortie des vloopback est vue comme des périphériques v4l(2) et isole des variations de l'origine .
http://www.lavrsen.dk/foswiki/bin/view/ … backDevice
inclus dans les dépots Debian ...
perso je compile le module sur Ubuntu  et le "modprobe" à la demande parce que celui des dépôts pas réussi à l'installer "debian way" .

Dernière modification par sakramh (2013-03-10 02:17:36)


le code est l'alchimie de l'âge du silicium

Hors ligne

 

#9 2013-03-13 09:11:51 Re : "Picture in picture" avec gstreamer

titix
nouveau membre
Date d'inscription: 2013-02-28
Messages: 8

Re: "Picture in picture" avec gstreamer



Bonjour Sakramh,
Bonjour à tous,

Je commence à avoir quelques difficultés à suivre wink
J'avais découvert vloopback (en tombant sur une doc d'install de webcamstudio) mais je ne comprends pas ce que signifie, dans ton explication, la dernière remarque :
"[...] et isole des variations de l'origine."  ?

la seule chose que j'ai réussi à tester étant d'envoyer la webcam sur le réseau ... puis de récupérer ce flux pour le transmettre vers un périphérique virtuel :-(
(je n'ai pas réussi à transmettre directement de la webcam vers le périphérique virtuel...)

ce qui donnait par exemple :
1- envoi webcam (/dev/video0) vers flux
gst-launch v4l2src device=/dev/video0 ! videoscale ! video/x-raw-yuv,width=320,height=240 ! ffmpegcolorspace ! smokeenc ! udpsink host=127.0.0.1 port=1234

2- et récup flux et envoi vers périphérique virtuel (/dev/video1 )
gst-launch udpsrc port=1234 ! smokedec ! ffmpegcolorspace ! v4l2loopback device=/dev/video1

Titix

Hors ligne

 

#10 2013-03-13 13:45:12 Re : "Picture in picture" avec gstreamer

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: "Picture in picture" avec gstreamer



Je pense que dans ton cas il faut utiliser "resize" pour faire le job .
Regarde : How to use multiple webcam applications with vloopback sur la page http://www.lavrsen.dk/foswiki/bin/view/ … backDevice
si c'est bien ce module que tu as . resize , feed , etc... sont des utilitaires qui se compilent dans le dossier example des sources .
Quand à mon idée d'isoler , mmmh... . J'ai juste pensé qu'il serait plus facile de demander un framerate (inférieur au minimal des webcams) aux sorties des "vloopback" afin de le fixer . Mais c'est une surcouche . Mieux vaudrait fixer le fps avec un utilitaire UVC (genre uvcView) si c'est possible avec le modèle de caméra .


le code est l'alchimie de l'âge du silicium

Hors ligne

 

#11 2013-03-14 23:35:03 Re : "Picture in picture" avec gstreamer

sakramh
membre
Lieu: clichy-sous-bois
Date d'inscription: 2008-12-02
Messages: 829
Site web

Re: "Picture in picture" avec gstreamer



oops ! vérification faite, nous ne parlons pas du même module Vloopback . Est apparu le vloopback pour v4l2 dont tu parles en fait . Et oui c'est vrai que v4l a changé (gstreamer aussi d'ailleurs (y'a les 2 versions dans quantal) . Alors que moi j'utilise encore des softs "legacy" en v4l1 avec sur-couche de compat. v4l2 (libv4l0) . Mais j'ai vu que pour ton module il y a aussi des "utils" dont parmi les dépendances gstreamer-tools . Mon petit doigt me dit ....

Dernière modification par sakramh (2013-03-15 11:55:00)


le code est l'alchimie de l'âge du silicium

Hors ligne

 

#12 2013-04-11 18:21:26 Re : "Picture in picture" avec gstreamer

Sawsen
nouveau membre
Date d'inscription: 2013-04-11
Messages: 2

Re: "Picture in picture" avec gstreamer



Bonjour tous le monde,
j'espère que je suis pas trompée de choisir le bon forum,
je suis actuellement en train de développer un plugin source gstreamer qui englobe les fonctionnalités de Frontend(tunning) et de demux ,je devais passer les données filtrées qui se trouvent dans un buffer aux pads sources(audio et vidéo)
y a t'il une méthode pour faire ce passage de données.
merci de me répondre.

Hors ligne

 

#13 2013-04-26 19:16:22 Re : "Picture in picture" avec gstreamer

Sawsen
nouveau membre
Date d'inscription: 2013-04-11
Messages: 2

Re: "Picture in picture" avec gstreamer



Salut,
j'étais vraiment déçue par ce forum sad .
je suis sure et certaine  maintenant que c'est pas le bon choix de forum.
mad

Dernière modification par Sawsen (2013-04-26 19:17:30)

Hors ligne

 

#14 2013-04-26 19:55:58 Re : "Picture in picture" avec gstreamer

rep
modérateur
Lieu: Toulouse
Date d'inscription: 2008-02-27
Messages: 1427
Site web

Re: "Picture in picture" avec gstreamer



Sawsen, hormis le fait que j'ai vraiment du mal à comprendre ta problématique initiale je n'en reste pas moins admiratif quant à ta faculté à être déçue...
Tu pourrais nous en dire un peu plus sur ton projet ? Qu'est ce que tu veux faire précisément ? Ou est ce que tu en es ?  Et aussi : tu pourrais montrer un peu de code ?
Répondre à ces questions permettra aux codelabistes de te répondre plus facilement (j'espère)

Hors ligne

 

#15 2013-04-28 11:22:03 Re : "Picture in picture" avec gstreamer

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: "Picture in picture" avec gstreamer



citation :

je suis sure et certaine  maintenant que c'est pas le bon choix de forum.

AhAhhaAhHahHAHAhhHAHAhHAhHahAHhahA !! lol


L'Amour au Peuple !

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2019