Bonjour à tous.
Je vous envoie une petite bouteille à la mer.
Voici son contenu :
Je fais la régie d'un spectacle, avec contrôle par téléphone portable/osc, conduite son, lumière et bien sûr vidéo !
J'ai donc envisagé plusieurs possibilités pour déclencher ces vidéos.
La première, mplayer en slave. J'ai abandonné pour deux raisons, impossibilité de mapper et comportements un peu foireux entre deux vidéos (ferme et réouvre le programme malgré l'option -idle)
Solution pdp, aussi voire plus gourmand en proc que GEM, et puis je ne connais pas bien. L'avantage étant quand même l'existence du lecteur vidéo/audio...
Finalement, j'ai opté pour GEM.
Ensuite, j'avais des pains dans le son, j'ai donc essayé sur deux instances et bingo, plus de problèmes dans le son quand processus vidéo sur une autre instance.
J'ai tissé un patch vidéo avec réception de l'osc de contrôle provenant de l'autre patch (celui qui gère l'audio/lumière/conduite).
Je vous le joins.
Voilà mon problème maintenant : parfois et de manière fréquente sans que la raison soit identifiable, au lancement de la vidéo l'instance de PD plante et se ferme, uniquement celle qui gère la vidéo et non l'autre.
Je suis donc très embêté puisque pas de possibilité de rattrapage en jeu, je suis au plateau (d'où le téléphone portable...)
Autre chose qui m'a parut un peu bizarre, il a fallu que je fouille dans l'help de pd2lork pour trouver l'option -unique et être en mesure de lancer deux instances, pas de solution autrement.
Vous avez quelques pistes ?
Je suis un peu dans la mouise, ça joue mardi soir...
Merci d'avance.
Amicalement.
Dernière modification par albdet (2017-03-05 16:58:36)
Hors ligne
Salut,
Je n'ai pas vu dans ton patch des trucs qui pourraient poser problème. Ya des trucs qui ne fonctionne pas chez moi, mais comme je n'ai pas tous les patchs...
J'ai eu aussi un patch qui plantait de façon aléatoire. Il s'est avéré que c'était la communication IP qui en était la cause. J'avais 1 patch qui toutes les 5sec. vérifiait qu'un autre patch était bien ouvert sur 1 autre ordi, et régulièrement, l'un ou l'autre plantait. J'ai changé la fréquence de comm. (je ne vérifie plus que le patch est ouvert, je vérifie qu'il reçoit bien les infos que je lui fait parvenir) et le patch tourne désormais 12h sans problème.
C'est peut-être une piste.
Enfin, pour lire une vidéo, j'utilise l'objet [pdmtl/gems.movies~] qui gere la video et le son
Bon courage
Hors ligne
Salut,
donc, pour l'instant j'ai paré à l'urgence avec mplayer, mais il faudra que je m'y colle assez rapidement.
À priori, c'est vraiment le déclenchement de la vidéo qui fait planter la seconde instance.
Dès que j'ai à nouveau le temps de m'y pencher, je vais faire l'essai avec vanilla (là c'est pd2lork que j'utilise).
Je tenterai aussi le gems.movies que je ne connais pas, puisque ça me permettrait à priori de ne pas charger l'audio dans le patch (c'est lourd...)
Hors ligne
Hello,
[pd~] fait communiquer 2 instances de pure data, mais c'est l'instance maitre qui s'occupe de la diffusion, donc si il y a des lags dans l'instance maitre, ça fait aussi des sautes.
En vrac en plus du commentaire de tepaze:
La première chose que je ferai, c'est d'optimiser les vidéos : codec adapté (prores sous mac H264 sous linux, mais il y en a d'autres on a déjà eu ce genre de discussions dans ce forum.), résolution adaptée (les 3/4 du temps sur le mapping, un film de 480p suffit.)
Je sais qu'il y a une option de threading sur le pix film, tu peux tester, mais je doute que cela ne fasse grand chose, sauf pour les clicks audio.
Si tu peux te passer des delays, c'est mieux...
Ouvrir l'instance de pure data en mode verbose pour voir là où ça crashe, (et tant qu'à y être, -noaudio, -nrt, -nomidi, -nogui)
bourriner sur ton patch afin d'essayer de reproduire l'erreur.
Peut être aussi ne pas arrêter le flux gemhead, mais mettre un spigot après le pix-film plutot.
Et ca m'arrivait de faire planter pure data quand je chargeait un film qui n'existait pas.
Pas d'autres idées...
++
Hors ligne
Bonjour à tous.
Je m'y recolle, j'ai la semaine pour m'en sortir...
Là, je suis en train d'explorer la piste Pdmtl.
Premiers trucs étranges :
j'ai pas [gems.movies] mais [gemsMovies]
pas de sortie audio de l'objet
pas de bang de fin alors qu'il est indiqué en outlet 3 dans l'aide
un peu bizarre, problèmes de versions ?
Mais ça me semble tout de même à première vue plutôt souple et stable.
Si vous avez des éléments de réponse qui me font gagner du temps ce serait formidable !
Merci d'avance.
J'y retourne.
Hors ligne
Je viens de piger que c'est l'usage d'un compteur qui génère les craquements dans l'audio, quand je donne au [pix_film] ou [pix_movie] un message auto 1, tout va bien... (mais il ne joue pas à la bonne vitesse...)
De plus, je ne parviens pas de manière précise à synchroniser son et vidéo sans avoir à charger le son dans une table.
Ça serait jouable à partir de [readanysf~] d'obtenir un compteur correct à envoyer dans le [pix_movie] ?
Merci de vos lumières !
Hors ligne
albdet a écrit:
Ça serait jouable à partir de [readanysf~] d'obtenir un compteur correct à envoyer dans le [pix_movie] ?
Ouep pour ma part c'est ce que je fais (il y a un post de Philippe Boisnard qque part sur ce forum à ce sujet...) et c'est pour moi la meilleure manière(*) de faire de l'audio/vidéo avec pd/gem.
(*)pas de lags, bonne synchro, pas de plantages pourvu que l'on travaille avec les 'bons' codecs
Hors ligne
Hello, voilà où j'en suis, en fichier joints le patch et le sous-processus.
J'ai enlevé ce qui ne concernait pas la vidéo, mais c'est le patch que j'utilise.
Voilà aussi la conversion mencoder que j'utilise :
mencoder -mf fps=25 -oac pcm -srate 48000 -af lavcresample=48000 -ovc lavc -lavcopts vcodec=mjpeg:mbd=1:vbitrate=8000:autoaspect -vf pp=lb babyrose.mov -o babyrose.avi
Du coup, le truc paraît à peu près stable, mais j'ai encore des click dans l'audio, pour y pallier, je suis contraint de passer le paramètre échantillons de jack à 4096, il reste quelques clics et la latence à 170 ms commence à se faire sentir.
Est-ce qu'il y aurait une solution à ça ?
Quelque chose à optimiser dans les conversions ?
Merci d'avance !
Hors ligne
Hello,
pour un projet de synchro audio vidéo, j'ai utilisé GEM avec vidéo en mjpeg et le lecteur audio moonlib/sfread2~ séparés en 2 instances et reliés par un netsend/netreceive qui envoie depuis le lecteur vidéo la frame à jouer en audio (convertie en secondes modulo le FPS)
ça marche plutôt bien sans click et je n'ai a priori pas à augmenter la latence
idem avec le lecteur readanysf~ (le tout sous linux)
tu utilises toujours 2 instances dissociées ? ça semble ne aps être le cas dans ton patch (pd~)
pour pd-l2ork, il faut effectivement utiliser le flag -unique
si ça click, c'est que l'instance audio "sature" de calculs,
si c'est simplement pour déclencher la lecture vidéo audio, un nom de vidéo/audio à lire envoyé via netsend au deuxième patch ne devrait pas provoquer de clicks d'autant plus si tu as plusieurs coeurs sur ton ordi
ça doit marcher comme cela dans ces patchs https://github.com/b01xy/cyberlapsus
++
b
Dernière modification par benjamin (2017-05-11 23:44:31)
Hors ligne
Bonjour,
fonctionner avec un sous-processus est plutôt pratique pour moi puisque ça me permet de lui envoyer un flux audio pour la synchro ce qui est plutôt efficace (j'ai abandonné il y a un moment la lecture auto, pas fiable du tout)
Je comprends pas bien, il me semblait que justement, le [pd~] servait à générer une nouvelle instance automatiquement (c'est à dire sans avoir à ouvrir un autre parch à la main...) J'ai tenté le flag -unique sur le message {pd~ start -nogui -unique ...} sans succès, le résultat est inchangé, click régulièrement. Pour info, aucun des processeurs ne semble saturer... Une idée là dessus, la gestion des sous-processus ?
Je reviens à la charge... Est-ce que la ligne de mencoder vous paraît correcte ?
Merci !!!
Hors ligne