跳到正文

michaelshimeles

glide

Open-source Screen Studio, built in Rust

README 已保存到本站,可直接阅读

Documentation snapshot

README 快照

这篇是英文原文

下面正文是项目自己的英文 README。想读全文就用浏览器自带的整页翻译: Chrome / Edge 点地址栏右侧的翻译图标,或用右键菜单里的「翻译成中文」; 手机浏览器一般在菜单里。

本页保存的是公开项目资料快照,阅读过程不需要连接 GitHub。

Glide

An open-source Screen Studio, built in Rust.

A fast, fully open-source, native Rust screen recorder for polished product videos on macOS. Record your screen, a window, an area or an iPhone; Glide re-renders the cursor, zooms into what you click with spring animations, adds a background, shadow and rounded corners, and exports MP4 or GIF with the hardware encoder — usually several times faster than real time.

Behaviour was reverse engineered from Screen Studio using REA and Claude Code (see analysis/SCREEN_STUDIO.md). Glide is not affiliated with or endorsed by Screen Studio or its authors and contains none of its code or assets: wallpapers, cursors, device frames, click sounds and the app icon are generated by Glide’s own code.

图片:Editor

Features

  • Recording: display, window (picked on screen; follows the window), drag-selected area, USB iPhone/iPad; system audio and microphone on separate tracks; camera; countdown, pause/resume, restart, cancel from a floating pill-shaped control bar that stays out of the recording; hide desktop icons and the Dock; resize the window you record to a preset or custom size; configurable global shortcuts (default ⌥⇧⌘R); menu bar recorder.
  • Automatic zoom from clicks with cluster targeting and edge snapping, spring physics and motion blur; manual and follow-mouse zooms.
  • Cursor re-rendered at high resolution with smoothing, tilt, press feedback, idle hiding, click circles/ripples and optional click sounds.
  • Styling: generated wallpapers, gradients, colours, your own image or current desktop picture, background blur; padding, roundness, shadow, inset, crop, aspect ratios; laptop/phone/tablet device frames; style presets. Every change shows on the canvas immediately and in the export.
  • One window: Glide opens on recording setup in the editor’s own layout (a live preview of the selected display, window or area under a big Record button; source and audio options in the inspector); a recording opens straight into the editor when you stop; recent recordings are a popover off the window title.
  • Editor: live GPU preview, timeline with clips, zooms, masks and camera layouts; split, trim, speed, typing speed-up; blur/pixelate/highlight masks with “data may be visible” warnings when the covered content moves (one click cuts that part); camera bubble and layouts; keyboard-shortcut overlay; on-device captions with Whisper (base/small/medium) or Apple Speech, editable; voice-over with ducking; on-device ML voice isolation (“Enhance voice”); background music; style presets; undo/redo.
  • Export: MP4 (H.264/HEVC via VideoToolbox, zero-copy GPU → encoder), GIF with delta frames; 720p to 4K, 10–60 fps; quality presets with size estimates or “fit to file size”; “Export & copy” to the clipboard.

图片:Recording setup with a live preview 图片:Device frame, light mode

Screenshots use Glide’s synthetic demo recordings (glide synth).

See PERFORMANCE.md for measured recording overhead and export speed, and PROGRESS.md for the full parity table and verification notes.

Build

Requires macOS 15+, Rust (2024 edition), Xcode and CMake (brew install cmake, used to build whisper.cpp for captions). The scripts set SDKROOT to Xcode’s SDK; for a plain cargo build, do the same if CMake’s compiler check fails with “tapi error: malformed file”: export SDKROOT="$(xcode-select -p)/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk".

scripts/build.sh          # release build → dist/Glide.app (signed), dist/glide
open dist/Glide.app

Build output goes to ~/.cache/cargo-target/screenstudio-rs (override with CARGO_TARGET_DIR), never into the repository.

Command line

dist/glide                          # open the app
dist/glide record -t 10             # record the main display for 10 s
dist/glide record --area 200,150,1280,720 --mic
dist/glide export "~/Movies/Glide/Recording.glide" --height 1080
dist/glide export Project.glide --format gif
dist/glide devices                  # displays, windows, cameras, mics, iPhones
dist/glide check-masks Project.glide # where content under masks moves
dist/glide check-background Project.glide # every background option visibly changes a frame
dist/glide audio-check Project.glide --freq 880 # levels, and how much is a test tone
dist/glide transcribe Project.glide --engine whisper-small  # captions
dist/glide resize-window 1234 1920x1080 # window id from `glide devices`
dist/glide permissions --request
dist/glide synth demo.glide         # synthetic project (no permissions needed)
scripts/selftest.sh --screen        # end-to-end checks (plays a quiet test tone)
scripts/selftest.sh --audio         # just the audio round trip
scripts/bench.sh                    # performance measurements

Layout

  • src/engine — pure, tested model of every frame: springs, deterministic animator, time mapping, sizes, zoom, cursor, camera, captions, masks, device frames, typing detection.
  • src/render — wgpu (Metal) compositor: one uber-shader with modes for backgrounds, shadows, the rounded window, blur, masks and device frames.
  • src/capture, src/recorder — ScreenCaptureKit/AVFoundation capture and input logging into a .glide package.
  • src/media, src/export — AVAssetReader decode, AVAssetWriter/VideoToolbox encode, audio mix, GIF.
  • src/app — the egui app (Inter font): one editor-first window (recording setup when nothing is open, recent recordings off the title), recording widget, area picker, menu bar.

Credits

  • Capture pipeline, app chrome, menu bar and hotkey code build on rec-rs by Michael Shimeles (MIT OR Apache-2.0).
  • Captions use whisper.cpp (MIT) through whisper-rs; Whisper models (MIT) are downloaded on first use.
  • Behaviour analysis made with REA.
  • Inter typeface by Rasmus Andersson (SIL Open Font License, assets/fonts/OFL.txt).

License: MIT OR Apache-2.0.

Official distribution

获取与安装

暂未发现可确认的官方软件包地址

当前 README 快照没有出现 npm、PyPI、Crates.io、pub.dev 等官方包页链接。本站不会根据仓库名称猜测下载地址。

本站不托管项目文件;需要安装时,请以项目维护者发布的官方文档为准。

使用前核验

本站保存公开资料用于阅读,不代表安全审计或功能背书。安装前请核对许可证、依赖来源和发布签名,不要直接运行来源不明的二进制文件或高权限脚本。