GitHub 25k Star!这款开源录屏工具,免费无水印可商用,彻底告别付费

0 阅读6分钟

最近在学习视频的录制,但是录制的工具始终是一个头疼的问题。

试过几款免费软件,导出的视频不是糊成一团,就是画面挂着一个大水印。

想用 Screen Studio,功能确实好,但29美刀/月的订阅费对于一个还在学习阶段的人来说,实在下不去手。

直到在 GitHub 上刷到了这个项目 OpenScreen,基于 Electron + React + TypeScript 实现,最新版支持中英文切换。

目前 25k Star,三天前还在更新。

它打的口号正中我的痛点:免费、高清、无水印、可商用,做 Screen Studio 的开源替代品。

Windows 直接上手

01、下载与安装

打开 OpenScreen 的 GitHub 仓库(搜 openscreen),打开后可以看到右边有官网地址可以进入,下载,双击运行,一路下一步,30 秒装完。

02、录制前的设置

启动软件,可以看到一个小悬浮框。你需要做三个选择:选择屏幕、是否打开系统音频、麦克风,然后点击开始录制就可以了。

03、进入编辑界面(核心功能区)

停止录制后,自动跳转到编辑界面。界面分三个区域:

中间上方:实时预览窗口
底部:时间轴,视频被切成一条
右侧:属性编辑面板

04、四大核心编辑功能

① 裁剪片段

想剪掉某一段?先在时间轴上定位,然后用分割工具切开再删。

② 自动/手动缩放(灵魂功能)

缩放功能让观众的视线始终跟着你的操作走。

用法很简单:

1:在时间轴上点一下你想放大的位置。 2:点旁边的 「+」 按钮,选择 Z3:预览窗口出现白色框,拖动它框选要放大的区域 。 4:右侧面板调整缩放的倍数

你可以加多个缩放点,画面会平滑地从一个焦点移动到下一个焦点。看下我的效果,我是直接导出的gif。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

③ 更换背景

录制时如果桌面比较乱,或者不想让观众看到桌面壁纸,可以一键换背景。

选中时间轴上的视频条,在右侧属性面板找到 「Background」

选项效果
Wallpaper内置抽象壁纸
Solid纯色背景
Gradient渐变色
Custom上传自己的图片

选好之后背景立刻替换,主体内容保持清晰。

④ 添加标注

需要在视频里加文字说明、指向箭头或 Logo 时,用标注功能。

可添加三种元素:

Text:输入任意文字,调整字号颜色
Arrow:画一个箭头,指向你想强调的按钮或区域
Image:插入图片(比如公司 Logo)

每个标注都可以设置出现时长和位置。

⑤ 其他实用功能

还有其它变速、运动模糊,视频的导出功能16:9(横屏)、1:1,你可以自己亲身体验一下。

技术实现深度解析

01、技术栈一览

根据项目代码和依赖配置,OpenScreen 的技术选型如下:

层级技术占比/说明
桌面框架Electron跨平台桌面应用
前端框架React + TypeScript界面与逻辑
构建工具Vite快速开发构建
渲染引擎PixiJS高性能 2D 渲染
时间轴组件dnd-timeline拖拽式时间轴
样式Tailwind CSS原子化 CSS
代码规范Biome格式化 + Lint

02、屏幕录制是怎么实现的?

核心录屏功能依赖 Electron 的 desktopCapturer API:

用户点击录制
    ↓
调用 desktopCapturer.getSources()
    ↓
获取可录制的窗口和屏幕列表
    ↓
用户选择后,用 navigator.mediaDevices.getUserMedia() 获取视频流
    ↓
用 MediaRecorder API 把流录下来,存成 WebM 格式

音频部分

  • 系统音频:走 desktopCaptureraudio: 'loopback' 参数
  • 麦克风:走单独的音频流
  • 最后两条流合并

说明:Windows 上系统音频之所以“开箱即用”,是因为 Electron 在 Windows 上直接调用了底层的 Windows Audio Session API,不需要额外配置虚拟声卡。

03、缩放和平滑动画怎么做的?

这是 OpenScreen 最核心的编辑功能。

实现思路

第一步:录制时保存原始视频
第二步:用户在时间轴上添加“缩放关键帧”,记录时间位置、缩放区域坐标、放大倍率、持续时间
第三步:渲染时用 PixiJS 实时计算每一帧的变换矩阵
第四步:两个缩放点之间用缓动函数插值,产生平滑过渡

为什么用 PixiJS?

PixiJS 基于 WebGL,处理实时视频纹理变换时性能更好,缩放动画才能保持 60fps 流畅。Canvas 2D 做不了这个复杂度。

运动模糊也是 PixiJS 的能力,在快速平移时对画面施加方向性模糊滤镜,视觉上更接近专业剪辑软件的效果。

04、时间轴的拖拽编辑

编辑界面底部的时间轴,支持拖拽调整片段位置、拉伸裁剪、添加关键帧,这些交互用的是 dnd-timeline 这个库。

它是一个专门为 React 设计的可拖拽时间轴组件,支持:

  • 时间轴缩放(Zoom In/Out 时间精度)
  • 拖拽移动片段
  • 拖拽边缘裁剪
  • 在时间轴上任意位置添加标记点

OpenScreen 把缩放点、标注点都抽象成了时间轴上的“标记”,统一用 dnd-timeline 管理。

05、导出视频的流程

导出时的渲染不是实时播放,而是离屏渲染

根据时间轴数据
    ↓
逐帧计算画面(应用缩放、背景、标注等)
    ↓
每一帧用 PixiJS 渲染到 Canvas
    ↓
用 Canvas.captureStream() 把 Canvas 内容编码成视频
    ↓
最终输出 MP4

注意:这个过程比较耗 CPU,所以导出进度条走的时间通常比视频时长要长,这是正常的。

优缺点总结

优点

优点说明
完全免费无水印、可商用,个人和商业用户都没有门槛
Windows 体验完美系统音频、安装流程都无需折腾
核心功能扎实自动缩放、背景替换、标注都流畅可用
技术栈现代代码可读性好,适合二次开发

注意事项

注意事项说明
Beta 版本作者坦言可能有 bug,但日常轻度使用基本稳定
功能深度有限没有高级光标效果、点击涟漪、3D 倾斜等

获取方式

GitHub 地址:

https://github.com/siddharthvaddem/openscreen

作者在 README 里写了一句话让我印象很深:

"I'm new to open source, idk what I'm doing lol. If something is wrong please raise an issue."

一个自称“不知道自己在干嘛”的开源新人,居然做出了一款 25k Star、功能扎实、文档齐全的工具,简直太牛了。

如果觉得文章还不错,请给我点个喜欢吧!