• Available on Windows
  • macOS & Linux in progress
  • Open source

VeloFrame

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.

First screenshot after start
20 ms
first screenshot after start (was 287 ms)
Clip buffer memory
12.7 MB
RAM for the clip buffer (up to 19.6 MB)
CPU while recording
0.4 %
CPU while recording at 1080p60
Saving a clip
75 ms
to save a 31-second clip as MP4

What VeloFrame does

An engine, not an app

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.

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

Clip buffer

Keeps the last seconds ready as video at all times and saves them as MP4 on request, without re-encoding.

  • Performance: 5–60 s, HEVC where possible, GPU priority behind the game
  • Long: 5–300 s, H.264, plays everywhere
  • Hardware encoders: NVENC, AMF or QuickSync

Embedding

Two ways into your app: as a Rust library, or as a separate process speaking JSON lines over stdin and stdout.

  • Works with Electron, Node, Python, C# and more
  • If the engine crashes, the host app keeps running
  • Every answer includes the time per step

Under the hood

The CPU never touches a pixel

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 %.

  1. Desktop Duplication

    Frame as a GPU texture, only when something changed

  2. GPU video processor

    BGRA → NV12, BT.709, scaling

  3. Queue

    up to 4 frames, so a short stall never costs a frame

  4. Hardware encoder

    NVENC, AMF or QuickSync via Media Foundation

  5. Replay buffer

    fixed ring, always a keyframe at the front

  6. Save as MP4

    index at the front, packets unchanged, no re-encoding

Measured, not estimated

Benchmarks

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.

Clip buffer

Performance (30 s)Long (60 s)
RAM, clip buffer only12.7–19.6 MB12.7–19.6 MB
RAM with screenshot engine36 MB–
CPU (total)0.4–0.6 %0.5 %
GPU 3D engine2–4 %–
Dropped frames under load0.4–1.6 %2.4 %
Saving75–138 ms465 ms (65 MB)

Screenshot encoders (1080p game scene)

previous (1 core)VeloFrame
PNG25.8 ms11.6 ms · 2.2× faster
JPEG42.9 ms15.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 and Medal

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.

Memory while recording

Clip buffer running, range from–to

Metric VeloFrame measured Medal per manufacturer*
RAM while recording12.7–19.6 MB100–400 MB
RAM with screenshot engine36 MBnot stated
CPU while recording0.4–0.6 %no figure, encodes on the GPU
GPU (3D engine)2–4 %not stated
Dropped frames under load0.4–1.6 %“does not drop your frames”, no figure
Saving a clip (31 s)75–138 ms, no re-encodingnot 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)
Buffertemporary file, Windows can hand the memory back to the game at any timefixed amount in memory
Hardware encodersNVENC, AMF, QuickSyncNVENC, AMF, QuickSync
CPU when idle0.00 %, no pollingnot 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

Windows today, macOS and Linux soon

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.

Windows

Available

Screenshots and the clip buffer work. Next up: Windows Graphics Capture for single windows, and HDR screenshots.

  • Desktop Duplication
  • Media Foundation
  • D3D11

macOS

In progress

The Mac version is still being worked on. It builds on Apple's own APIs for screen capture and hardware encoding.

  • ScreenCaptureKit
  • VideoToolbox

Linux

In progress

The Linux version is still being worked on. Planned: Wayland via PipeWire and the desktop portal, plus X11.

  • PipeWire
  • xdg-desktop-portal
  • X11
  • VAAPI

Note: The Mac and Linux versions are still being worked on. Until then, VeloFrame runs on Windows 10 and 11 only.

Open source

Open for everyone, licensed for business

VeloFrame is open source. The complete source code is on GitHub, so anyone can look inside, re-run the benchmarks and contribute.

Open-source projects

Free to use

Is your app open source itself? Then you can simply build VeloFrame in.

View the repository

Business & closed source

License from LiGLP Studios

Business use, or use in apps that are not open source, requires a license issued by LiGLP Studios.

Request a license

For developers

One line in, one line out

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}}