Javascript 如何计算HTML视频的实际FPS?

Javascript 如何计算HTML视频的实际FPS?,javascript,html,video,frame-rate,Javascript,Html,Video,Frame Rate,我正在构建一个web应用程序,能够从我们的服务器流式传输9个实时视频,我想通过检查每个视频的FPS速率来深入研究并提高web性能我的意思是,我试图获得图形硬件试图在一秒钟内渲染的帧数。 这是Chrome提供的FPS仪表。有没有办法建立我自己的FPS米,对应的视频?每个视频都应该有自己的仪表运行 更新1 我试过用这个,结果有点奇怪 var stats1 = new Stats(); stats1.setMode( 0 ); var vSource = 'trailer.mp4'; var my

我正在构建一个web应用程序,能够从我们的服务器流式传输9个实时视频,我想通过检查每个视频的FPS速率来深入研究并提高web性能我的意思是,我试图获得图形硬件试图在一秒钟内渲染的帧数。

这是Chrome提供的FPS仪表。有没有办法建立我自己的FPS米,对应的视频?每个视频都应该有自己的仪表运行

更新1

我试过用这个,结果有点奇怪

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 );
这是我正在使用的库代码段

我担心的是,算法似乎是错误的,我得到的结果不是“正确的”


该库的初衷是测量Javascript性能,我可以用它来测量特定的视频FPS吗?

视频的帧率不是计算出来的,而是作为视频元数据的一部分存储的。视频标题中只有一个字段,表示每秒有多少帧(或者每个帧显示的时间)。这与浏览器知道视频分辨率的方式相同。

可能与see重复,了解更多信息,但这不是答案。@DavidR我看不到两者之间的关系……欢迎使用堆栈溢出!这并不能回答这个问题。若要评论或要求作者澄清,请在他们的帖子下方留下评论——你可以随时在自己的帖子上发表评论,一旦足够,你就可以在任何帖子上发表评论。如果您有一个相关但不同的问题,请参考此问题,如果它有助于提供上下文。我知道,但我在这里试图实现的是评测我的视频,并通过修复掉帧获得更好的性能。要做到这一点,首先我需要知道帧丢失将在何时发生……是的,请指定在何处准确查找信息!!
    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();

    }