google-chrome - chrome://webrtc-internal 如何测量往返时间?
问题描述
我一直在分析使用生成的 JSON 文件chrome://webrtc-internal
,同时在 2 台 PCS 上运行 webrtc。
我查看了Stats API来验证 webrtc-internal 如何计算往返时间 (RTT)。我找到了两种方法:
RTC 远程入站 RTP 视频流包含
roundTripTime
RTC IceCandidate 对,包含
currentRoundTripTime
.
哪一个是准确的,为什么以及如何计算?
RTT 是逐帧计算的吗?
它是用一种方式(sender --> receiver
)还是两种方式(sender --> receiver--> sender
)计算的?
哪些报告用于衡量 RTT?是Receiver Report RTCP
还是Sender Report RTCP
?
中长度的大小是GOP
多少Webrtc VP8 codec
?
解决方案
RTCIceCandidatePairStats.currentRoundTripTime由远程对等方响应 STUN 绑定请求所需的时间计算。WebRTC ICE 代理会定期发送这些消息,并且每条消息都有一个 TransactionID。
RTCRemoteInboundRtpStreamStats.currentRoundTripTime由收到最后一个 SenderReport 以来的时间计算。发件人知道它什么时候发送的,因此它能够计算它需要多长时间才能到达。
他们都是准确的。我个人使用 ICE 统计数据,因为开销较小。数据包不必通过 RTCP 子系统进行解密和路由。IMO ICE 也比 RTCP 更容易处理。
What is the size of the length of GOP in the Webrtc VP8 codec?
. 这取决于正在编码的内容和设置。你有一个低关键帧间隔吗?你编码的东西有很多变化吗?你想用这个问题来确定什么?
推荐阅读
- drools - 有没有办法在drools中使用基于规则LHS的休眠插入事实
- doxygen - 如何直接在单例实例上生成函数调用的调用者图?
- postgresql - 在 Postgres 中创建对自引用关系的约束
- jquery - 如何使用此嵌套 HTML 定位类的最近 div?
- javascript - 要求一个文件一次并使用函数参数传输它还是每次都在文件中要求它更好?
- python - 使用具有多个数据帧的 mplcursors
- vue.js - 如何知道异步组件何时完成渲染
- c# - 如何使用变体委托实现参数到参数的隐式转换?
- javascript - 如何在 HERE JS 3.1 API 中更改地图标记的锚点?
- javascript - 从异步类函数调用类函数