2016-07-29 3 views
1

Je construis une application web qui est capable de diffuser 9 vidéo en direct de notre serveur et je voudrais plonger plus profondément et d'améliorer la performance Web en examinant le taux FPS pour chaque vidéo. Je veux dire par là que j'essaie d'obtenir le nombre d'images que le matériel graphique essaie de rendre en une seconde.Comment calculer les FPS réels pour la vidéo HTML?

image

C'est le mètre FPS fourni par Chrome. Y a-t-il un moyen de construire mon propre compteur FPS correspondant aux vidéos? Chaque vidéo devrait avoir son propre compteur en marche.

Update 1

J'ai essayé d'utiliser cette Library et le résultat est un peu particulière.

var stats1 = new Stats(); stats1.setMode(0); 
var vSource = 'trailer.mp4'; 

var myVideo1 = document.createElement('video'); 
    myVideo1.width = 512; 
    myVideo1.src = vSource; 
    myVideo1.controls = 'true'; 

var myTable = document.getElementById('myTable'); 
    var row1 = document.getElementById('row1'); 

row1.appendChild(stats1.domElement); 
    row1.appendChild(myVideo1); 

setInterval(function() { 
    stats1.begin(); 
    myVideo1.play(); 
    stats1.end(); 
}, 1000/24); 

Ceci est l'extrait de la bibliothèque que j'utilise Link

begin: function() { 

     startTime = Date.now(); 

    }, 

    end: function() { 

     var time = Date.now(); 

     ms = time - startTime; 
     msMin = Math.min(msMin, ms); 
     msMax = Math.max(msMax, ms); 

     msText.textContent = ms + ' MS (' + msMin + '-' + msMax + ')'; 
     updateGraph(msGraph, Math.min(30, 30 - (ms/200) * 30)); 

     frames ++; 

     if (time > prevTime + 1000) { 

      fps = Math.round((frames * 1000)/(time - prevTime)); 
      fpsMin = Math.min(fpsMin, fps); 
      fpsMax = Math.max(fpsMax, fps); 

      fpsText.textContent = fps + ' FPS (' + fpsMin + '-' + fpsMax + ')'; 
      updateGraph(fpsGraph, Math.min(30, 30 - (fps/100) * 30)); 

      prevTime = time; 
      frames = 0; 

     } 

     return time; 

    }, 

    update: function() { 

     startTime = this.end(); 

    } 

Ma préoccupation est, l'algorithme semble être faux et le résultat que je reçois est pas « droit » ... ..

l'intention originale de la bibliothèque est de mesurer la performance Javascript, puis-je utiliser pour mesurer FPS de vidéo spécifique?

+0

Copie possible de [Vérifier FPS dans JS?] (Http://stackoverflow.com/questions/4787431/check-fps-in-js) –

+2

voir http://stackoverflow.com/questions/28420724/how- Pour-déterminer-le-frame-rate-sur-un-html-video-element pour plus d'infos, ce n'est pas une réponse. –

+1

@DavidR Je ne vois pas les relations ..... –

Répondre

0

La fréquence des images de la vidéo est pas calculée, elle est stockée en tant que partie des métadonnées de la vidéo. Il y a juste un champ dans l'en-tête de la vidéo qui indique combien d'images par seconde (ou éventuellement la durée de chaque image est affichée). C'est de la même manière que le navigateur connaît la résolution de la vidéo.

+6

Bienvenue sur Stack Overflow! Cela ne fournit pas de réponse à la question. Pour critiquer ou demander des éclaircissements d'un auteur, laisser un commentaire ci-dessous leur poste - vous pouvez toujours commenter vos propres messages, et une fois que vous [gagner] (http://meta.stackoverflow.com/q/146472/169503) suffisante [ réputation] (http://stackoverflow.com/help/whats-reputation) vous serez en mesure de [commenter] (http://stackoverflow.com/help/privileges/comment) sur n'importe quel post. Si vous avez une question connexe mais différente, [posez une nouvelle question] (http://stackoverflow.com/questions/ask) en référençant celle-ci si cela vous aidera à fournir un contexte. – ddb

+1

Je sais mais ce que j'essaie de réaliser ici, c'est de profiler ma vidéo et d'obtenir de meilleures performances en fixant la frame drop. Pour ce faire, d'abord j'ai besoin de savoir quand est la chute de trame va se produire ..... –

+0

ouais s'il vous plaît spécifier où trouver l'information exactement !! – Martian2049