---
title: "通话、游戏与直播 | Kilobat 文档"
url: "https://kilobat.app/zh-hans/docs/calls"
description: "通话与远程会话报告、通话模式、会前检查、到游戏服务器的 ping 和直播叠加层。"
---

# 通话、游戏与直播

通话与远程会话报告、通话模式、会前检查、到游戏服务器的 ping 和直播叠加层。

## 通话报告

每次通话后，Kilobat 都会告诉你通话是否卡顿以及原因。当 Zoom、Microsoft Teams、FaceTime、Slack、Webex、Discord、WhatsApp、Telegram、Signal 或浏览器使用麦克风超过十秒时，它就会察觉到通话。它从不收听通话内容：它只看到哪个 App 在使用麦克风，而这一点 macOS 本来就会显示。在通话结束前，它每秒 ping 一次互联网和你的路由器，记下最忙的其他 App，并每五秒检查一次 Mac 的 CPU、内存、温度和 GPU。

连续两秒或更长时间 ping 丢失，或 ping 比该通话平常慢 200 ms，就算作一次卡顿。每次卡顿都会标出原因：当时有其他 App 在上传或下载、你网络上的其他设备（根据路由器的流量计数器，前提是路由器通过 UPnP 共享它们）、Wi-Fi（路由器也同时停顿时）、隔空投送扫描，或发生在路由器之外。此外，卡片还会说明 Mac 本身何时吃力：CPU 满负荷（以及是哪个 App 造成的）、内存不足、Mac 因过热而自行降速，或 GPU 满负荷。卡片会显示在“健康 › 通话”中，并以通知形式出现。没有 Pro 时，它会显示通话卡顿了几次；Kilobat Pro 会指出原因并给出可以尝试的办法。可以在“设置 › 网络 › 每次通话后报告”中关闭。在终端中，`kilobat calls` 会列出这些卡片，智能体可以通过 `get_call_reports` 获取它们。

如果通话在路由器之外（即通话服务自己的服务器所在之处）卡顿，Kilobat 会在通话结束时查询该服务的状态页面，卡片会说明它当时报告的内容：“Zoom 的状态页面当时报告了故障”，并附上事件和链接；或者说明它当时未报告任何问题。这部分功能免费。

## SSH 和远程桌面报告

SSH、Mosh 或远程桌面会话结束后，Kilobat 会告诉你输入是否延迟、画面是否卡顿，以及原因。它会统计拥有自己终端的 `ssh` 或 `mosh-client`（有 tty，或父进程中有 Terminal、iTerm2、Ghostty、WezTerm、kitty、Warp 或 VS Code 等终端 App），以及正在显示远程屏幕的屏幕共享、Parsec、Jump Desktop、Windows App（Microsoft Remote Desktop）、AnyDesk、TeamViewer 和 RustDesk。会话需要在前台的终端或查看器中有一分钟的输入，才会生成报告，因此通过 ssh 的 `scp`、`sftp`、`rsync`、`git`，隧道（`-N`、`-f`），ProxyJump 跳转，单条命令，以及编辑器或智能体在后台运行的 ssh 都不计入。连到这台 Mac 本身的会话（localhost 上的虚拟机或容器）会被跳过。Chrome Remote Desktop 运行在浏览器标签页中，无法与浏览器区分开。Kilobat 从不读取会话内容：它只看到进程、进程所连接的地址，以及它传输了多少字节。

会话打开期间，Kilobat 每秒 ping 一次主机（连接所指的主机自身地址）、互联网和你的路由器，每隔几秒从 macOS 读取该连接自身的 TCP 往返时间，并记下最忙的其他 App、Wi-Fi 和 Mac 的负载，方式与通话报告相同。连续两秒或更长时间 ping 丢失，或 ping 比该会话平常慢 150 ms，就算作一次延迟；对 SSH 和 Mosh 来说，只统计你正在输入的时候。每次延迟都会按通话报告的顺序标出原因：Wi-Fi 登录页面让你退出了登录；其次是其他 App 在上传或下载、你网络上的其他设备（如果是运行 Kilobat 的已配对 Mac，会显示其名称）、Wi-Fi 抖动或信号弱、隔空投送扫描、Starlink、你的运营商或更远处（互联网也同时停顿），或通往主机的路径本身（互联网按时响应，主机却没有）。如果延迟发生在路由器之外，且主机属于 Kilobat 会读取其状态页面的服务（例如 Tailscale），报告会说明该服务何时承认了故障。距离 150 ms 或更远的主机，即使线路干净，也会被指出太远。当主机和路由器都按时响应 ping，而按键却两秒或更长时间没有得到回应时，就是服务器本身太慢；Kilobat 只在这种情况出现两次后才会指出，而且只针对 SSH。不响应 ping 的主机改为测量到互联网的情况，并用该连接自身的 TCP 往返时间来衡量它的距离和进行这项检查。

