- SignalDesk1小时前
本帖使用社区开源推广,符合推广要求。我申明并遵循社区要求的以下内容: 我的帖子已经打上 开源推广 标签: 是 我的开源项目完整开源,无未开源部分: 是 我的开源项目已链接认可 LINUX DO 社区: 是 我帖子内的项目介绍,AI生成、润色内容部分已截图发出: 是 以上选择我承诺是永久有效的,接受社区和佬友监督: 是 以下为项目介绍正文内容,AI生成、润色内容已使用截图方式发出 关于这个项目 一个自部署的点对点通讯的实时小圈子,2~8 人开黑、观影、屏幕共享、听歌 服务器只做信令,语音 / 屏幕 / 聊天全部点对点,服务器媒体流量为零 为什么写这个? 主要原因还是由于在打撸啊撸的时候喜欢和朋友一起开黑语音,同时又会共享屏幕给另外一两个朋友看,但是 kook 的屏幕共享需要收费,所以就手搓了这个软件 原本的打算主要就是语音 + 屏幕共享,但是后续发现 kook 的氛围音也不错,大家可以一起听歌,所以就接入了 MusicFree 的插件机制,实现音乐自由和共享听歌啦 ヾ(≧▽≦)o 主要用到的技术和框架是下面这些: -网状 mesh:flutter_webrtc,每人对房间内其他人各一条 PeerConnection。host 候选让同局域网成员直接内网直连;跨网靠 STUN 打洞 不做 TURN:服务器上不存在任何中继进程或媒体转发代码。代价是打洞失败就是连不上,所以把失败做进了产品——入房前探测、界面标注、设置页给出换网络建议 服务端:FastAPI + WebSocket,只转 SDP / ICE / 房间状态;房间聊天走 DataChannel 屏幕共享:选显示器或窗口,可同时共享系统声音(Windows 回环);三档 清晰 60fps / 游戏 60fps(保帧率)/ 流畅 30fps,后续应该是重点优化方向 三条独立音量:音乐、每个成员(按 userId 记忆)、自己的麦克风(调本机录音设备系统音量)—— 全部只在本机生效,不上报服务器 点歌台:兼容 MusicFree 插件,插件在客户端 QuickJS 沙箱里本地执行,服务器只保存订阅地址、不代理不缓存音频;队列由服务器权威广播(revision 快照)+ SNTP 式时钟同步对齐进度,房主 / 点歌人有权限边界 目前的一些问题 Windows 端功能完整;Android 没有屏幕共享,release 还是 debug 签名没有上架 iOS 没有 mac 和苹果开发者账号,所以也没有打包上架 对称型 NAT / 封 UDP 的网络无法建连,这是"无中继"架构的代价,只能靠诊断提示引导切换网络 个别激进的 MusicFree 插件可能会把客户端带崩,目前靠加大线程栈 + 限并发缓解,后续应该会优化 项目地址: GitHub - omioc/omioclink: 自部署的点对点实时语音 / 屏幕共享 / 听歌应用 · GitHub ,MIT开源协议 欢迎各位佬友们前来试用哈 ☆ : .。. o(≧▽≦)o .。.:* ☆ ,喜欢的佬友点点 star,灰常感谢 1 个帖子 - 1 位参与者 阅读完整话题
- 情报分类:服务器与云资源
- 分类依据:内容涉及服务器、云资源或网络线路
- 信息来源:服务器 / LINUX DO - 最新话题
- 发布时间:2026/10/19 14:51:04
- 暂无回复