Annonce

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


#1 2013-05-07 12:19:24 output sketch dans un pipeline

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

output sketch dans un pipeline



Salut à tous,

J'essaye de récupérer la video d'un sketch processing sous UbuntuStudio pour l'envoyer dans LPMT qui est un logiciel de projection mapping.
A l'aide d'un autre programme, v4l2loopback, il y a moyen de récupérer le flux d'un pipeline à l'aide de commande de ce type :
yuv4mpeg_to_v4l2 /dev/video1 < /tmp/pipe

Je ai seulement trouvé le moyen de récupérer un flux dans Processing à l'aide de Gstreamer, pas de l'envoyer.

Est-ce que je dois abandonner cette piste ?


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#2 2013-05-07 15:29:05 Re : output sketch dans un pipeline

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

Re: output sketch dans un pipeline



Je suis pas du tout au fait avec processing mais pourquoi envoyer la sortie de ton vloopback dans un pipe ?
LPMT semble d'après ce que j'ai rapidement vu sur leur site pouvoir prendre des caméras donc un périphérique v4l2 (la sortie de ton /dev/video1) .
EDIT :
En fait en te relisant je comprends Processing vers un "Pipe" vers un périf. v4l2loopback vers LPMT . .
Là pour processing je sais pas trop mais ce que je sais c'est que j'ai essayé des manip. du genre .
gephex vers un "fifo" (named-pipe) >> sortie fifo vers un vloopback >>> vloopback vers Puredata .
Un des soucis c'est que le "pipe" est bloquant : il n'écrit que si le client est lancé en lecture et souvent réciproquement .
çà marche impec avec 2 instances de gephex celà dit .

Dernière modification par sakramh (2013-05-07 15:40:59)


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

Hors ligne

 

#3 2013-05-08 09:38:38 Re : output sketch dans un pipeline

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: output sketch dans un pipeline



Si il y a moyen de ne pas pas passer par v4l2loopback, c'est encore mieux.
Tu penses qu'il y a moyen en ligne de commande de sortir un sketch processing vers un /dev/video1 ?


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#4 2013-05-08 10:50:46 Re : output sketch dans un pipeline

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

Re: output sketch dans un pipeline