对于 SSH，当延迟来自 Wi-Fi 抖动、隔空投送、Starlink 或路径，或主机太远、不稳定或丢包时，报告会建议使用 [Mosh](https://mosh.org)：它会立即显示你输入的内容，并能扛住丢包和 Wi-Fi 切换。如果原因是某个 App、其他设备、Mac 或服务器，报告就不会建议，因为 Mosh 只会把问题掩盖起来。会话在其进程退出时结束，或在十分钟没有按键后结束（远程桌面为三分钟），报告截止到最后一次输入。报告显示在“健康 › 远程会话”中，Kilobat 见到会话后这一项才会出现；只有出现延迟或卡顿的会话结束后才会发送通知。没有 Pro 时，报告只显示次数；Kilobat Pro 会指出原因，告诉你可以尝试什么，以及 Mosh 何时有帮助。可以在“设置 › 网络 › 远程会话后报告”中关闭报告或其通知。在终端中，`kilobat remote` 会列出它们（`--kind ssh|mosh|desktop`），智能体可以通过 `get_remote_session_reports` 读取。

## OBS 直播报告

每次 OBS 直播结束后，Kilobat 会说明是否丢帧、何时丢帧及原因。它通过 OBS Studio 28 或更高版本内置的 WebSocket 服务器（obs-websocket 5）读取数据。在 OBS 中打开“工具 › WebSocket 服务器设置”，勾选“启用 WebSocket 服务器”；然后在 Kilobat 中开启“设置 › 直播 › OBS 直播报告”，填写端口（除非更改，否则为 4455）和 OBS 要求的密码。密码保存在 Mac 的钥匙串中。**测试连接**会明确显示是否成功，或者 OBS 未运行、WebSocket 服务器关闭、需要密码或密码错误。Kilobat 只连接 127.0.0.1 并请求计数器：它绝不会看到视频、音频、聊天或直播密钥。它不读取 Streamlabs Desktop 和其他直播应用：Streamlabs 有自己的远程控制（端口 59650，使用令牌），其单一丢帧数无法说明丢帧发生在网络还是编码器。

OBS 直播期间，Kilobat 每秒向其请求一次直播状态（网络丢帧，即 OBS 所称的 Dropped Frames (Network)、拥堵数值和已发送字节数）及统计数据（因渲染延迟错过的帧、因编码延迟跳过的帧和 OBS 的 CPU 使用率）。同时，它以[通话报告](https://kilobat.app/zh-hans/docs/calls#calls)的方式测量线路：每秒 ping 一次互联网和路由器、其他最繁忙的应用、Mac 负载、路由器通过 UPnP 共享时的其他设备流量计数器、已配对 Mac 自身的报告、Wi-Fi 信号、隔空投送、Starlink 天线和 Wi-Fi 登录页面。

每个丢帧时段都会标明原因，网络原因与 OBS 自身原因分开记录。网络方面包括：Mac 上另一个应用正在上传（例如 Dropbox）、网络中的另一台设备、Wi-Fi 或路由器停顿（信号弱或隔空投送是原因时会注明）、Starlink、Wi-Fi 登录页面将你登出、设置的码率高于上传能持续支持的速度，或路由器之外的问题——运营商处或通往接入服务器的路径。因编码延迟跳过帧表示编码器跟不上，因渲染延迟错过帧表示 GPU 跟不上，通常是忙于游戏；报告会说明这不是连接问题。建议取决于原因：将码率降低到上传速度可支持的数值、暂停应用、使用直播通话模式、改用以太网、选择较近的接入服务器、使用更快的编码器预设或硬件编码器（Apple VT H264），或降低分辨率或帧率。

Kilobat 检测到直播后，报告会显示在“健康 › 直播”中，与通话和远程会话并列。只有丢帧达到值得注意的程度时才会通知：丢失至少 0.5% 的帧，或某个时段丢失至少 5%。没有 Pro 时，报告显示丢帧数；Kilobat Pro 会列出每个原因和应如何调整。**直播通话模式**（Pro）从 OBS 开始直播到结束期间暂缓[通话模式](https://kilobat.app/zh-hans/docs/calls#call-mode)会暂缓的应用，包括 Dropbox、Google Drive、OneDrive、Backblaze 等，以及没有游戏位于前台时的 Steam 下载。

**直播前检查**会判断上传速度能否支持今晚的直播。通过“健康 › 直播”、快捷指令*直播前检查*或 `kilobat stream check` 启动后，它会通过单条连接向 Cloudflare 上传约八秒（最多 16 MB），并向 1.1.1.1 发送 20 次 ping，测量抖动和丢包。它读取 OBS 中设置的码率（简单输出模式从配置文件读取，高级模式从配置文件的编码器设置读取）、上次直播的码率或你输入的码率，并进行比较：上传速度应达到码率加 30%。结果显示*已就绪*；上传速度足以覆盖码率但没有余量时显示*较紧张*；否则显示*不足*及合适的码率（上传速度除以 1.3，再向下取整到 100 kbps）。它还会列出当前正在上传的应用。在按流量计费的网络上，它未经询问绝不测量，而是使用该网络上次的速度测试，并注明这一点。检查免费。

在终端中，`kilobat stream`（或 `stream status`）显示 OBS 是否已连接、正在直播及目前丢帧数；`kilobat stream check` 运行直播前检查（`--bitrate <kbps>` 用于设置，`--no-measure` 使用上次速度测试，`--measure` 在按流量计费的网络上仍然测试）；`kilobat stream reports` 列出以往直播。每项都支持 `--json`。智能体使用 `get_stream_reports` 和 `check_stream_readiness`，两者均为只读。请参阅[面向主播的 Kilobat](https://kilobat.app/streaming)。

## 云游戏

云游戏进行时，Kilobat 按照[通话报告](https://kilobat.app/zh-hans/docs/calls#calls)测量通话的方式测量会话，结束后说明何时卡顿及原因。它通过应用名称识别 GeForce NOW、Boosteroid 和 Shadow 的 Mac 应用，并在浏览器中识别 GeForce NOW、Xbox Cloud Gaming、Amazon Luna、Boosteroid 和 Shadow。当应用或浏览器自身的流量承载游戏串流时，会话开始：连续十秒，传入 UDP 流量大部分时间至少 2 Mbps，平均 3 Mbps，且为传出流量的四倍。端口 443 上的普通网页视频和大多数双向通话不符合该条件。同一浏览器中其他繁忙标签页可能影响估算。在浏览器中，还必须识别串流名称：Kilobat 从网络过滤器的名称或反向 DNS 中查看浏览器正在连接的主机，寻找服务自身的主机（play.geforcenow.com、xboxlive.com 下的 gssv-play 主机、luna.amazon.、cloud.boosteroid.com、pc.shadow.tech）。无法识别的浏览器串流不会处理，因此没有网络过滤器时，部分浏览器会话不会被报告。它绝不会看到游戏、视频或你的账户。

会话期间，“健康 › 云游戏”显示过去 30 秒的 ping、抖动和丢包（串流服务器响应 ping 时测量到该服务器，否则测量到 1.1.1.1）、根据符合条件的客户端流量估算的串流码率和用量，以及此 Mac 上当前的干扰因素：隔空投送扫描、2.4 GHz Wi-Fi、信号弱，以及大量上传或下载的应用；iCloud 照片、iCloud 云盘、Time Machine 和 macOS 更新会按名称显示。**暂停隔空投送和后台传输**会暂停隔空投送的连接（免费；macOS 要求输入管理员密码），并在使用 Pro 时暂缓[通话模式](https://kilobat.app/zh-hans/docs/calls#call-mode)会暂缓的应用，例如 Dropbox、Google Drive 和 Steam 下载，直到会话结束、你切换到其中一个应用或最多三小时。Apple 的 iCloud 和更新服务不会暂停；卡片会说明如何自行暂停。按流量计费的网络或热点上还会显示当前码率下每小时的流量、按该服务的通常会话时长估算的总量（观察到三次之前按一小时计算），以及此处流量预算何时用尽。

卡顿指连续两秒或更长时间的 ping 丢失或比会话中位数高 100 ms，或者串流码率连续三秒或更长时间低于其中位数的 40%（服务降低了画质）；开始的前半分钟和最后几秒不计入。每次卡顿都会记录当时存在的因素：Wi-Fi 登录页面、路由器也停顿时的 Wi-Fi（细分为 2.4 GHz、信号弱、隔空投送和较远的 Mesh 节点）、Starlink 天线、另一个大量传输的应用、网络中的另一台设备，或路由器之外的问题。例如：“21:14 卡顿 40 秒：2.4 GHz Wi-Fi，同时 iCloud 照片正在上传”。没有 Pro 时，报告显示卡顿次数、ping、码率和流量；Kilobat Pro 会列出每个原因和应如何调整。发生卡顿的会话结束后会发送通知（设置 › 直播 › 云游戏报告，以及“会话卡顿后通知”）。最近 200 份报告保存在此 Mac 上。

在终端中，`kilobat cloud-gaming`（或 `cloud-gaming status`）显示当前会话，`kilobat cloud-gaming reports` 显示以往会话，两者均支持 `--json`。智能体使用只读的 `get_cloud_gaming`。请参阅[在 Mac 上玩云游戏](https://kilobat.app/zh-hans/cloud-gaming)，其中包含 [GeForce NOW](https://kilobat.app/zh-hans/geforce-now-mac)、[Xbox Cloud Gaming](https://kilobat.app/zh-hans/xbox-cloud-gaming-mac)、[Boosteroid](https://kilobat.app/zh-hans/boosteroid-mac)、[Amazon Luna](https://kilobat.app/zh-hans/amazon-luna-mac) 和 [Shadow](https://kilobat.app/zh-hans/shadow-pc-mac) 的页面。

## 通话模式

通话模式会在你通话时停止那些会让通话卡顿的 App。通话开始时，Kilobat 会暂停正在运行的 Dropbox、Google Drive、OneDrive、Box、Backblaze、Arq、Creative Cloud、种子下载客户端等 App，并拒绝它们的新连接，所以正在进行的上传会立即停止。游戏启动器（Steam、Epic Games、Battle.net）只在下载且没有游戏在前台时才会被暂停，因此游戏和它的语音聊天都能照常工作。通话一结束、你切换到其中某个 App、Kilobat 退出，或最多三小时后，一切都会立即恢复；每次暂停前都会写下一份列表，确保即使崩溃也不会有 App 一直处于暂停状态。Apple 自己的 iCloud 和更新服务不会被暂停。在“设置 › 网络 › 通话模式 › 选择…”中选择要暂停的 App，也可以在这里设置通话期间暂停隔空投送（每次通话开始时，macOS 会要求输入密码）。之后，通话卡片会说明通话模式暂停了哪些 App。通话模式是 Kilobat Pro 的功能。

## 会前检查

打开“设置 › 网络 › 会前检查”，并允许访问日历一次。在带有 Zoom、Google Meet、Microsoft Teams、FaceTime、Webex、Whereby 或类似链接的日程开始前约五分钟，Kilobat 会花十秒钟检查其他 App 的流量、Wi-Fi、向互联网发送 100 次快速 ping、隔空投送和 Mac 的负载。只有在有东西会让通话卡顿时才会通知你，例如“Dropbox 正在上传，Wi-Fi 信号弱”；使用 Kilobat Pro 时，通知中有一个按钮，可以暂停这些 App 直到通话结束。日历只在这台 Mac 上读取，会议的任何信息都不会被保存或发送到任何地方。

## 到游戏服务器的 ping

该排哪个区域？在“速度 › 游戏服务器”中打开游戏选择器，搜索你的游戏，然后点按“Ping 服务器”。Kilobat 会向该游戏的每个数据中心各 ping 五次，每次几个，并按 ping 中位数列出，附带抖动和丢包，最近的排在最前面，标为**最适合你**。2 ms 以内更稳定的区域优先于波动更大的区域。大约需要五秒钟，并且只在你要求时运行。选择器会先列出你最近用过的游戏，再按游玩人数列出所有游戏。

ping 的目标取决于每个游戏在哪里公布或托管服务器，而这个数字始终是你到该区域数据中心的 ping，而不是到你最终进入的对局服务器的 ping，后者可能会稍高一些：

- **Valve 中继**，适用于 Counter-Strike 2、Dota 2、Deadlock 和 Team Fortress 2：Valve 在每个数据中心的中继，来自 Steam 为每个游戏发布的中继列表。这些游戏的匹配流量经过这些中继，CS2 自己的 `net_print_sdr_ping_times` 测量的也是同样的中继。
- **Epic ping 服务器**，适用于 Fortnite：Epic 为每个匹配子区域指定的 ping 服务器。如果网络阻止 ping，Kilobat 会改为测量到它的 TCP 连接时间。
- **AWS 区域**，适用于 Apex Legends、Dead by Daylight 和 Marathon：这些游戏在 Amazon GameLift 上托管对局，Kilobat 会向游戏使用的每个 AWS 区域中 GameLift 自己的 ping 信标发送 UDP 回显（Apex 和 Marathon 在各自的 Steam 数据中心配置中列出了这些区域）。标签会注明区域，例如“Frankfurt · AWS eu-central-1”。
- **Azure 区域**，适用于 Rainbow Six Siege、Age of Empires II、III 和 IV 以及 Age of Mythology：Siege 的数据中心是 Azure 上的 PlayFab 区域，而每个 Age of Empires 大厅都会注明其中继服务器所在的 Azure 区域。Kilobat 会向每个区域的 PlayFab 信标发送 PlayFab 的延迟探测；如果某个区域没有信标（UK West），则测量到该区域 Azure Storage 的 TCP 连接时间。
- **官方测试主机**，适用于 Brawlhalla 和 Hunt: Showdown 1896：Brawlhalla 帮助页面为每个区域列出的 ping 测试主机（它们不响应 ping，所以用 TCP 计时），以及 Crytek 为 Hunt 的欧洲和美国东部区域公布的两个测试地址。

没有公布任何可 ping 目标的游戏会在选择器中列出并注明原因，Kilobat 不会去猜：Valorant 和 League of Legends（Riot 没有公布目标，玩家分享的地址也已不再响应）、Overwatch 2、Call of Duty、PUBG、Marvel Rivals、Roblox、World of Warcraft 等没有公布服务器或区域的游戏；GTA Online、Helldivers 2、Destiny 2 和 Warframe，由玩家做主机；Minecraft、Rust、Palworld 和 Valheim，你加入的是他人运营的服务器；还有 EVE Online，它的地址在 Cloudflare 边缘节点响应，而不是在伦敦。对于这些游戏，请使用“你当前的对局”。

面板顶部的**你当前的对局**适用于任何游戏。你玩游戏时，Kilobat 会查看前台的游戏，或最近一个在前台的游戏（“游戏”类别中的 App、Steam 库中的游戏，或 CrossOver、Whisky、Wine 中的 Windows 游戏），找出它交换 UDP 数据最多的服务器（不计网页、DNS 和语音通话建立的流量），显示 DB-IP 登记该地址的国家或地区（如果是 Valve 的中继，则显示 Valve 数据中心），并 ping 它五次。很多游戏服务器不响应 ping；这时 Kilobat 会显示“此服务器不响应 ping”，而不是显示丢包。有些游戏从 macOS 未标注地址的连接发送数据，Kilobat 会说明它看不到这些游戏的服务器。

点按**用于叠加层**，即可把其中任一 ping 放到直播上：叠加层随后每秒 ping 一次该数据中心或你对局的服务器，并在胶囊上显示名称，例如“CS2 · Frankfurt”或“Match · Germany”；对于对局，它每 30 秒重新查找一次服务器。在终端中，`kilobat games` 列出游戏，`kilobat games --game aoe4` 输出某个游戏的表格和叠加层目标，`kilobat games --match` 检查你的对局，`kilobat overlay --target aoe4:westeurope` 或 `--target match` 把它推送到直播；智能体使用 `get_game_ping`。

## 直播叠加层

在直播中显示实时 ping。开启“设置 › 直播 › 直播叠加层”，然后在 OBS、Streamlabs 或任何直播应用中将 `http://localhost:7171/` 添加为浏览器源（640 × 80 已足够）。一个小胶囊显示 ping、抖动、丢包和过去一分钟的折线。默认 ping 互联网（1.1.1.1）；可在设置旁边或从[游戏服务器](https://kilobat.app/zh-hans/docs/calls#games)中选择路由器、当前比赛或游戏的数据中心，胶囊会显示其名称；URL 中的 `server=0` 可隐藏名称。开头的蝙蝠在线路良好时呈蓝色微笑，变慢时变为紫色，状态差时呈玫红色皱眉。可在 URL 中更改：`?show=ping,jitter,loss,graph,speed`、`theme=dark`、`light` 或 `clear`，以及 `size=s`、`m` 或 `l`。使用 Pro 时，`brand=0` 隐藏文字标志，`face=0` 用普通圆点替代蝙蝠。开启期间，Kilobat 每秒 ping 一次目标；页面由 127.0.0.1 提供，因此只有此 Mac 可以打开。没有应用时，`kilobat overlay` 提供相同页面直到按下 Ctrl-C；可用 `--target` 选择路由器，或使用 `match` 或游戏区域。要在事后了解 OBS 丢帧原因并在直播前检查上传速度，请参阅[OBS 直播报告](https://kilobat.app/zh-hans/docs/calls#streams)。
