You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过JavaScript程序化调用chrome://webrtc-internals导出数据?

能否程序化生成chrome://webrtc-internals格式的导出文件?

不能直接通过JavaScript调用chrome://webrtc-internals的导出功能——Chrome的内部页面(如chrome://开头的地址)处于独立安全上下文,网页脚本无法访问或调用其内部功能。

但你可以手动收集并格式化PeerConnection统计数据,生成和该工具导出文件完全一致格式的JSON文件,满足后续用testRTC或webrtc-dump-importer分析的需求:

核心实现步骤

  • 收集统计数据:通过RTCPeerConnection.getStats()方法定期获取PeerConnection的统计信息,该方法返回包含所有WebRTC指标的异步对象。
  • 模拟导出格式:chrome://webrtc-internals的导出文件是JSON数组,每个元素包含以下关键结构:
    {
      "time": 1620000000000,
      "type": "stats",
      "values": { /* 对应getStats返回的统计数据 */ },
      "id": "peer-connection-id",
      "timestamp": 1620000000000
    }
    
    你需要将每次获取的统计数据按此结构封装,同时记录毫秒级时间戳。
  • 添加首尾元数据:导出文件开头通常包含一条type: "start"的记录标记会话开始,结尾可按需添加type: "end"的记录。
  • 导出为JSON文件:将收集到的所有记录组成数组,通过Blob API生成可下载的JSON文件,示例代码:
    function downloadWebRTCStats(statsArray) {
      const blob = new Blob([JSON.stringify(statsArray, null, 2)], { type: 'application/json' });
      const url = URL.createObjectURL(blob);
      const a = document.createElement('a');
      a.href = url;
      a.download = 'webrtc-internals-dump.json';
      a.click();
      URL.revokeObjectURL(url);
    }
    

注意事项

  • 统计数据完整性:按1秒/次的频率调用getStats(),确保收集到完整的时序数据,和chrome://webrtc-internals的采样频率一致。
  • 字段名匹配:Chrome内部工具对部分统计字段的命名可能和标准getStats()返回值略有差异,需对比工具导出的样本文件调整字段名。
  • 多连接处理:若应用中有多个PeerConnection,需为每个连接分配唯一id,并在统计记录中区分,保证导出结构和工具生成的一致。

按上述方式生成的文件可直接被testRTC或webrtc-dump-importer解析分析,达到和chrome://webrtc-internals导出文件相同的效果。

内容的提问来源于stack exchange,提问作者peetonn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:57:09