Ben çà dépend du logiciel récepteur ... le plus simple étant un FIFO avec la restriction qu'il faut que le tuyau soit ouvert des 2 cotés .
sinon Gstreamer (avec ou sans v4l2 ) si le soft récepteur le permet .
J'ai un peu regardé hier du coté de MJPEG-Tools (basé sur des tuyaux aussi ) mais j'ai pas tout compris encore .
(je suis sur ce genre de problématique aussi : comment faire communiquer plusieurs softs de traitement entre eux sans monter une usine à gaz et en utilisant les outils existant (pas avoir à coder en dur soi même) . (j'arrive tout juste à hacker 2/3 lignes de bash ou c/c++ roll ) .
Là hier il m'est venu (parce que çà doit pas être bien compliqué ) écrire un code tel que :

Dernière modification par sakramh (2013-05-08 11:09:02)


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

Hors ligne

 

#5 2013-05-08 11:25:29 Re : output sketch dans un pipeline

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: output sketch dans un pipeline



Ok merci

J'ai un peu aussi regarder du côté de processing pour enregistrer une image, l'ouvrir dans LPMT puis l'écraser à chaque nouvelle frame de Processing mais LPMT ne rafraichit pas les images donc le mieux pour moi serait une pipeline.

J'essaye ce soir et je te tiens au courant.


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#6 2013-05-08 15:06:44 Re : output sketch dans un pipeline

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

Re: output sketch dans un pipeline



tu as essayé d'écrire dans un "FIFO" ?
tu lui donne un nom trompeur genre myfim.mpeg de façon que LPMT ne fasse pas trop la gueule .
Lancer le client lecteur(ici lmpt) avant l'écrivain .
Mais bien sûr cette fois envoyer un stream uyv4mpeg2 .

Dernière modification par sakramh (2013-05-09 15:55:10)


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

Hors ligne

 

#7 2013-05-08 15:28:49 Re : output sketch dans un pipeline

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

Re: output sketch dans un pipeline



citation :

Lancer le client lecteur(ici lmpt) avant l'écrivain .

je rectifie sad
je viens de faire l'essai suivant (enfin concluant) :
1- lancement du soft qui génére un stream yuv4mpeg (chez moi Gephex) vers un FIFO (namedpipe) appelé movie.mpeg
2- vlc >> ouvrir un fichier >> movie.mpeg
3- çà marche !!!
4- ne PAS fermer vlc  avant le soft qui génère sinon il reçoit un SIGPIPE qui le bloque .
5- arrêter ou mettre en pause etc ... le générateur de stream avant donc ... en ce cas le lecteur reste sur la dernière image reçue et attends sagement que çà revienne .
6- essai concluant avec VLC, serait étonnant que pas avec un soft du genre . En ce cas engueuler les développeurs . roll

Dernière modification par sakramh (2013-05-08 15:30:08)


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

Hors ligne

 

#8 2013-05-08 15:46:17 Re : output sketch dans un pipeline

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

Re: output sketch dans un pipeline



EDIT AGAIN !!!
mouais çà marche pas à tous les coups en fait . (çà m'agace !!!)
en tout cas pas avec Mplayer .
Il doit y avoir un ordre précis à respecter mais j'arrive pas à trouver lequel .

Dernière modification par sakramh (2013-05-08 15:47:55)


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

Hors ligne

 

#9 2013-05-08 22:13:03 Re : output sketch dans un pipeline

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: output sketch dans un pipeline



Salut,

J'ai essayé pas mal de truc mais j'ai toujours la même erreure dans LPMT :
OF: OF_LOG_WARNING: GStreamer: cannot query time duration

** (LPMT:6352): WARNING **: gstvideo: failed to get caps of pad sink:sink
OF: OF_LOG_ERROR: GStreamer: cannot query width and height
deleting video player

après avoir créer une pipeline avec la comande suivante :
v4l2loopback-ctl set-caps "video/x-raw-yuv, width=200, height=200" /dev/video1
suivie de :
./mysketch >> /dev/video1

Il doit rester le truc avec le FIFO et la création du fichier mais je ne sais pas comment faire.


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#10 2013-05-08 23:06:19 Re : output sketch dans un pipeline

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

Re: output sketch dans un pipeline



man mkfifo
#chezmoi
mkfifo /home/moi/film.mpeg

c'est un fichier vide qui fera toujours 0 octet . en fait il existe sur le système de fichier (ici mon disque) mais virtuellement .
c'est dans le kernel qu'il existe vraiment .
çà fonctionne mais c'est bloquant si un des cotés n'est pas ouvert ou se ferme .
Je cherche aussi une solution avec gstreamer . Je pense qu'il ne faut pas utiliser v4l2-ctl  ni v4l2vloopback-ctl .
Sauf à maîtriser entièrement .
Parce que çà fixe les propriétés  du /dev/videox pendant sa durée de vie .
Et que donc le pipeline Gstreamer ne fonctionnera pas si ses arguments ne sont pas exactement les mêmes .
Il m'a semblé qu'en lançant gst-launch ....! mes pipes ! et v4l2src ... ! mes pipes !.... cela initialise le vloopback avec les bon paramètres de size fps format .

Sinon on peut aussi créer un VRAI fichier /home/moi/movie.mpeg dans lequel on écrit vraiment .
çà çà roule . Mais le souci c'est que ce fichier grossit très vite avec un stream yuv4meg en 640x480 .
J'ai tenté de l'effacer (le vider) périodiquement avec un simple > movie.mpeg mais en ce cas le lecteur signale qu'il n'y a plus les headers .
Sinon si on laisse tourner sur un gros GROS GROS disque çà peut être une solution une heure ou deux .

j'imagine que tu as vu çà : https://github.com/umlaeute/gst-v4l2loopback

reste à trouver le moyen d'envoyer processing vers Gstreamer .

Dernière modification par sakramh (2013-05-08 23:35:06)


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

Hors ligne

 

#11 2013-05-09 15:48:11 Re : output sketch dans un pipeline

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

Re: output sketch dans un pipeline



----exemples relevés sur  http://github.com/umlaeute/v4l2loopback/wiki----

citation :

--- FORCING FPS ---
$ v4l2loopback-ctl set-fps 25 /dev/video0
or
$ echo '@100' | sudo tee /sys/devices/virtual/video4linux/video0/format

--- FORCING A GSTREAMER (0.10) CAPS ---
$ v4l2loopback-ctl set-caps "video/x-raw-yuv, width=640, height=480" /dev/video0

--- SETTING STREAM TIMEOUT ---
$ v4l2-ctl -d /dev/video0 -c timeout=3000
(will output null frames by default)
$ v4l2loopback-ctl set-timeout-image service-unavailable.png /dev/video0
this currently requires GStreamer 0.10 installed

---- d'autre part----
j'ai compilé https://github.com/umlaeute/gst-v4l2loopback
( faire make install en tant que simple user et non root, çà sera installé dans /home/.gstreamer-0.10/plugins  et reconnu par gst-inspect )

du coup une commande du genre :

gst-launch videotestsrc ! videoscale ! video/x-raw-yuv,width=640,height=480 ! v4l2loopback device=/dev/video0

donne un résultat bien mieux lisible dans par exemple Gem ou VLC (pas de grosses barres vertes non décodées)
que la commande habituelle du genre:

gst-launch videotestsrc ! videoscale ! video/x-raw-yuv,width=640,height=480 ! v4l2sink device=/dev/video0

décidément va falloir ouvrir une rubrique GStreamer  roll

OF: OF_LOG_WARNING: GStreamer: cannot query time duration

me laisse penser que LMPT s'attend à un fichier vidéo et non à un stream

Dernière modification par sakramh (2013-05-09 16:01:25)


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

Hors ligne

 

#12 2013-05-11 10:40:01 Re : output sketch dans un pipeline

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

Re: output sketch dans un pipeline



Ben mon gars ! smile
grâce à toi et au développeur de v4l2loopback , gros succès ce jour ! cool

J'étais intrigué par ta commande yuv4meg_to_v4l2 < file . Je voyais vraiment pas de quel soft elle était tirée . J'avais cherché un peu partout (mjpeg-tools etc..)
Et puis en fouinant les sources de https://github.com/umlaeute/ je tombe dessus et tout s'éclaire .
Je compile le machin et je lance .

Donc si LMPT sait lire un périphérique V4L2 et Processing écrire dans un FIFO çà doit rouler .

note : juste un petit "loup" . Pas réussi à construire le module v4l2loopback sur le kernel 3.8 rt . Obligé de rester sur le 3.2 sad
et çà m'a permis de réviser mes notions de redirection, pipe sur Unix aussi .

et aussi cela s'affiche aussi avec un :

gst-launch v4l2src device=/dev/video0 ! xvimagesink

Dernière modification par sakramh (2013-05-11 11:28:24)


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

Hors ligne

 

#13 2013-05-13 11:43:54 Re : output sketch dans un pipeline

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: output sketch dans un pipeline



Tu veux parler de ce bug :
https://bugs.launchpad.net/ubuntu/+sour … ug/1112644

Tu sais si il vont le corriger rapidement ? C'est un problème du kernel ou de v4l2loopback ?


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

#14 2013-05-13 18:14:37 Re : output sketch dans un pipeline

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

Re: output sketch dans un pipeline



J'ai pas fouillé . Mais c'est bien le même bug . Affecte le kernel 3.8 x86-64 Debian aussi . J'ai la chance d'avoir gardé le 3.2 sur lequel le module s'est bien construit . Quand à la correction ... Debian va attendre celle Ubuntu et réciproquement .  Y'a même des chances que çà soit Ubuntu qui corrige en premier vu que le bug affecte les utilisateurs de "Skype" . roll
Tu en en es où , toi ?
C'est que du bonheur ce petit utilitaire yuv4mpeg_to_v4l2 . Pas de latence, pas de bouffe ressources, et surtout pas de blocage du fifo quand un des 2 cotés est fermé .

Dernière modification par sakramh (2013-05-13 18:18:09)


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

Hors ligne

 

#15 2013-05-14 13:52:17 Re : output sketch dans un pipeline

matheynen
membre
Date d'inscription: 2008-06-09
Messages: 226

Re: output sketch dans un pipeline



Je suis passé sur ubuntuStudio 13.04 en effaçant ma 12.04,
donc la pour le moment j'attends que que le bug soit résolu.

Mais ça ne fait rien, le principale c'est que je sais que ça fonctionne
je peux envisager de concevoir mon projet avec ces outils.
En attendant il y a beaucoup d'autres choses à régler avant que ce ne soit fini.


Ce que vous avez fait au plus petit de mes frères, c'est à moi que vous l'avez fait.

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024