Hello,
Ça va faire un tout petit temps que je réalise mes projets vidéo-interactifs avec Processing (installation vidéo, vj…). J'utilise également pas mal Arduino; Ainsi j'utilise pratiquement uniquement les bibliothèques Minim, Processing.video, et Processing Serial.
Mais niveau puissance et gestion de différents flux vidéos Processing, parfois, montre quelques signes de faiblesse. Je me dit parfois que ce langage n'est pas idéal pour tous mes projets, même si il a l'avantage d'être vraiment très intuitif.
Pure Data serait surement plus indiqué, mais je suis bêtement pour l'instant plus attaché à la programmation textuelle, qui est pour moi plus intuitive (...mais rien n'est inexorable bien sur ).
Ainsi, j'ai regardé du côté de Python et de sa bibliothèque openCV pour l'acquisition vidéo. Ma question est surement un peu bête et productiviste , mais la voici:
Si je passe de Processing à Python, aurais-je un gain de puissance qui vaille "l'effort" d'apprendre un nouveau langage? Python sait-il bien gérer (ou mieux gérer que P5) des calculs un peu lourds sur des images issues de flux vidéo? (opération sur les pixels, captation d'images en direct pour faire des boucles, soustraction de couleurs…)
Merci de vos réponses, j'espère ici ne pas heurter la sensibilité de développeurs/artistes-programmeurs en herbe avec ma question sans doute idiote…
Hors ligne
Bonjour,
Je ne suis pas du tout maître dans processing, mais plusieurs points :
le traitement de la vidéo est gourmand en ressources.
Souvent le problème viens de l'optimisation du code et non du langage utilisé ( par exemple
choix des codecs utilisés [ dans mon cas sous mac ou H264 de quicktime en progressif avec une image clé par image ou bien apple proRes ou encore hap. a moduler sous d'autres OS y'en a qui utilise le format MJPEG ]
traitement des effets vidéos dans les shaders et non en cpu,
reconnaissance openCV avec un flux minimisé [320*240 pixels par ex],
gestion des redondances et des ressources... ).
Après pour du plus lourd, tu peux utiliser openframeworks qui peut threader les vidéos, sans doute que processing peut aussi le faire, mais avec oF c'est sûr.
Mais si tu connais bien processing, je doute que tu auras un gain énorme à changer de langage.
La question est : est ce que mon code est bien optimisé?
Et apprends plutôt à utiliser les shaders tu auras un gain de performances énorme.
Hors ligne
Merci de ta réponse!
Effectivement, il faudrait sans doute que je passe du temps à maitriser davantage Processing, plutôt qu'aller faire de l'œil à un autre langage! ;-) D'autant plus que je bosse souvent en basse définition (pas plus de 720 ou 640 * 480 px); donc sans doute, il ne sera pas non plus utile d'aller entamer le gros jambon qu'est oF.
J'avais vaguement entendu parler des shaders, mais je ne savais pas du tout que l'on pouvait grâce à ça faire du traitement d'images issues de flux vidéos (je ne m'y était pas intéressé en me disait basiquement que c'était fait pour faire des choses comme des tas de particules ou du rendu 3D). Si je peux balancer ce gros morceau ailleurs qu'en CPU, ça devient très intéressant.
Je vais y jeter un œil. Par curiosité, si jamais tu as quelques exemples de traitement de fichiers vidéos (plutôt des choses filmées que du dessin génératif) qui utilisent shaders sous la main, ce ne serait pas de refus non plus (code ou vidéo) ;-) Je n'ai pas trouvé d'exemples à ce sujet.
Une bonne journée!
Hors ligne
Hopla j'ai trouvé des exemples concernant la gestion du traitement d'images avec les Shaders:
http://genekogan.com/works/processing-s … mples.html
C'est assez incroyable en effet, en bidouillant un code récupéré dans le lien plus haut, sans trop tout comprendre pour l'instant, on peut s'apercevoir qu'avec le GLSL on peut passer un effet de flou sur une capture vidéo en direct… sans aucun ralentissement (contrairement à la méthode filter(BLUR) assujetti à des lenteurs), et ce malgré le processeur de mon ordi quasi-obsolète.
Bon, eh bien, je vais oublier l'idée de passer sur Python ou oF. Processing est décidement plein de ressources!
Dernière modification par jojolaglaise (2015-07-21 18:34:38)
Hors ligne
si tu veux faire du traitement video en shader, j'ai posté un lien interessant ici : http://codelab.fr/2897-9
tu y trouvera un ensemble de filtres qui font les opération de base de photoshop...
Hors ligne
Sublime!
Hors ligne