Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2014-11-02 01:12:56 video et processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

video et processing



Salut,

voilà j'ai un petit temps de chargement tres court entre deux vidéos et j'aimerai que ce soit + fluide...
est ce que je m'y prends mal...voici le code

Hors ligne

 

#2 2014-11-02 02:34:38 Re : video et processing

Olivier
N°4
Lieu: Chalon sur la Saône
Date d'inscription: 2009-04-07
Messages: 1471
Site web

Re: video et processing



Essaye de charger toutes tes vidéos dans un tableau via une boucle dès ton setup() de manière à pouvoir écrire quelque chose du genre au moment où tu souhaites changer de vidéo :

Code (P5) :

newvideo = int (random(videomin, videomax));
movie1 = monTableauDeVideo[newvideo];

Bon courage... smile


L'Amour au Peuple !

Hors ligne

 

#3 2014-11-02 12:18:04 Re : video et processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: video et processing



salut Olivier,

j' ai justement essayé un truc du genre hier soir, mais je devais mal m'y prendre car ça ne marchait pas.
et je vais refaire un essaie, en espérant m'y prendre correctement :p

Sinon autre question lorsque QT me donne pour une vidéo un instant T à 00:00:10:85  et que je cherche à reprendre cet instant T dans processing via movie.jump(10:85); j'ai un décallage :s...c'est pas le même instant T
POURQUOI?

et merci

Hors ligne

 

#4 2014-11-02 14:37:12 Re : video et processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: video et processing



j ai suivi tes bonnes remarques mais ça lag tjrs entre deux vidéos

Dernière modification par superdz (2014-11-02 15:25:17)

Hors ligne

 

#5 2014-11-03 20:13:48 Re : video et processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: video et processing



nouvel test et plouf j 'ai essayé d’aléger void draw mais tjrs le même screen freeze au chargement d'une nouvelle video

si j ai pas un coup de main
je crois que je vais passer sur pure data :p

Hors ligne

 

#6 2014-11-08 22:14:34 Re : video et processing

chrisjo
membre
Date d'inscription: 2012-12-26
Messages: 22

Re: video et processing



Bonjour,
je suis intéressé par le problème car j'ai déjà réalisé des murs vidéo, genre 4x3, avec changement rapide de clips et j'ai eu ce genre de problème, freeze ou bien un fond vide... c'était en actionscript, c'était du à un problème de délai de chargement. J'avais trouvé une solution c'était en superposant 2 conteneurs vidéo et en préchargeant le clip suivant puis rendant transparent le clip supérieur...
J'ai donc fait un essai ici en préchargeant les clips car je ne crois pas que  l'inscription dans un tableau suffise à charger la vidéo, tant qu'on n'a pas enclenché "play()" c'est juste une adresse qui est inscrite, j'ai donc fait ceci :

