Salut !
Je viens de recevoir une Visioncam de chez Heden (http://amzn.to/1aSM0zE) et je souhaite m'en servir avec Pd.
Seulement voilà, autant recevoir le flux vidéo je pourrais me débrouiller, autant pour le contrôle de l'engin je sèche un peu.
Le code source de la page de contrôle indique que c'est du javascript et je ne connais rien dans ce langage.
Pd peut-il envoyer des commandes javascript ? Si oui, alors il faut trouver les commandes de contrôle de l'engin, comment puis-je m'y prendre ?
Merci beaucoup d'avance
Hors ligne
Bon ben je pense avoir trouvé la solution, et celle-ci se trouve ici :
http://syno.haeflinger.com/index.php/HE … A9cifiques
Seulement... comment puis-je envoyer la commande "127.0.0.1:9000/decoder_control.cgi?command=4&onestep=1" (par exemple) via Pd ?
J'ai essayé avec [netsend] mais ça ne fonctionne apparemment pas. De même avec la librairie de mrpeach [udpsend] et [tcpsend]
D'autant plus qu'il y a une authentification pour accéder au contrôle de la caméra ! Ah, la je sèche...
Dernière modification par RoKN (2013-11-13 16:20:55)
Hors ligne
Peut-être une piste :
sous linux, utilisant l'external de IOhannes (pdgst) - gstreamer pipeline:
gst-launch-1.0 -v playbin uri=http://admin:1@192.168.81.30/videostream.asf
ou RTMP stuff. d'abord faire fonctionner la caméra sous linux avec gstreamer ensuite tenté de compiler pdgst et faire une pipeline dans pd.
bonne chance
Hors ligne
Je n'ai pas compris.
Je découvre à peine ces histoires de pipeline, de streaming, etc, je dois avouer que je suis un peu à la ramasse là... mais je cherche à justement ne plus l'être
Donc, comment puis-je utiliser Gstreamer pour afficher le flux vidéo de la caméra ? Il semblerait que pour cela je doive créer un périphérique virtuel pour que la caméra soit détectée comme étant un périphérique au même titre qu'une webcam par exemple. A partir de là je pourrais importer le flux dans un patch avec un simple [pix_video].
Jusque là je comprends la théorie, mais en pratique ?
Ensuite pour revenir aux commandes, qu'est-ce que le RTMP stuff ? RTMP est un protocole réseau, pourquoi en aurais-je besoin alors qu'il faudrait juste que je trouve le moyen d'utiliser Pd pour "envoyer des URLs avec une ou deux variable dans chacune d'elle" ?
Avec [netsend], rien à faire. Je me connecte bien à la caméra avec un [connect 192.168.0.15 80]< , mais comment puis-je faire pour ensuite envoyer la commande au .cgi qui est, par exemple :
command=*VARIABLE_1*&onestep=VARIABLE_2&user=USER&pwd=PASSWORD
En URL, la commande complète est donc :
http://192.168.0.15/decoder_control.cgi?command=VARIABLE_1&onestep=VARIABLE_2&user=USER&pwd=PASSWORD
Dernière modification par RoKN (2013-11-14 10:33:29)
Hors ligne
Salut [netsend] ne marche qu'avec Pd & Max. Tu peux donc abandonner cette piste.
Le javascript est exécuter coté caméra, via des commandes envoyées par http comme tu l'as montrer:
<code>http://192.168.0.15/decoder_control.cgi?command=VARIABLE_1&onestep=VARIABLE_2&user=USER&pwd=PASSWORD</code>
Dans pd-ext tu peut passer par [iemnet/tcpclient] pour envoyé ses commandes
Dernière modification par Gwenn Thanameaux (2013-11-14 10:48:30)
Hors ligne
Oh oui, cela pourrait être une bonne piste...
Seulement, en voulant me connecter avec [connect 192.168.0.15 80], ça se déconnecte tout seul au bout de quelques secondes... peut-être à cause de l'authentification ?
Comment puis-je remédier à ça ? [connect user=USER&pwd=PASS@192.168.0.15 80] ne fonctionne pas à l'instar de [connect 192.168.0.15:user=USER&pwd=PASS 80]
Hors ligne
Il faut que tu écoute la réponse du serveur, il y a sans doute un code qui correspond a l'authentification et à ce moment la seulement tu envoie user & pass
Dernière modification par Gwenn Thanameaux (2013-11-14 11:03:31)
Hors ligne
Bon, ENFIN !
J'ai enfin réussi, non sans aide, à contrôler la caméra depuis Pure Data.
La solution se trouve dans la librairie PuREST_JSON (http://puredata.info/downloads/purest-json).
J'ai installé le paquet .deb (étant sous Ubuntu) et ensuite j'ai dû lancer pd-extended depuis le terminal, et ce dans le répertoire /usr/lib/pd/extra/purest_json/ :
cd /usr/lib/pd/extra/purest_json/ pd-extended
Une autre solution consiste à copier le dossier /usr/lib/pd/extra/purest_json dans /usr/lib/pd-extended/extra si l'on utilise comme moi Pd-Extended :
sudo cp -r /usr/lib/pd/extra/purest_json /usr/lib/pd-extended/extra
Voilà. Avec cette librairie installée il ne reste plus qu'à ouvrir un nouveau patch et commencer à s'amuser a "s'amuser" avec les objets de la librairie présents dans la description du projet sur la page de téléchargement de celui-ci
Pour que mon histoire de contrôle de caméra IP fonctionne, j'ai du relier un message à la boite [rest] :
[POST http://192.168.0.14/decoder_control.cgi … sword]<
Vous noterez la variable cachée. Celle-ci reçois le numéro de commande propre à celle sur laquel je veux agir.
Pour cette caméra, la liste des commandes exhaustives est dure à trouver, mais voici quelques liens :
http://syno.haeflinger.com/index.php/HE … onCam_V2.2
http://lucjuggery.com/blog/?p=210
Maintenant que le soucis de contrôle est réglé, il ne me reste plus qu'à trouver un moyen pour récupérer le flux vidéo dans Gem... la solution se trouverait-elle ici : http://wiki.labomedia.org/index.php/Pur … _GStreamer ?
A suivre...
Hors ligne
Cheers!
Hors ligne