2016-07-29 5 views
1

私は、私たちのサーバーから9本のライブビデオをストリーミングできるWebアプリケーションを構築しています。各ビデオのFPSレートを調べることで、より深く掘り下げてWebパフォーマンスを向上させたいと思います。 これは、グラフィックハードウェアが1秒間にレンダリングしようとしているフレーム数を取得しようとしていることを意味しています。HTMLビデオの実際のFPSを計算するには?

image

これは、クロームが提供するFPSメーターです。ビデオに対応する自分のFPSメーターを構築する方法はありますか?各ビデオには、独自のメーターが動作している必要があります。

アップデート1

私はこのLibraryを使用してみましたが、結果はちょっと独特です。

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); 

これは私が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(); 

    } 

私の関心を使用しているライブラリのスニペットはアルゴリズムが間違っているようだと私は取得していた結果が「正しい」ではありません、されています... ..

ライブラリーの本来の目的は、Javascriptのパフォーマンスを測定することです。特定のビデオFPSを測定するために使用できますか?

+0

[FPSをJSでチェックしますか?](http://stackoverflow.com/questions/4787431/check-fps-in-js) –

+2

http://stackoverflow.com/questions/28420724/how-決定するための、フレームレートを指定したhtml-video-elementを、より多くの情報のために決定することですが、それは答えではありません。 –

+1

@DavidR関係を参照してください..... –

答えて

0

動画のフレームレートは計算されず、動画のメタデータの一部として保存されます。動画のヘッダーには、1秒あたりのフレーム数(または各フレームが表示される可能性もあります)が表示されます。ブラウザがビデオの解像度を知っているのと同じ方法です。

+6

ようこそスタックオーバーフロー!これは質問への答えを提供しません。批評をしたり、著者の説明を求めるには、自分の投稿の下にコメントを残してください。自分の投稿にいつもコメントをつけることができます。また、[earn](http://meta.stackoverflow.com/q/146472/169503)評判](http://stackoverflow.com/help/whats-reputation)あなたは[コメント](http://stackoverflow.com/help/privileges/comment)に投稿することができます。関連しているが異なる質問がある場合は、[新しい質問をする](http://stackoverflow.com/questions/ask)を参照してください。 – ddb

+1

私はここで達成しようとしているのは、私のビデオをプロファイルし、フレームドロップを修正してより良いパフォーマンスを得ることです。それを行うには、まず、フレームドロップが起こることを知る必要があります..... –

+0

ええ、正確に情報を見つける場所を指定してください! – Martian2049

関連する問題