void setup() {
  size(640, 360);
  // chargement des videos
  for (int i = 0; i < movB.length; i++) {
    movB[i]=new Movie(this, i+".avi");
    movB[i].play();
    movB[i].pause();
  }

je crois que cela améliore mais pas sûr qu'il y ait pas toujours un léger temps de freeze.

Je donne un autre essai où je précharge dans 2 variables movA et movB qui alternent comme clip en lecture, j'ai ajouté une transition de transparence, mais je ne trouve pas ça satisfaisant. A voir en haut gauche movA à droite movB et en bas l'alternance avec transition de transparence, mais on voit clairement qu'à chaque action "play()" sur un nouveau clip il y a un gel du clip déjà en lecture:

J'ai essayé de jouer sur le frameRate  sketch & video peut-être une atténuation de l'effet mais pas régulier...

Hors ligne

 

#7 2014-11-10 01:58:29 Re : video et processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: video et processing



salut chrisjo,
merci pour ton retour,

j'ai également essayé a peu pres la même chose que toi ...mais c'est pas top surtout que j ai des videos parfois tres courtes.
c'est drole que tu parles de flash car le projet initial est en flash et je pense y revenir dommage processing...
j'utilisais des videos de 720*576. j'aimerai passer à du 1024 HD minimum tu penses que c'est faisable avec flash? c'est pour du local
Et quelle manière as tu utilisé pour appeler tes vidéos?
voici mon projet initial pour te donner une idée
https://drive.google.com/file/d/0B484hB … sp=sharing

aller il est 2heure et je vais me coucher

Dernière modification par superdz (2014-11-10 08:13:36)

Hors ligne

 

#8 2014-11-12 19:03:00 Re : video et processing

chrisjo
membre
Date d'inscription: 2012-12-26
Messages: 22

Re: video et processing



Salut Superdz,
j'ai encore essayé car cela m'intéresse aussi personnellement d'obtenir une transition fluide : ce n'est pas le cas sauf si on lance les vidéos dans le setup() : je confirme qu'en faisant :

void setup() {
  size(640, 360);
  // chargement des videos
  for (int i = 0; i < movB.length; i++) {
    movB[i]=new Movie(this, i+".avi");
    movB[i].play();
    movB[i].pause();
  }

cela force le chargement du début des vidéos et ensuite on a enchaînement fluide.
Je dirais qu'il semble que seul l'appel de play() charge le début de vidéo en mémoire.
(bien que ce soit déconseillé d'enchaîner play, jump, pause... immédiatement).
Mais ça marche...

Mais pour une nouvelle vidéo qu'on veut lancer en cours de programme donc dans le draw(), j'ai mis un chronomètre et cela prend près de 200ms sur mon PC !!! : près de 5 images du clip en cours sont en attente pas étonnant que ça se voit!!!
Le programme se bloque le temps que play() puisse passer à read(). Il devrait pourtant y avoir un moyen de poursuivre le draw avec quelque chose du style available() mais celui-ci n'est disponible qu'après play() : c'est le serpent qui se mord la queue...

j'ai vu que tu avais mis un message sur le forum processing je vais le relancer avec ces précisions.

Hors ligne

 

#9 2014-11-12 19:34:27 Re : video et processing

chrisjo
membre
Date d'inscription: 2012-12-26
Messages: 22

Re: video et processing



suite sur Flash vs Processing

J'ai vu ton animation, Ok cela marche et je pense que cela fonctionne sans problème en HD; pour info mon mur affichait en continu 12 vidéos soit 1280x1024 et cela fonctionnait sur de vieux PC, par contre il faut voir éventuellement du côté de la compression, il y a 2 formats en FLV, Sorenson Spark moins bon mais moins gourmand en décompression et On2VP6 meilleur mais plus exigeant sur de vieux PC.
Par contre tu programmes en mode scène et en AS2, cela n'a rien à voir avec Processing :
-AS2 est obsolète et est un langage "objet " imparfait d'où le changement pour AS3;
- que ce soit avec processing ou AS 2 ou 3 en mode script on est dans la programmation directe : visuellement c'est pas terrible au départ mais c'est beaucoup plus puissant car tout ce qu'on a mis en place est accessible par le nommage des variables et peut donc être modifié tandis que quand on mélange en flash avec le mode scène cela peut devenir galère que d'aller rechercher une variable à modifier....
- ici tu incorpores directement tes AVI qui sont en fait transformés en flv à chaque exportation/enregistrement, cela peut devenir très long lors des essais si tu as un certain nombre de vidéos...

Perso c'est en voulant passer à AS3, j'avais commencé avec FlashDevelop,  que je me suis orienté sur Processing :
- libre, qui évolue vite (voir les versions qui se succèdent),
- une communauté de créateurs (ce site notamment plus intéressant que ce que j'ai pu trouver en flash),
- facile d'usage car vraiment orienté sur le traitement d'image (la syntaxe est moins pénible à taper au clavier et donc plus lisible)
- directement branché sur Java (cela m'a permis d'inclure dans mes programmes des gestions de mes dossiers d'images, plus besoin de renommage 1,2,3 etc..., tu as directement la liste avec les vrais noms...)

Bref pour moi, je ne reviendrais pas en Flash, pour l'instant c'est le 2e "glitch" que j trouve, le 1er s'était résolu avec la version suivante de processing...
Ce serait intéressant d'avoir d'autres avis...

Hors ligne

 

#10 2014-11-13 00:52:35 Re : video et processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: video et processing



salut chrisjo,
D'une, merci pour ton implication dans cet échange.
Deux, à avoir le choix je préfère également utiliser processing pour les mêmes raison que toi.

concernant flash si je viens à l'utiliser je pensais utiliser du f4v au lieu du flv... mais avant de m'orienter vers flash.

donc pour revenir sur processing l'idée, d’après toi, est de charger toute les videos +/-15 dans le setup, puis d'effectuer ma "loterie" pour jouer mes videos...
j'ai une question : lors du changement, que se passera t il avec movie "passé".
J'ymagine qu' il se stoppe et donc lorsque je l’appellerais de nouveau par un play ça risque de bloguer.
Mmmm ... ou alors il reste charger et démarrera aussitôt?!
bon le mieux est de faire des testes demains.
merci encore pour tes posts, c'est plus agréable de se questionner à deux.

julien

Hors ligne

 

#11 2014-11-13 19:46:06 Re : video et processing

chrisjo
membre
Date d'inscription: 2012-12-26
Messages: 22

Re: video et processing



salut Superdz,

oui pour une 15aine de clips : chargement en tableau dans le setup, faire un premier play() et pause() (il me semble que c'est mieux que stop()) débute vraiment la lecture et je dirais de manière peut-être pas très rigoureuse que cela maintient la tête de lecture sur chaque clip pour reprendre ensuite sans délai.
J'ai repris exactement ton script et modifié le setup() :

void setup() {
  size(640, 360);
  // chargement des videos
  for (int i = 0; i < movB.length; i++) {
    movB[i]=new Movie(this, i+".avi");
    movB[i].play();
    movB[i].pause();
  }
....

et pour moi pas de problème c'est fluide en boucle.
à toi de confirmer...
et tu as raison quand on peut partager des choses comme ça c'est plus sympa!

Hors ligne

 

#12 2014-11-21 23:17:38 Re : video et processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: video et processing



salut chrisjo,
désolé de n avoir pas donné signe de vie avant.
je viens de tester ta proposition avec trois video de 8 secondes... et ça tourne tres bien big_smile
je vais tester demain avec l'ensemble des videos...
merci

import processing.video.*;
int nbredevideo = 2;
int coupdede=1;
int newvideo = 0;
int lastvideo = 0;
boolean choixOK;
Movie [] movB = new Movie[nbredevideo+1];

void setup() {
  size(640, 360);
  for (int i = 0; i <= nbredevideo; i++) {
    print(i);
    movB[i]=new Movie(this, i+".mov");
    movB[i].play();
    movB[i].pause();
  }
  movB[0].play();
}


void movieEvent(Movie m) {
  m.read();
}
void jouer() {
  print("play");
  movB[newvideo].play();
  image(movB[newvideo], 0, 0, width, height);
  print(" - video "+ newvideo+" ");
  choixOK=false;
  lastvideo=newvideo;
}

void choix() {
  print("choix");
  //tant que l'ancienne video et la nouvelle sont identiques > relance un choix semi-aleatoire
  // while (newvideo==lastvideo) {
  //coupdede=int(random(0, 2));
  newvideo=int(random(0, 2));

  /* if (coupdede <4) {
   newvideo =int (random(1, 2));
   } else if (
   coupdede> 8) {
   newvideo =int (random(3, 4));
   } else {
   newvideo =int (random(5, 6));
   }*/
  //}
  print("=" +newvideo);
  movB[newvideo].jump(0);
}
void draw() {

  if (!choixOK && movB[lastvideo].time()>=movB[lastvideo].duration()-1) {

    choix();
    choixOK=true;
  } else if (movB[lastvideo].time()>=movB[lastvideo].duration()-0.2) {
    jouer();
  }
  image(movB[lastvideo], 0, 0, width, height);
}

Hors ligne

 

#13 2014-11-23 00:22:32 Re : video et processing

superdz
membre
Lieu: bruxelles
Date d'inscription: 2013-03-04
Messages: 21
Site web

Re: video et processing



salut,
ben ça tourne super bien.
une dernière chose, enfin deux :
je reçois ceci :
"(java.exe:6088): GStreamer-CRITICAL **:
Trying to dispose element inputselector36, but it is in PAUSED instead of the NULL state.
You need to explicitly set elements to the NULL state before
dropping the final reference, to allow them to clean up.
This problem may also be caused by a refcounting bug in the
application or some element."

est ce pour m'inviter à mettre en stop() et non en pause() mes vidéos (dans ce cas f*ck off) ou autre chose... ce n'est pas claire pour moi.

enfin j'ai choisi pour mes videos un .mov avec comme codec h264 le tout en 1024-576 à 25fps et pixels carrés
ceci te semble t il une bonne chose ? vois tu des choses auxquelles je devrais faire gaffe?
a+

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024