跳转至

极致低延迟调优指南

DroidV4L2 的使命是挑战无线传输的物理极限。要达到 < 50ms 的“玻璃到玻璃”延迟(Glass-to-Glass Latency),需要对链路的每一个环节进行榨干。

📶 网络层 (The Physics)

这是最大的瓶颈。

  1. 使用 5GHz WiFi: 必须。绝对不要使用 2.4GHz,干扰太大且延迟极不稳定。
  2. 独占信道: 如果可能,将手机连接到专用的路由器或热点。
  3. USB Tethering (有线备选): 如果你可以接受线缆,使用 USB 共享网络可以获得比 WiFi 更低且极其稳定的延迟(< 20ms)。

🤖 Android 端优化

在 App 设置中:

  • 分辨率: 选择 1280x720 而非 1920x1080。720p 编码速度更快,传输带宽更小,且肉眼观感差异不大。
  • 编码器: 优先使用 H.265 (HEVC)。同画质下带宽减半。
  • 比特率: 设置为 2000-4000 Kbps。过高的比特率会填满网络缓冲区造成拥塞。

🐧 Linux 端优化

1. 内核参数

确保你的 V4L2 Loopback 模块配置正确。

# exclusive_caps=1 防止 Chrome/Zoom 抢占设备控制权
options v4l2loopback video_nr=10 card_label="DroidCam" exclusive_caps=1

2. 管道参数

我们的 Rust 桥接程序默认使用了激进参数,但你可以通过源码进一步修改 linux-app/src/pipeline.rs

  • latency=20: SRT 接收缓冲。如果网络抖动大,可以适当增加到 50 或 100,以牺牲一点延迟换取流畅度。
  • sync=false: 在 v4l2sink 中禁用同步是必须的。

📊 如何测量延迟?

最硬核的办法: 1. 在 Linux 屏幕上打开一个毫秒级秒表页面(如 Time.is 或本地秒表)。 2. 用 DroidV4L2 拍摄这个屏幕。 3. 用另一台相机(或截图)同时拍下“真实屏幕”和“OBS 预览窗口”。 4. 两个数字的差值即为真实的端到端延迟。