夜雨聆风学习资料网

ARTICLE · 1146488

不想把屏幕共享交给会议软件?这个开源项目让朋友用浏览器看

不想把屏幕共享交给会议软件?这个开源项目让朋友用浏览器看

 一起看电影、给爸妈远程看一眼报销单、临时把窗口甩给同事——这几件事,现在多半要开一个会议软件。

建会、等人进房、点共享屏幕。名字叫共享,视频流先去了别人的机房,再分发给房间里的人。远程桌面更狠:对方拿到的不只是一块画面,还有操作权。

你真正要的,往往只是:我选一块屏,把链接发出去,对方用浏览器看着。

有个 MIT 协议的开源项目专门干这件事:Piik,仓库在 GitHub:TNTcraftHIM/Piik。官网 piik.tv,在线版 demo.piik.tv。

口号写得很直:Share the good stuff. 私密屏幕共享,邀请最多 20 位朋友观看。

译测站这次测的不是「谁家画质更真」,是这件事能不能从会议软件里拆出来——画面优先在设备之间走,观众不用装客户端。

先把口径说清楚。

我打开了在线版,切到简体中文,点到「开始分享」的选源器:浏览器、摄像头两栏都在,文案是「在系统选择器中选择屏幕、窗口或标签页」。/healthz 返回 {"status":"ok"}。

这一步自动化浏览器里信令显示「未连接服务器」,没有把屏幕真正推给第二台设备,所以下面不写延迟、不写帧率,也不装作已经完成端到端共享。Windows App 的发行包在 v1.9.2,压缩包大约 38 MB,文件名带 windows-amd64。

它想解决的,不是再开一场腾讯会议

会议软件的产品逻辑是:先把人都收进一个房间,媒体走平台的转发。

Piik 的逻辑反过来:一位房主选画面,发邀请链接;观众用电脑或手机浏览器打开就能看。文档写明——

  • 画面优先在参与者之间传输(P2P)
  • 自建站点才可以开媒体转发(SFU)做兜底
  • 项目自己的在线版和 App 的「公网邀请」是纯 P2P,没有 SFU

对写代码的人,它不是又一个「发起会议」按钮。它是一条你可以自建、可以看拓扑、可以把邀请权留在自己手里的锤子。

仓库 2026 年 8 月公开,写到这篇时大约 2500 star,语言是 TypeScript,最新发行v1.9.2。数字会变,以 GitHub 为准。

三种入口,别混成一句「打开就能用」

一、在线版:免安装探路。

打开 https://demo.piik.tv,点「开始分享」,用浏览器选屏幕、窗口或标签页。手机浏览器能调摄像头时,也可以只推摄像头。预览确认后复制邀请链接。

浏览器采集需要HTTPS 或 localhost。这是浏览器的限制,不是 Piik 额外设的门槛。

官方说得很硬:在线版由项目提供,画面只走设备间直连。页面能打开,不代表视频一定能连通。校园网、公司网、对称 NAT,常见现象就是网页在、画面不来。

二、Piik App:推荐给真正要分享的那台电脑。

从 GitHub Releases 或 Gitee 镜像下 piik-app 开头的 ZIP,解压后保留目录结构。Windows 跑 piik-app.exe,启动页会在系统浏览器里打开。

App 有三种模式,用途不一样:

模式
什么时候用
需要知道
本地房间
朋友和你在同一局域网
对方要能连到你这台电脑;多网卡时选对 IP
公网邀请
朋友在别处,临时发个链接
地址只在本次 App 运行期间有效;纯 P2P,没有媒体服务器兜底
连接站点
你们已经有一个 Piik 站点
站点管房间,App 管原生采集

分享期间要保持 App 开着。官方主要测过 Windows App 和桌面浏览器;macOS / Linux App 仍缺实机覆盖,有设备的人可以提 issue。原生采集:Apple 要 macOS 13+,Linux 还要额外系统组件。

三、自建站点:信令也放在自己机器上。

Piik Server 是一个带网页的独立程序。Linux x64 / ARM64 解压后:

   ./piik-server

本机打开 http://localhost:8787 即可试用。对外再配域名、HTTPS 反向代理、STUN。房间数据在工作目录的 SQLite 里。也可以 Docker Compose。

默认配置里,服务器只做房间管理、信令和 STUN,音视频仍在参与者之间走。要在 .env 里加 SFU_UDP_PORT=7882 才会启用转发兜底;再设 SFU_ONLY=true,所有房间都走服务器。开启 SFU 时,房主必须先关掉「隐私模式」,媒体才会允许走这条线路。

