我正在构建一个能够从我们的服务器传输9个实时视频的网络应用程序,我希望通过检查每个视频的FPS速率来深入了解并提高网络性能。 我的意思是我试图获得图形硬件试图在一秒钟内渲染的帧数。
这是Chrome提供的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 :(得分:0)
不计算视频的帧速率,将其存储为视频元数据的一部分。视频标题中只有一个字段表示每秒有多少帧(或者每帧显示的时间量)。这与浏览器知道视频分辨率的方式相同。