跳到主要内容

在 Windows、macOS 和 Linux 上安装 OpenScreen

在 Windows 上,推荐通过 Microsoft Store 安装。其他平台请从下载页面或直接从 GitHub Releases 下载适合你平台的最新安装程序。

系统要求​

最低配置推荐配置
WindowsWindows 10 版本 1903(内部版本 18362)或更高,x64(或使用独立 .exe 时为 ARM64),Intel 第 8 代 / AMD Ryzen 2000 系列或更新。原生采集需要 Windows 10 版本 2004(内部版本 19041)或更高;更早的内部版本通过浏览器采集回退方案录制Windows 11,Intel 第 12 代 / AMD Ryzen 4000 系列或更新
macOSmacOS 13(Ventura):ScreenCaptureKit 采集所需。录制麦克风需要 macOS 15 或更高macOS 15.2 或更高
Linuxx64。需要 xdg-desktop-portal 和 PipeWire,录制离不开它们:原生采集辅助程序经由它们工作,这一环节出现故障时会作为错误报告出来。只有当某个构建缺少辅助程序本身时,浏览器采集回退方案才会接手。录制系统音频还需要以 PipeWire 作为声音服务器(Ubuntu 22.10+ 和 Fedora 34+ 的默认设置)。在 Wayland 上记录鼠标点击,需要你的用户能读取鼠标的 evdev 设备,详见 Wayland 上的鼠标点击同左,并保持更新
内存8 GB16 GB
Windows 上的旧款集成显卡

集成显卡早于约第 8 代 Intel(或同级别的 AMD Ryzen 2000 系列)的电脑并不会被禁止安装,但其中一些存在已知的驱动稳定性问题,可能导致录制无法停止和保存,详见 #460。如果遇到这种情况,请在失败后立即(在开始下一次录制之前)打开托盘图标或帮助 → 保存诊断信息,并把生成的文件附到错误报告中。

macOS​

从 Releases 下载 .dmg 安装程序,把 OpenScreen 拖到“应用程序”文件夹中。从 1.9.0 起的版本都使用 Developer ID 证书签名,并经过 Apple 公证,因此 Gatekeeper 不会拦截,也不需要在终端中执行任何步骤。

首次打开时,OpenScreen 会显示一个权限窗口,列出它用到的所有权限,每项都有一个用于授予的按钮。之后随时可以从菜单栏中的 OpenScreen 图标选择权限…,重新打开这个窗口。macOS 会要求哪些权限,取决于它的版本:

  • macOS 15.2 及更高版本: 你在 Apple 的系统选择器中选择要录制的屏幕或窗口,这一选择本身就是你的同意,因此不需要屏幕录制权限。系统音频需要它自己的、范围更小的权限:仅系统录音。
  • macOS 13 到 15.1: OpenScreen 使用自己的来源选择器,需要屏幕录制权限,这项权限也涵盖系统音频。在 macOS 15.0 和 15.1 上,macOS 还会不时询问是否允许 OpenScreen 不通过系统选择器直接访问屏幕:请允许。

默认的可编辑光标需要辅助功能权限,才能记录光标形状和点击:在该模式下,如果没有这项权限就按下录制,会打开权限窗口;授予权限后再次按下录制,录制就会开始。

从 1.9.0 之前的版本升级?

那些版本没有使用 Developer ID 证书签名,而 macOS 会把“屏幕录制”和“辅助功能”授权与应用的签名绑定在一起,因此它无法识别新版本和旧版本是同一个应用,你授予旧版本的权限也不会延续过来。如果授予权限后新版本仍然无法录制,请在“系统设置”中把 OpenScreen 从这两项权限的列表里移除,然后重新启动它,并重新授予权限。

Windows​

推荐:Microsoft Store。从 Microsoft Store 获取 OpenScreen,或在终端中安装同一个安装包:

winget install --source msstore OpenScreen

Microsoft 会在认证过程中为 Store 安装包签名,因此安装时不会出现安全警告,而且 Store 会自动保持它为最新版本。

替代方案:独立安装程序。如果你无法使用 Store(Windows LTSC、受管控的工作电脑、离线安装,或需要某个特定的旧版本),可以从 Releases 下载并运行 .exe(x64 或 ARM64;Store 安装包为 x64)。

.exe 的 SmartScreen 警告

.exe 没有代码签名,因此 Windows SmartScreen 会显示 Windows 已保护你的电脑,并提示发布者未知。选择更多信息 → 仍要运行即可继续。请只从 Releases 页面下载 .exe;如果你需要已签名的安装包,请使用 Store 版。

Linux​

每个版本都会发布四个 x64 软件包,请选择与你的发行版对应的那个。在 aarch64 上,请使用下文的 Nix flake,它会从源代码构建。

Debian / Ubuntu / Pop!_OS

sudo apt install ./Openscreen-Linux-*.deb

Fedora / RHEL / CentOS

sudo dnf install ./Openscreen-Linux-*.rpm

Arch / Manjaro

sudo pacman -U Openscreen-Linux-*.pacman

任意发行版(AppImage)

chmod +x Openscreen-Linux-*.AppImage
./Openscreen-Linux-*.AppImage

如果 AppImage 因沙盒错误而无法启动:

./Openscreen-Linux-*.AppImage --no-sandbox

NixOS / Nix(flake)

免安装试用:

nix run github:getopenscreen/openscreen

安装到你的用户配置文件:

nix profile install github:getopenscreen/openscreen

作为 NixOS 系统模块:

{
inputs.openscreen.url = "github:getopenscreen/openscreen";

outputs = { nixpkgs, openscreen, ... }: {
nixosConfigurations.<host> = nixpkgs.lib.nixosSystem {
modules = [
openscreen.nixosModules.default
{ programs.openscreen.enable = true; }
];
};
};
}

