Screenshots
Whole screen or the active window, as PNG or JPEG, optionally straight to the clipboard.
- Custom PNG and JPEG encoders on all CPU cores
- Capture is pre-warmed: even the first screenshot is instant
- Multiple monitors, even on different GPUs
The capture engine for screenshots and clips. Fast enough that the game doesn't notice, and so lean you have to search for it in Task Manager.
Written specifically for ClipHub. VeloFrame has no user interface of its own: it lives inside the app and does the actual work there, capturing, encoding and saving.
What VeloFrame does
The host application decides when to capture: hotkey, button or automation. It sends VeloFrame a finished request and gets the result back, measurements included. Hotkeys, settings and design stay entirely with the host.
Whole screen or the active window, as PNG or JPEG, optionally straight to the clipboard.
Keeps the last seconds ready as video at all times and saves them as MP4 on request, without re-encoding.
Two ways into your app: as a Rust library, or as a separate process speaking JSON lines over stdin and stdout.
Under the hood
At 60 fps every frame has 16.7 ms. VeloFrame keeps all the work on the GPU. The clock thread is registered with Windows as a capture task (MMCSS) and is woken on time even under load.
Short stalls, for example when the GPU is busy with the game, are absorbed by a queue in front of the encoder. Dropped frames under load went from 8–11 % down to 0.4–1.6 %.
Frame as a GPU texture, only when something changed
BGRA → NV12, BT.709, scaling
up to 4 frames, so a short stall never costs a frame
NVENC, AMF or QuickSync via Media Foundation
fixed ring, always a keyframe at the front
index at the front, packets unchanged, no re-encoding
Measured, not estimated
Release build on an Intel Core i5-6400 with an RTX 3050 on Windows 10, 1920×1080 at 60 fps. Other programs were already using 60–70 % of the CPU, so the values vary a little and are on the conservative side.
| Performance (30 s) | Long (60 s) | |
|---|---|---|
| RAM, clip buffer only | 12.7–19.6 MB | 12.7–19.6 MB |
| RAM with screenshot engine | 36 MB | – |
| CPU (total) | 0.4–0.6 % | 0.5 % |
| GPU 3D engine | 2–4 % | – |
| Dropped frames under load | 0.4–1.6 % | 2.4 % |
| Saving | 75–138 ms | 465 ms (65 MB) |
| previous (1 core) | VeloFrame | |
|---|---|---|
| PNG | 25.8 ms | 11.6 ms · 2.2× faster |
| JPEG | 42.9 ms | 15.7 ms · 2.7× faster |
| Capture itself | – | 4–6 ms |
| RAM when idle | – | 23.5 MB |
| CPU when idle | – | 0.00 % |
Best of 25 runs. The encoder threads run at lower priority: when the game needs the CPU, the screenshot takes slightly longer instead of costing the game frames.
Performance comparison
VeloFrame is an engine, not a finished app. So we only compare what matters while recording: memory, load and speed. Features like sharing or an editor belong to the host app with VeloFrame.
Clip buffer running, range from–to
| Metric | VeloFrame measured | Medal per manufacturer* |
|---|---|---|
| RAM while recording | 12.7–19.6 MB | 100–400 MB |
| RAM with screenshot engine | 36 MB | not stated |
| CPU while recording | 0.4–0.6 % | no figure, encodes on the GPU |
| GPU (3D engine) | 2–4 % | not stated |
| Dropped frames under load | 0.4–1.6 % | “does not drop your frames”, no figure |
| Saving a clip (31 s) | 75–138 ms, no re-encoding | not stated |
| Bitrate 1080p (file size) | avg. 6.2 Mbit/s (HEVC, follows the content) | recommended 10–15 Mbit/s (H.265), 15–20 Mbit/s (H.264) |
| Buffer | temporary file, Windows can hand the memory back to the game at any time | fixed amount in memory |
| Hardware encoders | NVENC, AMF, QuickSync | NVENC, AMF, QuickSync |
| CPU when idle | 0.00 %, no polling | not stated |
VeloFrame: measured at 1920×1080, 60 fps on a Core i5-6400 and RTX 3050, with the CPU already 60–70 % busy with other programs. * Medal: manufacturer figures from medal.tv and Medal support, as of November 2026, not measured by us. Medal is a complete app with a user interface, so the values are only partly comparable. Medal is a trademark of its owner; VeloFrame is not affiliated with Medal.
Platforms
The pipeline lives platform-independently in the core. Each platform only implements two interfaces: the screen source and the desktop (foreground window, mouse cursor, clipboard). That keeps porting manageable.
Screenshots and the clip buffer work. Next up: Windows Graphics Capture for single windows, and HDR screenshots.
The Mac version is still being worked on. It builds on Apple's own APIs for screen capture and hardware encoding.
The Linux version is still being worked on. Planned: Wayland via PipeWire and the desktop portal, plus X11.
Note: The Mac and Linux versions are still being worked on. Until then, VeloFrame runs on Windows 10 and 11 only.
Open source
VeloFrame is open source. The complete source code is on GitHub, so anyone can look inside, re-run the benchmarks and contribute.
Free to use
Is your app open source itself? Then you can simply build VeloFrame in.
View the repositoryLicense from LiGLP Studios
Business use, or use in apps that are not open source, requires a license issued by LiGLP Studios.
Request a licenseFor developers
Start veloframe.exe and send one JSON message per line. The answer comes back with path, size and the time for every step.
→ {"id":1,"cmd":"screenshot","args":{
"format":"png","area":"screen",
"folder":"C:\\Pictures"}}
← {"id":1,"ok":true,"result":{
"width":1920,"height":1080,
"captureMs":4.0,"encodeMs":25.0,
"totalMs":29.0,"warm":true}}