webrtc统计信息

webrtc中可以通过调用RTCPeerConnection.getStats(),RTCRtpReceiver.getStats()和RTCRtpSender.getStats()这三个方法之一所获得的统计报告。

getStats有三个重载方法,其中selector为可选参数类型是MediaStreamTrack,表示为此MediaStreamTrack收集统计信息

getStats()
getStats(selector)
getStats(selector, successCallback, failureCallback) // deprecated

用法如下

const pc = new RTCPeerConnection()

// ...

// 获取视频流通信信息
pc.getStats().then(report => {
    report.forEach(stats => {
      console.log(stats);
    });
}).catch(err => {
    console.error(err);
});    

 可获取的信息类型如下

enum RTCStatsType {
"codec",
"inbound-rtp",
"outbound-rtp",
"remote-inbound-rtp",
"remote-outbound-rtp",
"media-source",
"media-playout",
"peer-connection",
"data-channel",
"stream",
"track",
"transport",
"candidate-pair",
"local-candidate",
"remote-candidate",
"certificate"
};

统计视频码率

setInterval(() => {
  pc.getStats().then(res => {
    res.forEach(report => {
      let bytes;
      if (report.type === 'outbound-rtp') {
        const now = report.timestamp;
        bytes = report.bytesSent;
        if (lastResult && lastResult.has(report.id)) {
          // calculate bitrate
          const bitrate = 8 * (bytes - lastResult.get(report.id).bytesSent) /
            (now - lastResult.get(report.id).timestamp);
        }
      }
    });
    lastResult = res;
  });
}, 1000);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值