Home Manager 用户可以使用 openscreen.homeManagerModules.default,配合同样的 programs.openscreen.enable = true;。

根据你的桌面环境,你可能需要授予屏幕录制权限。

Wayland 上的鼠标点击​

Wayland 没有提供输入事件的门户,因此 OpenScreen 改为直接从内核的 evdev 接口(/dev/input/event*)读取左键按下事件。这些设备节点默认仅限 root:input 访问,所以只有当你的用户拥有它们的读取权限时,录制才能把点击和普通的光标移动区分开。

没有这项权限也不会出问题:录制的效果和以前完全一样,只是每个光标采样都会记录为移动。

读取范围被刻意限定得很窄:点击采集只使用鼠标左键按下事件(BTN_LEFT),其他事件一律忽略,因此绝不会记录键盘按键。如果即使有权限也要完全关闭这个读取功能,请在启动 OpenScreen 的环境中设置 OPENSCREEN_DISABLE_CLICK_CAPTURE=1。

在由 systemd-logind 管理本地桌面座席(seat)的系统上,更安全的做法是只把该座席的访问权限(TAG+="uaccess")授予指针设备(鼠标和触控板),并明确排除键盘。这需要 udev 支持 uaccess,这样只有当前登录且处于活动状态的座席用户才能访问,也不会暴露你的键盘:

  1. 在 /etc/udev/rules.d/70-openscreen-mouse.rules 创建 udev 规则文件(70- 前缀很重要,它让规则在 systemd 的座席规则之前运行):
sudo tee /etc/udev/rules.d/70-openscreen-mouse.rules << 'EOF'
KERNEL=="event*", SUBSYSTEM=="input", ENV{ID_INPUT_MOUSE}=="1", ENV{ID_INPUT_KEYBOARD}!="1", TAG+="uaccess"
KERNEL=="event*", SUBSYSTEM=="input", ENV{ID_INPUT_TOUCHPAD}=="1", ENV{ID_INPUT_KEYBOARD}!="1", TAG+="uaccess"
EOF
  1. 重新加载并应用规则:
sudo udevadm control --reload-rules && sudo udevadm trigger --subsystem-match=input

可以用以下命令确认你的用户能访问鼠标的 evdev 节点(例如 user:<你的用户名>:rw-):

getfacl /dev/input/event*

替代方案:input 组​

你也可以把用户加入 input 组:

sudo usermod -aG input $USER

注销并重新登录后,新的组才会生效。

安全注意事项

把用户加入 input 组后,以你的账户运行的所有程序都能读取系统上的所有输入设备,包括键盘,也就是说其中任何一个程序都能记录你的键盘输入。建议改用上面的 udev 规则。

触控板:只有物理点击(把触控板按下去直到它下沉)才会被记录。轻触点击不会被记录,因为轻触是由合成器的输入栈(libinput)自行合成、供自己使用的,从不会写回 OpenScreen 读取的内核设备,所以在 evdev 这一层根本看不到。使用鼠标,或关闭轻触点击的触控板,每次点击都会被记录。

平台差异​

编辑工具在所有平台上都一样:缩放、背景、裁剪/剪辑/变速、标注、转录、字幕和项目。所有导出格式在每个平台上都可用;不同的是采集,以及 Linux 上的 MP4 导出可以使用哪种编码器:

macOSWindowsLinux
采集管线原生(ScreenCaptureKit)内部版本 19041 及更高为原生(Windows Graphics Capture);更早的内部版本或缺少辅助程序时回退到浏览器采集原生(经由 ScreenCast 门户的 PipeWire);缺少辅助程序时回退到浏览器采集,并失去硬件编码和光标遥测
自定义光标 / 点击效果✅:点击和光标形状需要“辅助功能”权限✅✅ Wayland 上可用:点击采集需要鼠标 evdev 设备的访问权限(详情)
摄像头浏览器采集,保存为单独的文件(仍可用作画中画)原生采集,保存为单独的文件浏览器采集,保存为单独的文件(仍可用作画中画)
系统音频开箱即用;macOS 15.2+ 会弹出它自己的权限提示,更早的版本由“屏幕录制”权限涵盖开箱即用需要以 PipeWire 作为声音服务器(Ubuntu 22.10+、Fedora 34+ 的默认设置)
MP4 导出✅✅✅:GPU 栈条件允许时,通过 VAAPI 在 GPU 上进行 H.264 编码(见下方说明),否则使用软件编码
GIF 导出✅✅✅
本机转录Metal(Apple Silicon)/ CPUVulkan / CPUVulkan / CPU
Linux 上的 MP4 导出

实时预览和 MP4 导出背后的 GPU 合成器有三个后端:Windows 上是 Direct3D 11,macOS 上是 Metal,Linux 上是 wgpu/WGSL,三个平台的构建都包含它。在 Linux 上,如果 GPU 驱动提供 VAAPI,并且 Vulkan 设备能以 dmabuf 形式交出帧(VK_KHR_external_memory_fd 和 VK_EXT_external_memory_dma_buf),H.264 导出会把每个合成好的帧直接交给 h264_vaapi,无需经过 CPU 拷贝。只要缺少其中任何一项(没有渲染节点、驱动不支持 VAAPI、Vulkan 设备不支持这些扩展),导出就会回退到软件编码器,只是耗时更长,其他一切不变。

OpenScreen 在各个系统上能做什么,以及什么情况下其他工具更合适,汇总在 Windows、Mac 和 Linux 页面中。

下一步:快速上手会带你完成第一次录制。