Salut !
Bon, il y a déjà quelques messages sur le forum pour le même sujet mais je n'ai pas trouvé satisfaction dans les réponses avancée, notamment ici : http://codelab.fr/3872
Ma problématique est la même qu'Acryl : j'ai un patch Pd dans lequel j'aimerais récupéré un flux vidéo envoyé depuis mon Raspberry Pi.
Pour le flux vidéo au départ j'ai pensé à l'excellent motion, mais celui-ci ne fait qu'envoyer des succession d'image rafraîchies et non un "vrai" flux vidéo, et donc je pensais récupéré ces images unes à unes... mais c'est trop complexe et pas vraiment pratique
Donc finalement je pense opter pour VLC, encore faut-il que j'arrive à créer la ligne de commande adéquate, mais ça c'est une autre histoire et ce n'est pas le sujet de mon post ici
En effet, ce que je voudrais savoir c'est comment faire pour récupérer un flux vidéo avec Gem, mes connaissances en Pdp étant limitées et mon patch complet étant déjà sous Gem.
Donc, existes-il un objet Gem me permettant de récupérer un flux vidéo http du genre http://192.168.0.14/mon_flux_video.mpg/ (ou .mov ou .avi ou etc...) ?
Dans les messages glanés jusqu'ici j'ai cru comprendre qu'il fallait recompiler Gem avec un plugin VLC (libvlc5-dev), est-ce obligé ?
Merci d'avance
Dernière modification par RoKN (2013-10-31 16:33:17)
Hors ligne
RoKN a écrit:
Dans les messages glanés jusqu'ici j'ai cru comprendre qu'il fallait recompiler Gem avec un plugin VLC (libvlc5-dev), est-ce obligé ?
libvlc est dans la branche 'master' :
http://sourceforge.net/p/pd-gem/gem/ci/ … /videoVLC/
mais pas dans la branche '0.93' :
http://sourceforge.net/p/pd-gem/gem/ci/ … e/plugins/
donc suivant ta version de gem, faudra que tu (re)compiles.
tu as quel os et quelles versions de pd/gem ?
Hors ligne
Alors je bosse sous Ubuntu Studio 12.04 et ma version de Pd-extended est la 0.43.4
Hors ligne
Yo...
Pas trop le temps de détailler mais tout est en vrac ici.
En gros, avec v4l2loopback, tu crées une webcam virtuelle (ex: /dev/video69 )...
Dans laquelle tu écris avec [pix_record ] avec le bon codec (v4l2) + un [pix_snap] qui te shoote toute la scène.
Et puis tu stream le tout avec ffmpeg+oggfwd via IceCast.
ffmpeg -f v4l2 -i /dev/video69 -s 320x240 -r 25 -aq 2 -ac 2 -acodec libvorbis -f ogg - | oggfwd adr port pswrd /arg.ogg
Avec adr port pswrd à modifier selon ta config IceCast.
Bon courage...
(Attention, malgré une apparente nonchalance du à mon maque de temps pour en parler, cette technique est une putain de bombe de bombe de l'espace qui me rend toute chose... )
Dernière modification par Olivier (2013-10-31 13:04:00)
Hors ligne
Bon, déjà ça commence bien, impossible d'installer v4l2loopback
Ensuite, la solution que tu me décris me parait plus pour streamer un flux vidéo, or ce que je recherche, c'est recevoir un flux vidéo dans Pd, flux vidéo disponible depuis le serveur intégré à ma caméra IP et qui se trouve à
http://192.168.0.14/videostream.cgi
(vidéo uniquement)
ou
http://192.168.0.14/videostream.asf
(vidéo + son)
Hors ligne
Salut,
Il faudrait vraiment que tu puisses faire fonctionner la pipeline avec gstreamer avant d'essayer avec pdgst:
gst-launch souphttpsrc location=http://admin:1234@192.168.0.14/videostream.asf timeout=5 ! jpegdec ! glimagesink force-aspect-ratio=true
ou peut-être :
gst-launch rtspsrc location=rtsp://admin:1234@192.168.0.14/videostream.asf ! decodebin ! ffmpegcolorspace ! xvimagesink
Hors ligne
Hors ligne
mh... j'ai du mal à piger le fonctionnement de Gstreamer.
Je suis en train de m'aider de ça : http://blog.nicolargo.com/gstreamer mais y'en as partout.
En gros, si j'ai bien compris, pour tester le pipeline avec Gstreamer, cela reviens à faire en sorte que Gstreamer reçoive le flux vidéo, ici http://192.168.0.14/videostream.cgi (ou videostream.asf pour le son), encode dans un certain format et l'affiche dans un lecteur vidéo, c'est bien ça ?
Bon, admettons que j'arrive à le faire (ce qui n'est pas encore le cas mais je vais creuser), une fois ce test OK, il faudra ensuite que je route le flux vidéo via Pure Data, et là ce sera à PdGst, c'est bien ça ?
Bon alors dans l'ordre : tester le pipeline avec Gstreamer. Ensuite, utiliser PdGst (mais d'abord il faut réussir à l'installer).
Putain comment c'est complexe...
--------------------------------------------------------------------------------------------------------
Sinon je viens de tester plusieurs petites solutions, notamment :
gst-launch -v http://192.168.0.15/videostream.cgi ! theoradec ! autovideosink
Mais ceci me renvoie :
Erreur 401, donc authentification.
Essayons avec :
gst-launch -v http://admin:password@192.168.0.15/videostream.cgi ! theoradec ! autovideosink
Cela me retourne :
Bon. Essayons donc avec :
gst-launch -v http://192.168.0.15/videostream.cgi?user=admin&pwd=password ! theoradec ! autovideosink
Retourne :
...
Bon ben comment on fais pour s'anthentifier ?
Dernière modification par RoKN (2013-11-16 12:40:32)
Hors ligne
C'est ça, en théorie si ça fonctionne dans un pipeline gstreamer, ça devrait fonctionner avec pdgst. Oui, c'est complexe il faut compiler gem et pdgst, mais tel que si bien mentionné sur #dataflow: Readymade Solutions Require Readymade Problems ; For Everything Else There Is PureData.
gst-launch -v http://admin:password@192.168.0.15/videostream.cgi ! theoradec ! autovideosink
ça semble correct pour l'authentification, maintenant le problème est que le stream ne semble pas retournner du theora. je ne connais rien dans les caméra ip, mais je pense qu'il y a + de chance avec du jpegdec. informe-toi sur le format pour connaître le bon décodeur.
bonne chance
Hors ligne
citation :
or ce que je recherche, c'est recevoir un flux vidéo dans Pd
Ah oui, dis donc...
Sorry...
Toutefois, tu devrais pouvoir récupérer ton flux en ligne de commande (avec ffmpeg ou gstreamer) et le piper vers le fifo de v4l2loopback...
Il ne restera alors plus qu'à ouvrir ton périphérique vidéo avec un simple [pix_video] de base...
Sinon, je suis quasi sûr que nous avons réussi à récupérer un flux streamé par Motion avec un [pix_video]+backend VLC...
Bon courage...
Hors ligne
Bon, après une pause de quelques jours et un détour vers l'apprentissage du GLSL qui me donne beaucoup de fil à retordre, je reviens vers mon histoire de récupération de flux vidéo de ma maudite caméra IP.
Je suis donc en train d'arpenter de la doc sur Gstreamer (http://bit.ly/1b4fLLF) et mon instinct me confirme bel et bien que la victoire se trouve dans Gstreamer :-)
Il me semble que le format vidéo de la caméra est, au choix, MJPEG ou H.264.
Pourquoi il me semble ? Car dans l'appli Android de cette caméra, on a le choix entre ces 2 formats pour la lecture du flux, je suppose donc que...
Voilà. Pour le moment la commande :
sudo gst-launch -v http://admin:password@192.168.0.15/videostream.cgi ! jpegdec ! autovideosink
me renvoi :
Hors ligne
VOILÀ !
J'ai réussi à récupéré le flux avec Gstreamer ! :-D
Je me suis aidé de cette aide : http://blog.nicolargo.com/2009/04/gstre … -axis.html
Et donc ma commande :
sudo gst-launch gnomevfssrc location=http://admin:password@192.168.0.15:9090/videostream.cgi ! jpegdec ! ffmpegcolorspace ! autovideosink
Voilà. Maintenant que j'ai réussi ça, je vais passer à la compilation de PdGst...
Hors ligne
Pages: 1