ZnScreen跨平台实时屏幕共享工具
原创
zngeek
zngeek
蓝极战队
2026年6月24日 23:53
贵州
在小说阅读器读本章
去阅读
好久没更新了,大家还在否?
事情是这样滴,今天去参加了一个技术交流沙龙,我分享了一个最近我潜心闭关研究的屌炸天的AI代码审计引擎,然后尴尬的事情发生了。
现场居然只有无线投屏,众所周知,我是linux的脑残粉,基本真机都不用windwos的,市面上99%的无线投屏器都是不支持linux操作系统的。于是我灵机一动,就拿别人的windows电脑投屏吧,然后他打开浏览器F11全屏实时显示我的屏幕不就OK了吗?于是就有了这样一个短时间手搓的实时屏幕共享工具。
跨平台可用,我编译了macos、linux和windows
特性
- 零外部依赖 — Linux/Windows 内置 ffmpeg 静态二进制,解压即用;macOS 使用系统 ffmpeg
- 极低延迟 — ffmpeg MJPEG 硬件编码 + WebSocket 二进制帧直推,不经 Canvas 渲染
- 背压保护 — 环形缓冲区仅保留最新一帧,慢客户端自动丢帧,不拖垮服务端
- fan-out 广播 — 单个 ffmpeg 进程服务所有 WebSocket 客户端,按需启停
- 跨平台 — Linux(X11)、macOS(AVFoundation)、Windows(GDI)均可捕获
- 随机密码 — 每次启动生成随机密码,打印在终端
快速开始
# 下载对应平台的二进制
# 或自行编译:make build
# 启动(默认监听 0.0.0.0:9115)
./znscreen
# 终端输出:
# 密码: a1b2c3d4e5f6g7h8
# ZnScreen 已启动: http://0.0.0.0:9115
浏览器打开 http://服务器IP:9115,输入密码即可观看屏幕。
命令行参数
| 参数 | 默认值 | 说明 |
|---|---|---|
-h |
0.0.0.0 |
监听地址 |
-p |
9115 |
监听端口 |
-r |
15 |
帧率(fps) |
-q |
5 |
JPEG 质量(2–31,越小越清晰) |
# 自定义示例./znscreen -h 127.0.0.1 -p 8080 -r 30 -q 3
平台支持
| 平台 | 内置 ffmpeg | 二进制大小 | 说明 |
|---|---|---|---|
| Linux amd64 | ✅ | ~143MB | X11 屏幕捕获 |
| Linux arm64 | ✅ | ~107MB | X11 屏幕捕获 |
| macOS amd64 | ❌ | ~5MB | 需 brew install ffmpeg |
| macOS arm64 | ❌ | ~5MB | 需 brew install ffmpeg |
| Windows amd64 | ✅ | ~142MB | GDI 屏幕捕获 |
下载地址:
关注本公众号,回复 znscreen 即可下载
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论