Skip to content

Repository files navigation

RemoteMic

局域网内的低延迟“远程麦克风 / 监听”小工具原型。支持多客户端收听、可选 PSK 加密、基本网络/麦克风能力自检与多语言界面。

功能简介

  • 局域网 UDP 组播:服务器一次发送,多客户端同时接收。
  • 自适应抖动缓冲:根据网络抖动动态调节播放缓冲以降低延迟。
  • 多平台音频:基于 Rust + CPAL,自动选择输入/输出设备。
  • 基础指标:延迟、抖动、丢包率、音量 (RMS/峰值)。
  • 可选预共享密钥 (PSK) 加密:XChaCha20-Poly1305 保护音频负载。
  • 多语言界面(中 / 英)。

深入协议、音频管线与安全设计:见 docs/ 目录。

快速开始

1. 构建

要求:Rust 1.75+ (建议 stable 最新)。

git clone <repo-url>
cd RemoteMic
cargo build --release

可选打包 (Dioxus Desktop Bundle):

cargo install dioxus-cli --locked
dx bundle --platform desktop --release

2. 运行

./target/release/remote-mic

或使用打包后的可执行包 (macOS .app / Windows 可执行)。

3. 基本使用流程

  1. 启动程序,选择本机要作为“服务器”的网卡 IP 与输入设备(麦克风)。
  2. 可选填入 PSK(开启加密)。点击“启动服务器”。
  3. 在同一局域网其他机器或本机另一进程作为客户端:输入服务器 IP + 端口,必要时同样输入 PSK,点击“连接”。
  4. 观察指标与音量条;若听不到声音,检查权限或防火墙。

Windows / macOS / Linux 注意事项

Windows

  • 初次运行可能被防火墙拦截,请允许本程序的“专用网络”访问。
  • 若听不到输入,确认麦克风隐私权限已允许“桌面应用”。

macOS

  • 首次访问麦克风 / 本地网络会弹权限对话框,需选择允许。
  • 若权限被拒绝,可到“系统设置 -> 隐私与安全性”重新开启。

Linux

  • 需安装系统音频后端 (PipeWire / PulseAudio / ALSA)。
  • 某些发行版需手动授予多播或防火墙放行:允许 UDP 239.0.0.0/8 端口入站。

常见问题

问题 处理建议
客户端显示 Key Error 确认两端 PSK 一致;错误后无需重启服务器,可直接断开重连。
无法连接 / 超时 检查服务器 IP 是否正确、端口是否被占用、防火墙是否允许 TCP/UDP。
无声音 检查输入设备是否有电平、输出设备选择是否正确、系统权限。
丢包/抖动高 使用有线网络;避免与大流量下载同网段;查看是否存在 Wi-Fi 干扰。

功能状态速览

模块 状态
多客户端组播 已实现
自适应抖动缓冲 已实现 (EWMA + 动态目标)
PSK 加密 已实现 (payload AEAD)
鉴权 / 用户管理 未实现
FEC / 重传 未实现
可选压缩 (Opus) 规划中

目录说明

开发者请阅读:docs/developer_guide.md 与其它专题:

  • docs/protocol.md 协议细节
  • docs/audio_pipeline.md 音频与抖动缓冲
  • docs/security.md 加密与威胁模型

许可证

MIT License

致谢

图标与第三方素材:见 ATTRIBUTIONS.md


需要更深入的实现与扩展计划,请查看 docs/

About

A light-weighted app allowing to share media stream across local network

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages