Pages: 1 2
Bonjour,
depuis peu de temps, je suis l'heureux propriétaire d'une pi et je voudrai m'en servir pour capter de la video via une webcem et envoyer le tout par reseau a une autre instance de PD.
je pensai betement utiliser netsend, mais pix_video n'envoye que des pointers gem, qui sont donc inexploitable sur une autre instance de PD.
Je ne vois pas d'autre solutions a part peut etre stremer la video de la pi, recuperer le flux et en faire une cam virtuelle sur mon pc, mais ca me parait etre une usine a gaz...
Quelqu'un a deja reussi a envoyer un pix_video entre differentes instances de PD?
merci d'avance
Hors ligne
acryl a écrit:
Quelqu'un a deja reussi a envoyer un pix_video entre differentes instances de PD?
Salut,
- si les 2 instances puredata sont sur la même machine regarde les objets [pix_share_read] et [pix_share_write]
- si ce sont 2 machines séparées mais en réseau, dans ce dernier cas effectivement oui il est nécessaire de streamer, je vois pas comment ça pourrait être autrement (mais peut être me trompe je). Bref, dans ce cas, vlc sur le pi et le plugin Gem : libVLC compilé depuis un Gem récent devrait pouvoir t'aider... Quoi que je suis pas sur et certains que le pi soit capable de streamer convenablement et sans lag, c'est à tester.
Hors ligne
citation :
Quoi que je suis pas sur et certains que le pi soit capable de streamer convenablement et sans lag, c'est à tester
Quelqu'un que chez nous a streamé (avec Gstreamer, je crois) à partir d'une pi via Wifi et le résultat a été concluant...
Mais je n'ai pas la def de l'image en tête...
Certainement pas de la HD...
Dernière modification par Olivier (2012-12-30 14:21:29)
Hors ligne
Merci a vous deux pour les reponses,
Ca m'interresse bien d'en savoir un pleu plus sur le plugin Gstreamer pour gem.
Je suis obligé de recompiler gem pour integrer le support du plugin ou est-ce qu'on peut l'integrer via une librairie ou via puredata import (comme une libraire de patch type cyclone)?
Olivier, ce n'est pas de la HD que je cherche a faire, au max du 640*480, mais si il ya deja eu des test de faits sur pi, je veux bien en savoir un peu plus sur le comment.
En fait, dans l'idée que j'en avait, je fait tourner un patch sur la pi qui fait une analyse de la cam, puis me transmet des notes midi sur mon autre pc, mais je voudrai pouvoir egalment recuperer le flux video pour l'afficher. Je le fait pour le moment en faisant un ssh -X sur la pi et en creant une fentre gem, mais le X forwarding en ssh avec un flux de Webcam provoquent beaucoup de latence et fait ramer mon patch. Si je desactive l'affichage de la fenetre gem, ca va deja beaucoup mieux.
Du coup, est-ce que ca vous poarrait coherent de faire a la fois du streaming et du traitement sur la pi, puis de recuperer le flux video streamer sur un autre pc?
merci en tout cas pour la rapidité des reponses, codelab, mieux qu'un support hotline!!!!
Hors ligne
Salut,
tu crées un goulot d'étranglement car la connexion est nécessairement cryptée par SSH. Et le pi n'a pas vraiment un processeur taillé pour.
Tu pourrais essayer de faire un partage de fichiers non cryptés dans un répertoire conservé uniquement en mémoire (comme /run/shm) dans lequel tu écris un pseudo pipe qui est accédé par mplayer par exemple depuis la machine distante.
Pour le pseudopipe, je ne sais pas si Gem permet de le faire, mais pdp oui. (cf [pdp_rawout] et [pdp_rawin]). mrecorder doit le faire , tout comme vlc.
Dernière modification par oli44 (2012-12-31 16:35:21)
Hors ligne
Oui à savoir aussi que ce n'est pas le serveur X du pi qui s'occupe de créer ta fenêtre Gem mais bien celui du poste depuis lequel tu as lancé ton client ssh -X (le pi n'as de serveur X accéléré OpenGL donc n'est pas foutu de créer la fenêtre sdl/opengl...)
A mon avis le mieux est encore de streamer ton flux webcam depuis le pi vers une autre machine, autre machine qui sera en mesure de traiter le signal comme il se doit (le pi c'est rigolo mais comme machine de guerre pour du traitement vidéo on a quand même vu mieux)
Hors ligne
citation :
Tu pourrais essayer de faire un partage de fichiers non cryptés dans un répertoire conservé uniquement en mémoire (comme /run/shm) dans lequel tu écris un pseudo pipe
cela me semble en effet la bonne solution .
c'est presque ce que je fait : créer un fichier yuv4mpeg dans un partage (nfs, samba,peu importe)
c'est aussi une des techniques employées dans le soft "Lives" .
ce à quoi je me suis par contre tjs heurté : le fichier se limite à 2 gigas (et heureusement) et donc la machine client va repartir au début arrivée au bout .
Je n'ai jamais réussi à faire tourner un effacement à mesure du lu même en ramdisk (tmpfs) .
Dernière modification par sakramh (2012-12-31 17:33:37)
Hors ligne
En ce qui me concerne, je n'ai pas été très clair...
Le test a bien été fait à partir d'une pi, mais pas via Pd... uniquement avec du Gstreamer pur...
Je vais tenter d'en savoir un peu plus auprès de la personne qui l'a effectuée...
À suivre...
Hors ligne
un tas de pistes et un bon tuto sur ce blog au sujet de gstreamer : http://blog.nicolargo.com/gstreamer
Hors ligne
Au fait, dans la doc de [pix_share_write] , il est mis que seule les machines 64bits le supportent. Est-ce que qq avec une machine 32 bits peut confirmer que ça ne marche pas?
Hors ligne
Mmmm c'est pas exactement ça, est indiqué juste que ça ne fonctionne pas sous windows32 :
aidePd a écrit:
WARNING: [pix_share_write] and [pix_share_read] are only available on platforms that support shared memory (no w32 for now!)
Hors ligne
Bonjour a tous,
woua, je pensais pas qu'il y aurait autant de bonnes idées et de pistes sur ce problemes, merci a tout le monde.
En ce qui me concerne pour le moment j'en suis a essayer de streamer via pur gstreamer et effectivement ca fonctionne, cependant il ya beaucoup de latence alors que je suis en 320*240 a 30Ips, donc surement un peu de reglage a faire de ce coté la. (en meme temps je suis aussi en wifi et c'est surement pas le mieux)
j'ai vu aussi dans le lien sur les tuto gstreamer qu'on pouvait envoyer l output de gstreamer a un v4l2loopback et ainsi créé une cam virtuelle qui recupere le flux de stream (output de gstreamer en v4l2sink) , et qui doit donc etre exploitable dans Puredata.
Affaire a suivre donc, mais avec toutes ces pistes, je ne risque plus d'etre a court de solutions possibles...
Par contre, gstreamer faut rentrer dedans, au debut, ca fait un peu peur quand meme
Hors ligne
citation :
Par contre, gstreamer faut rentrer dedans, au debut, ca fait un peu peur quand meme
avec la version 0.8 de gstreamer il y avait un GUI pour créer/éditer les "pipes" .
çà n'a pas été reconduit avec la version actuelle (0.10), dommage (et c'est pas compat.) .
Les "vloopback" sont un super outil aussi pour tuyauter de la video d'une appli à une autre .
Edit: gstreamer est passé en version 1.x (remplace les précédentes mais comme pour les 0.10 et 0.8 peut être installée en // sans conflit ) .
Dernière modification par sakramh (2013-01-03 12:33:06)
Hors ligne
Pour le partage de mémoire, il y a la bibliothèque "share-mem" dans le svn à tester :
http://www.mail-archive.com/pd-list@iem … 53985.html
Je ne sais pas si ça marcherait avec de la vidéo.
Hors ligne
Pages: 1 2