Forums Développement Multimédia

Aller au contenu

Seconde de latence sur vidéo en boucle

complete as

10 réponses à ce sujet

#1 guu-ji

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 20 May 2015 - 14:52 PM

Bonjour !

Je bute sur un soucis tout ###('"@@@&&

Je reprend un ancien fichier, je suis donc obligé de passer par de l'As2 (mais j'ai fais un test en as3, ça ne change pas mon soucis...)

Je tente de loader un mp4 hd (1920 x 1080) en plein écran et en boucle...
J'ai un quart de seconde de blanc entre la fin de ma vidéo et son restart... et je ne comprend pas pourquoi...
testé le mp4 sur vlc et Quicktime en boucle, pas de soucis...
j'ai raccourci le mp4 sur adobe encoder pour m'assurer que ce n'était pas un blanc caché en début ou en fin et pour le raccourcir à 3 secondes, ça n'a rien changé...

je suis à court de pistes...
je cherche un tuto à download avec sources pour tester un fichier vidéo qui fonctionne et voir la différence avec le mien... ou une piste... ou plusieurs... MERCI !!!

c'est un bête composant FLVplayback +

import mx.video.*;
var listenerObject:Object = new Object();
listenerObject.complete = function(pEvt:Object):Void {
        pEvt.target.play();
};
toto.addEventListener("complete", listenerObject);
toto.contentPath = "videoIntro_24is_1_1_1.mp4";
 

a comprend pas du tout...

Étonnement, le pb ne se produit pas avec la méthode netStream

#2 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 20 May 2015 - 15:34 PM

Salut,

Comment tu fais ta boucle ?

#3 guu-ji

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 21 May 2015 - 09:20 AM

Hello !

Citation

Comment tu fais ta boucle ?
c'est à dire ?

J'ai un mp4 externe que je loade via FLVplayback. Du coup, la boucle est définie sur l'événement "complete" (cf code du msg 1).

Ce qui est strange, c'est qu'avec la méthode netstream (sur l'évènement NetStream.Buffer.Empty), ça boucle correctement. Pourquoi se faire ... alors à trouver la solution via FLVplayback ??? Parce que c'est énervant quand on ne réussit pas à faire un truc qui a l'air vraiment tout bête...

Je sais pas si j'ai répondu à ta question...

#4 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 21 May 2015 - 09:59 AM

En fait : tu lances le téléchargement de la vidéo. Sur l'événement "vidéo chargée"(?) tu lances la lecture, puis tu boucle.
Donc : tu (re)lances le téléchargement de la vidéo. Sur l'événement "vidée chargée" tu lances la lecture, etc. ?

Si oui, c'est le temps de chargement de ta vidéo qui prend une seconde…

Je ne connais pas AS2, mais sur l'événement "vidéo chargée", tu devrais la stocker, puis poser un écouteur "fin de lecture" qui ne lancerait que la lecture, pas un nouveau téléchargement.


Le code suivant est totalement fictif vu que je ne maitrise pas AS2 mais j'espère que ça t'aidera à comprendre l'idée.
Il faudrait surtout savoir si les événements de fin de load et de fin de lecture de la vidéo sont différents et s'ils portent bien ce nom…
import mx.video.*;
var video:*;
var listenerLoad:Object = new Object();
var listenerBoucle:Object = new Object();

listenerLoad.complete = function(pEvt:Object):Void {
                video = pEvt.target;
                video.addEventListener("complete", listenerBoucle);
                video.play();
};

listenerBoucle.complete = function(pEvt:Object):Void {
                video.play();
};

toto.addEventListener("complete", listenerObject);
toto.contentPath = "videoIntro_24is_1_1_1.mp4";
 


#5 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7017 messages

Posté 21 May 2015 - 12:49 PM

+1 Didier (que je salue au passage).

A mon avis (mais il faudrait que je vérifie), c'est effectivement parce que tu recharge la vidéo à chaque boucle que tu as cette latence, liée sans doute aux temps de réponse du serveur ou d'accès à la vidéo. Une fois la vidéo chargée il faut utiliser un autre écouteur pour vérifier que tu es arrivé à la fin de la lecture et qu'il faut repartir du départ (sans recharger).

#6 guu-ji

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 21 May 2015 - 17:11 PM

Merci à vous deux ! J'ai bien compris l'idée Didier :)
Je vais tester cela ce soir et je vous dis demain !

#7 guu-ji

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 21 May 2015 - 17:22 PM

J'ai pas pu attendre ce soir :)

import mx.video.*;
var listenerLoad:Object = new Object();
var listenerBoucle:Object = new Object();
listenerLoad.ready = function(pEvt:Object):Void {
trace("ready");
         video = pEvt.target;
         video.addEventListener("complete", listenerBoucle);
         video.play();
};
listenerBoucle.complete = function(pEvt:Object) {
trace("complete");
        pEvt.target.play();
};
toto.addEventListener("ready", listenerLoad);
toto.contentPath = "videoIntro_24is_1_1_1.mp4";
 

en sortie j'ai bien (donc il ne fait qu'une seule fois le onloadinit) :

ready
complete
complete
complete
complete
complete
complete
complete
 

mais j'ai toujours ce petit saut entre la fin et le replay...
grrrr... m'énerve ce truc...

je précise que je suis en local

#8 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 22 May 2015 - 09:08 AM

Dommage, ça semblait la bonne idée.
Sinon, je n'en ai pas d'autre et les spécialistes d'AS2 se font rares…

#9 guu-ji

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 22 May 2015 - 09:17 AM

Voir le messagedldler, le 22 May 2015 - 09:08 AM, dit :

et les spécialistes d'AS2 se font rares…

hé hé hé ... oui... ;-)
En tous cas merci de vous être penché sur cette épine !
C'est pas problématique parce que la solution netstream fonctionne très bien et donc peut être déployée sans soucis, mais c'est agaçant quand même de rester sur une porte close :roi:

#10 dldler

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 4163 messages

Posté 22 May 2015 - 09:53 AM

J'ai regardé un peu ce qui se passait. Et il semble que le temps de latence (chez moi il doit faire 0.3 secondes) est celui du "rembobinage" de la vidéo. En fait, quand on ne lit pas la video en boucle, on a le même effet le temps que la première image revienne s'afficher après la fin de la vidéo. Si ça veut dire que l'événement complete est diffusé après ce rembobinage, alors il n'y a rien a faire de propre.
Pour les rustines imaginables : utiliser 2 vidéos, compter les millisecondes la première fois, retrancher le temps de latence puis afficher masquer chacune des 2 copies en alternance… Je dis juste ça comme piste si quelqu'un d'autre venant à chercher une solution, parce que si tu dis que tu as une autre méthode qui fonctionne ça ne vaut pas le coup de travailler sur une rustine aussi moche et même incertaine.

#11 Alexiafx

    Ceinture Blanche

  • Members
  • Pip
  • 1 messages

Posté 26 May 2015 - 09:29 AM

Ceci est une question complexe, et je passais beaucoup de temps à comprendre, mais je ne sais toujours pas comment résoudre.

accesamsung



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)