janus在默认的api 没提供本地上传的速度 可以通过webrtc的getstatus()来获取参考
https://webrtc.github.io/samples/src/content/peerconnection/audio/
重点参考main.js
window.setInterval(() => {
if (!pc1) {
return;
}
const sender = pc1.getSenders()[0];
if (!sender) {
return;
}
sender.getStats().then(res => {
res.forEach(report => {
let bytes;
let headerBytes;
let packets;
if (report.type === 'outbound-rtp') {
if (report.isRemote) {
return;
}
const now = report.timestamp;
bytes = report.bytesSent;
headerBytes = report.headerBytesSent;
packets = report.packetsSent;
if (lastResult && lastResult.has(report.id)) {
const deltaT = (now - lastResult.get(report.id).timestamp) / 1000;
// calculate bitrate
const bitrate = 8 * (bytes - lastResult.get(report.id).bytesSent) /
deltaT;
const headerrate = 8 * (headerBytes - lastResult.get(report.id).headerBytesSent) /
deltaT;
// append to chart
bitrateSeries.addPoint(now, bitrate);
headerrateSeries.addPoint(now, headerrate);
targetBitrateSeries.addPoint(now, report.targetBitrate);
bitrateGraph.setDataSeries([bitrateSeries, headerrateSeries, targetBitrateSeries]);
bitrateGraph.updateEndDate();
// calculate number of packets and append to chart
packetSeries.addPoint(now, (packets -
lastResult.get(report.id).packetsSent) / deltaT);
packetGraph.setDataSeries([packetSeries]);
packetGraph.updateEndDate();
}
}
});
lastResult = res;
});
}, 1000);
将上面的pc 换成janus的pc就行了
每次和上次做对比 bitrate /1024 kb就是上传速度了
本文介绍了一种利用Janus WebRTC获取本地上传速度的方法。通过使用getSenders()和getStats()方法,可以周期性地收集发送者的统计信息,并据此计算出实时的上传速率和包速率。
3646

被折叠的 条评论
为什么被折叠?