防火墙至少要放行 TCP 80/443 和 UDP 3478。STUN 域名要直接解析到这台机器,CDN 的 HTTP 代理转不了 UDP。

实测口径:出过网的是什么,没出的是什么

按官方文档和这次打开在线版看到的界面,四件事要分开说。

1. 画面默认不进会议云。P2P 成立时,视频和音频在房主和观众的设备之间传。这和腾讯会议、Zoom 那种「先进平台再分发」不是同一件事。自建且打开 SFU 之后,画面会经过你的服务器,不是 Piik 官方机房——前提是你没去用官方在线版。

2. 信令一定经过房间所在的服务器。谁进房、邀请链不链接得上,要靠这台信令服务。用 demo.piik.tv,信令在项目提供的站点上;用自建,信令在你自己的 Linux 上。WebRTC 还要 STUN 打洞,参与者的公网地址候选会经过 STUN。这不是「数据从来没出过任何网」。

3. 聊天不是端到端加密。文档原文:聊天消息经过房间所在的服务器,不提供端到端加密。每个页面只留本页最近收到的消息,刷新清空,后来的人看不到历史。需要留存时,可在聊天设置里导出最近最多 1000 条到本地文本。弹幕默认关,只影响自己的观看。

把「私密房间」听成「服务器看不见任何字」,会翻车。私密指的是:不是公开直播平台、有邀请和可选密码、画面优先直连。不是 Signal。

4. 在线版连通,不等于你办公室里也能通。官方反复写:网页能打开,不代表视频一定能连通。纯 P2P 需要可用的 UDP 路径。公司网、校园网先用手机热点对照;要稳定给外人看,考虑自建并开 SFU。UDP 被整段墙掉时,开 SFU 也救不回来。

它不会替你做的事

1. 它不是远程桌面。观众看到的是画面,没有键鼠控制。要对方帮你点按钮,去 ToDesk / RustDesk 那条线。

2. 它不是 20 人以上的公开直播。一位房主、最多 20 位观众。再多人,带宽和 NAT 都不是这个工具的设计目标。

3. 它不负责片源版权。「一起看电影」是官方示例场景。能不能播那部片,是你和版权方的事,不是 MIT 仓库的事。译测站不把功能介绍翻译成使用许可。

4. 它不能保证游戏采集一次就稳。文档单独写了游戏黑屏、进游戏后停止分享、Windows H264 / 显卡、HDR 发白。先换普通窗口探路,再跟游戏全屏较劲。Windows 分享时出现黄框,是系统采集提示,不是 Piik 画上去的水印。

谁值得装,谁先不用碰

值得现在试的人:

  • 临时给家人或同事看一块屏,不想先建一场会议
  • 观众在手机上,只愿意点链接、不愿意装客户端
  • 能接受先 P2P,不通再换热点或自建
  • 想把房间数据放在自己的 SQLite 里,而不是会议厂商后台

可以先观望的人:

  • 要的是「点一下,任何网络都能出画」
  • 聊天也必须端到端加密
  • 要 50 人同时看,或公开转播
  • 机器编不了、也没有一台 Linux 能跑 piik-server,却把「自建」当成唯一可接受的路径——那先用在线版探路,别一上来就买服务器

我的判断

屏幕共享的隐私问题,比「延迟差 40 毫秒」更先发生。点共享的那一刻,如果媒体走的是会议云,画面已经进了别人的机房。

Piik 把这件事收成:选来源、发邀请、浏览器看。默认 P2P,自建才能加 SFU。观众侧的安装成本几乎是零。

它能让画面不一定经过会议厂商。它不能让聊天对服务器不可见,也不能在所有 NAT 后面假装直连永远成功。对程序员,这就够当成锤子;当「加密直播间」用,会翻车。

仓库:https://github.com/TNTcraftHIM/Piik

Gitee 镜像:https://gitee.com/TNTcraftHIM/Piik

在线版:https://demo.piik.tv

文档:https://piik.tv/docs/zh/getting-started.html

许可:自有代码 MIT,依赖保留各自许可

这次打开在线版确认了中文界面和选源器;没有完成双端出画。

你要是已经在用会议软件共享屏幕,可以说说卡在「不想装客户端」,还是卡在「画面不想进云」。

相关学习资料