16 | WebRTC中的数据统计原来这么强大(下)
该思维导图由 AI 生成,仅供参考
再论 getStats
- 深入了解
- 翻译
- 解释
- 总结
WebRTC中的数据统计功能强大且多样化,通过getStats方法和RTCStatsReport类型的信息,用户可以全面了解WebRTC通讯过程中的各种统计数据。除了RTCPeerConnection对象外,RTCRtpSender和RTCRtpReceiver对象也有getStats方法,分别用于获取发送和接收相关的统计信息。通过示例代码对比发现,RTCPeerConnection对象的getStats方法获取的信息要比RTCRtpSender对象的多得多。RTCStatsReport类型的返回值包含了各种统计信息,包括编解码器、RTP流相关的统计信息等。这些信息可以帮助用户了解当前直播过程中支持的编解码器类型、每秒发送的比特率、包数等。此外,文章还介绍了RTCP协议中的SR、RR消息以及如何利用RTCStatsReport中的信息绘制图形,使监控数据更加直观地展示出来。文章还提到了第三方库graph.js,用于绘制各种图形,非常方便实用。在代码实现部分,通过定时器每秒获取一次Report,并更新图形,展示了如何利用WebRTC的统计信息绘制比特率和发送包的图形。整体而言,本文通过介绍WebRTC的数据统计功能以及相关代码实现,为读者提供了全面了解WebRTC通讯过程中的各种统计数据的方法。
《从 0 打造音视频直播系统》,新⼈⾸单¥59
全部留言(7)
- 最新
- 精选
- 许童童思考题: 不会影响准确性,因为每一次传输都是全量的,丢失只会丢失这一次的值,在下一次又会全量带过来。
作者回复: 赞!
2019-08-208 - npersonal老师,我想获取声音等级,目前web端是从webrtc提供的标准中获取,其他端是根据流去算出来的,我觉得这块性能开销很大。但是从webrtc标准api中获取,发现不同端取到的音量等级精度不一致,pc那边给过来的正常声音大概是0.7这种精度,但是android端给过来的是0.00…这种,这种是什么原因导致
作者回复: 开销还好,精度不一样应该是使用的计算公式不一致造成的,音频level 有不同的理解,你可以到网上查查
2021-05-29 - ripple一直对sr和rr不太理解,SR 是发送方发的,记录的是 RTP 流从发送到现在一共发了多少包、发送了多少字节数据,以及丢包率是多少。RR 是接收方发的,记录的是 RTP 流从接收到现在一共收了多少包、多少字节的数据等,实际中,发送方也是接收方的哇,譬如A,B,C三个user,A能收到BC的,B能收到AC的,C能收到AB的,然后拿C举例,收到A和B的RR后,然后和自己的SR对比,发现谁丢包严重,就限制谁?发现假如丢包严重,降低码率应该降低A还是B还是C呢?
作者回复: 从接收方收到反馈后,当然是限制发送发码流。如果是C收到了A和B的 RR,丢包严重的话,它要限制C的发送。
2020-08-09 - Benjamin李老师,SR 和 RR 这些统计信息,会反馈影响 WebRTC 的通信质量上嘛?
作者回复: 对的,会根据这些信息,调整发包的速度
2020-03-25 - 峰老师还是昨天问题,在Frefix,IE浏览器上是可以播放的,只是Google Chrome上播放一点就报错,提示视频问题或浏览器某些特征不支持,如果真的是视频问题,这种性象,暂时无法理解!
作者回复: 你用video 标签播的吗?如果是 video标签各浏览器的实现不一样,在chrome下,浏览器对vp8/vp9支技的更好。你可能通过第三方库来播MP4文件
2019-08-22 - 峰老师,这个问题你遇到吗,能否帮帮我 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'F:/mp4/convert/041.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf57.76.100 Duration: 00:00:21.04, start: 0.033008, bitrate: 3656 kb/s Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080, 3653 kb/s, 29.99 fps, 50 tbr, 15360 tbn, 60 tbc (default) Metadata: handler_name : VideoHandler[h264 @ 00000000028a4d80] Invalid NAL unit 8, skipping. Last message repeated 3 times[h264 @ 00000000028a4d80] concealing 7569 DC, 7569 AC, 7569 MV errors in P frame[h264 @ 00000000028a4d80] illegal short term buffer state detected[h264 @ 00000000028a4d80] mmco: unref short failure
作者回复: 提示上有这个信息“Invalid NAL unit 8” 说明你的视频数据有问题
2019-08-21 - npersonal老师,实现语音激励功能webrtc有提供一些支持吗,还是说都是要自己实现(大致思路是不是这样:使用AudioContext去做分析,识别出人声部分,然后去计算人声部分的音量等级去做比较)2021-07-08