Screen Recorder Export Benchmark ReproducibleOpen data

Which screen recorder exports fastest?

Same clip, same edit, same machine. We time each app's export, then divide by what plain ffmpeg needs on that machine — so 1.35× means 35% longer than a raw re-encode, on any hardware.

33Submissions
71Runs
5Tools timed
12Builds
4Machines
3Platforms
Data as of 2026-10-04 · every export re-checked in pixels and audio before it counts

01 — Ranking

Ratio to ffmpeg
Platform
GPU

All 71 runs — 5 tools across 12 builds, 4 machines, 3 platforms. Every machine combined.

↓ Lower is better — a shorter bar is a faster export

ffmpeg 1.00×9×7×5×3×
01

openscreen

2.0.0
1.35×
02

screen-studio

4.0.1-4897
2.00×
03

focusee

2.4.1 (macOS) · 2.3.5 (Windows)
4.27×
04

cap

0.6.0
4.79×
05

recordly

1.4.0 (macOS, Windows) · 1.3.3 (Linux)
7.95×

Bars start where ffmpeg finishes: their length is what the tool spends on top of a raw re-encode. The figure beside each is the full ratio, floor included.

Read the ratio, not the seconds. 2× means the export took twice as long as ffmpeg did on that machine — not twice as fast.

ffmpeg is the 1×. It re-encodes the clip and composites nothing, so a tool that paints a wallpaper, rounds the corners and animates a zoom sits above it.

No tool is the reference. Every export is divided by an ffmpeg transcode on its own machine, so no submission has to contain any particular tool.

Cross-check: where a build was measured on more than one machine, its cost moves by 239.35% at the median — widest: focusee, 1.15× on Ryzen 7 5800X and 10.73× on Ryzen 5 7520U.

5 older builds not shown: each row is the newest build measured, and the ones it replaced keep their own figures. Every build measured →

02 — Spread across machines

macOSLinuxWindows

One dot per run, placed at its ratio; colour is the platform. Hover a dot for the machine and the seconds.

1× = ffmpeg itself
focusee
openscreen
cap
screen-studio
recordly
1×2×3×4×5×6×7×8×9×10×11×12×13×14×15×16×17×

Export time ÷ the same machine's ffmpeg transcode. 2× means twice as long, not twice as fast.

03 — Every run

71 runs

Every run, with the machine that produced it. Cost compares across rows; seconds and frame rate don't — they describe one machine.

ToolMachineOSCost sw/hw floor Export sfpsCPU·s CoresRSS MiBBg load FidelityDriven
openscreen 2.0.0 Apple M1 · 16 GB darwin 1.074× 1.34× 20.19 ±0.04 178.3 30.39 1.51 858 162% full cli
screen-studio 4.0.1-4897 Apple M1 · 16 GB darwin 1.937× 1.33× 36.19 ±0.07 99.5 56.16 1.55 1990 78% full cdp+menu
focusee 2.4.1 Apple M1 · 8 GB darwin 0.932× 1.35× 16.95 ±0.01 212.4 35.36 2.09 439 112% full ax+project
openscreen 1.11.0-rc.1 Apple M1 · 8 GB darwin 1.037× — 18.91 ±0.01 190.3 27.49 1.45 785 14% full cli
openscreen 1.11.0-rc.1 Apple M1 · 8 GB darwin 1.037× 1.25× 18.90 ±0.03 190.5 27.81 1.47 785 49% full cli
openscreen 1.11.0-rc.1 Apple M1 · 8 GB darwin 1.038× — 18.90 ±0.01 190.5 27.71 1.47 786 50% full cli
openscreen 1.11.0-rc.1 Apple M1 · 8 GB darwin 1.039× 1.30× 18.91 ±0.01 190.4 28.30 1.50 739 96% full cli
openscreen 1.11.0-rc.1 Apple M1 · 8 GB darwin 1.043× — 19.03 ±0.03 189.2 27.56 1.45 784 62% full cli
openscreen 2.0.0 Apple M1 · 8 GB darwin 1.065× — 19.41 ±0.01 185.4 27.07 1.39 809 12% full cli
openscreen 2.0.0-rc.12 Apple M1 · 8 GB darwin 1.111× — 20.20 ±0.05 178.2 28.69 1.42 854 37% full cli
openscreen 1.10.0 Apple M1 · 8 GB darwin 2.023× — 36.80 ±0.01 97.8 8.54 0.23 719 81% full cli
screen-studio 4.0.1-4897 Apple M1 · 8 GB darwin 2.045× — 37.45 ±0.06 96.1 56.78 1.52 1075 54% full cdp+menu
screen-studio 4.0.1-4897 Apple M1 · 8 GB darwin 2.066× — 37.82 ±0.07 95.2 56.37 1.49 1260 63% full cdp+menu
screen-studio 3.7.5-4595 Apple M1 · 8 GB darwin 4.681× 1.23× 85.73 42.0 219.99 2.57 1450 76% full cdp+menu
cap 0.6.0 Apple M1 · 8 GB darwin 1.186× 1.21× 21.60 ±0.03 166.7 15.29 0.71 1023 35% full cli
cap 0.6.0 Apple M1 · 8 GB darwin 1.192× — 21.69 ±0.04 166.0 15.35 0.71 946 27% full cli
cap 0.5.9 Apple M1 · 8 GB darwin 1.210× — 22.01 ±0.03 163.6 24.39 1.11 1485 58% full cli
cap 0.5.9 Apple M1 · 8 GB darwin 1.224× — 22.30 ±0.18 161.4 24.58 1.10 1487 31% full cli
cap 0.5.9 Apple M1 · 8 GB darwin 1.236× — 22.52 ±0.02 159.9 24.69 1.10 1552 41% full cli
cap 0.5.9 Apple M1 · 8 GB darwin 1.255× — 22.88 ±0.01 157.3 26.10 1.14 1588 51% full cli
recordly 1.3.3 Apple M1 · 8 GB darwin 2.626× — 47.74 ±0.01 75.4 90.61 1.90 1232 93% full cdp
recordly 1.4.0 Apple M1 · 8 GB darwin 2.690× — 49.30 ±0.02 73.0 65.24 1.32 1190 63% full cdp
focusee 2.3.5 Ryzen 5 7520U win32 10.728× 2.12× 207.79 ±3.29 17.3 467.23 2.25 3340 162% full uia
openscreen 1.11.0-rc.1 Ryzen 5 7520U linux 1.124× 1.55× 27.27 ±0.02 132.0 69.00 2.53 968 47% full cli
openscreen 2.0.0 Ryzen 5 7520U linux 1.423× 1.83× 26.97 ±0.04 133.5 60.00 2.22 1020 5% full cli
openscreen 1.11.0-rc.1 Ryzen 5 7520U win32 1.441× 2.10× 30.73 ±0.06 117.2 9.61 0.31 896 64% full cli
openscreen 1.11.0-rc.1 Ryzen 5 7520U win32 1.457× 2.08× 30.63 ±0.12 117.5 9.28 0.30 873 49% full cli
openscreen 1.10.0 Ryzen 5 7520U win32 1.582× — 32.76 ±0.18 109.9 10.94 0.33 1004 77% full cli
openscreen 1.10.0 Ryzen 5 7520U win32 1.671× 2.16× 35.74 ±0.35 100.7 11.09 0.31 939 75% full cli
openscreen 1.10.0 Ryzen 5 7520U win32 1.794× 2.20× 34.52 ±0.74 104.3 11.08 0.32 966 91% full cli
openscreen 1.11.0-rc.1 Ryzen 5 7520U win32 1.839× 2.19× 34.93 ±0.20 103.1 10.02 0.29 877 60% full cli
openscreen 1.10.0 Ryzen 5 7520U win32 1.907× — 39.03 ±0.78 92.2 10.50 0.27 984 50% full cli
openscreen 2.0.0 Ryzen 5 7520U win32 1.929× 2.12× 35.44 ±2.35 101.6 9.91 0.28 919 38% full cli
openscreen 1.10.0 Ryzen 5 7520U win32 2.015× 2.12× 38.55 ±0.09 93.4 10.64 0.28 947 64% full cli
openscreen 2.0.0 Ryzen 5 7520U win32 2.130× 2.29× 42.88 ±0.44 84.0 16.46 0.38 1586 118% full cli
openscreen 1.10.0 Ryzen 5 7520U linux 3.300× 1.60× 76.84 ±0.01 46.8 119.00 1.55 996 138% full cli
openscreen 1.10.0 Ryzen 5 7520U linux 4.085× 2.03× 77.85 ±0.15 46.2 121.00 1.55 993 51% full cli
cap 0.5.9 Ryzen 5 7520U linux 2.416× 1.59× 57.02 63.1 166.00 2.91 1232 47% full cli
cap 0.5.9 Ryzen 5 7520U linux 2.500× 1.62× 57.31 ±0.03 62.8 165.00 2.88 1231 142% full cli
cap 0.6.0 Ryzen 5 7520U linux 2.734× 1.86× 51.68 ±0.03 69.7 158.00 3.06 764 14% full cli
cap 0.6.0 Ryzen 5 7520U linux 2.861× 2.02× 54.71 ±0.26 65.8 171.00 3.13 704 83% full cli
cap 0.5.9 Ryzen 5 7520U linux 2.991× 1.95× 57.14 ±0.15 63.0 166.00 2.91 1231 54% full cli
cap 0.6.0 Ryzen 5 7520U win32 6.727× 1.93× 143.53 ±2.25 25.1 51.88 0.36 1378 101% full cli
cap 0.6.0 Ryzen 5 7520U win32 6.883× 2.05× 135.27 ±0.91 26.6 51.81 0.38 1384 43% full cli
cap 0.6.0 Ryzen 5 7520U win32 6.994× 2.14× 130.26 ±0.08 27.6 48.05 0.37 1378 50% full cli
cap 0.5.9 Ryzen 5 7520U win32 7.694× — 149.85 ±0.32 24.0 102.17 0.68 2395 85% full cli
cap 0.5.9 Ryzen 5 7520U win32 8.251× 2.14× 172.42 ±2.28 20.9 103.05 0.60 2351 60% full cli
cap 0.5.9 Ryzen 5 7520U win32 8.293× — 175.28 ±0.86 20.5 104.52 0.60 2377 76% full cli
cap 0.5.9 Ryzen 5 7520U win32 8.723× 2.11× 185.29 ±0.60 19.4 103.88 0.56 2354 71% full cli
cap 0.5.9 Ryzen 5 7520U win32 8.778× 1.99× 185.62 ±1.79 19.4 103.58 0.56 2348 75% full cli
cap 0.5.9 Ryzen 5 7520U win32 8.845× 2.13× 190.94 ±0.56 18.9 105.34 0.55 2358 67% full cli
cap 0.5.9 Ryzen 5 7520U win32 9.345× 2.27× 181.18 ±3.22 19.9 104.44 0.58 2359 72% full cli
recordly 1.4.0 Ryzen 5 7520U win32 6.131× 1.08× 226.44 ±0.39 15.9 601.78 2.66 2369 57% full cdp
recordly 1.4.0 Ryzen 5 7520U win32 6.893× 1.28× 216.65 ±7.29 16.6 613.65 2.83 2324 48% full cdp
recordly 1.3.3 Ryzen 5 7520U win32 10.446× — 197.62 ±5.50 18.2 534.85 2.71 2678 33% full cdp
recordly 1.3.3 Ryzen 5 7520U win32 10.654× — 203.15 ±2.10 17.7 560.14 2.76 2662 45% full cdp
recordly 1.3.3 Ryzen 5 7520U linux 13.710× 1.58× 323.90 ±2.28 11.1 505.00 1.56 2403 138% full cdp
recordly 1.3.3 Ryzen 5 7520U linux 16.997× 1.96× 324.46 ±3.96 11.1 505.00 1.56 2459 39% full cdp
focusee 2.3.5 Ryzen 7 5800X win32 1.145× 2.23× 8.67 ±0.02 415.4 46.84 5.40 2195 326% full uia
focusee 2.3.5 Ryzen 7 5800X win32 1.157× 2.01× 8.63 ±0.05 417.0 42.45 4.92 2215 177% full uia
openscreen 2.0.0 Ryzen 7 5800X win32 1.195× 1.96× 9.05 ±0.01 397.6 4.52 0.50 796 192% full cli
openscreen 1.10.0 Ryzen 7 5800X win32 1.204× — 9.38 383.6 3.88 0.41 774 69% full cli
openscreen 1.11.0-rc.1 Ryzen 7 5800X win32 1.242× 2.01× 9.37 ±0.02 384.2 4.17 0.44 770 87% full cli
openscreen 1.11.0-rc.1 Ryzen 7 5800X win32 1.262× 2.09× 9.75 ±0.30 369.2 4.80 0.49 773 272% full cli
openscreen 1.10.0 Ryzen 7 5800X win32 1.292× — 10.09 ±0.01 356.7 4.50 0.45 804 69% full cli
cap 0.5.9 Ryzen 7 5800X win32 2.937× — 22.97 ±0.49 156.7 41.84 1.82 1379 96% full cli
cap 0.5.9 Ryzen 7 5800X win32 3.145× — 24.48 ±0.01 147.1 44.20 1.81 1387 128% full cli
cap 0.6.0 Ryzen 7 5800X win32 8.261× 2.03× 62.38 ±3.88 57.7 27.33 0.44 1106 81% full cli
recordly 1.3.3 Ryzen 7 5800X win32 3.400× — 26.39 ±0.09 136.4 82.42 3.12 1606 86% full cdp
recordly 1.3.3 Ryzen 7 5800X win32 3.702× — 28.79 ±0.01 125.1 147.68 5.13 1524 48% full cdp
recordly 1.4.0 Ryzen 7 5800X win32 7.185× 1.94× 54.84 ±0.08 65.6 162.72 2.97 1695 197% full cdp

Export carries ± the median absolute deviation of that machine's own scoring runs: the spread its own repeats landed in.

Cores is CPU-seconds ÷ export time: how many cores the export kept busy. No GPU time is measured, on either side of the ratio.

Bg load is everything running that was not the tool under test, with the tool's own processes subtracted. Where two rows on one machine differ sharply, their seconds are not comparable — and Cost does not repair it: the floor runs on the fixed-function encoder block, which barely throttles, while the compositing under test runs on cores and shaders, which do. How far that goes, measured.

04 — Per build

Every build measured, not only the newest — cost, coverage and the range each has been seen inside. The ranking above shows one row per tool; this is the rest.

ToolBuildCostRunsPlatforms RangeVersions
cap 0.6.0 4.794× 8 macOS, Linux, Windows 1.186–8.261× 0.6.0
cap 0.5.9 3.858× 16 macOS, Linux, Windows 1.21–9.345× 0.5.9
focusee 2.4.1 0.932× 1 macOS 0.932–0.932× 2.4.1
focusee 2.3.5 5.94× 3 Windows 1.145–10.728× 2.3.5
openscreen 2.0.0 1.354× 6 macOS, Linux, Windows 1.065–2.13× 2.0.0
openscreen 2.0.0-rc rc 1.111× 1 macOS 1.111–1.111× 2.0.0-rc.12
openscreen 1.11.0-rc rc 1.221× 11 macOS, Linux, Windows 1.037–1.839× 1.11.0-rc.1
openscreen 1.10.0 2.163× 10 macOS, Linux, Windows 1.204–4.085× 1.10.0
recordly 1.4.0 5.484× 4 macOS, Windows 2.69–7.185× 1.4.0
recordly 1.3.3 8.031× 7 macOS, Linux, Windows 2.626–16.997× 1.3.3
screen-studio 4.0.1-4897 1.997× 3 macOS 1.937–2.066× 4.0.1-4897
screen-studio 3.7.5-4595 4.681× 1 macOS 4.681–4.681× 3.7.5-4595

05 — Roster

Membership follows what a tool is built for, not whether an adapter exists. A cell that is not a member says who says so.

ToolmacOSWindows Linux
OpenScreen
Screen Studio n/a n/a
Cap
Recordly degraded
FocuSee n/a
  • Recordly on Linux — per the vendor's own documentation: the rendered cursor is lost, so S3 is n/a here

06 — Method

Same clip, same edit

Every tool is handed the same recording and asked for the same demo — wallpaper, rounded corners, three zooms, a drawn cursor, a webcam inset — out at 1080p60 H.264.

Only the export is timed

The clock starts when the export is launched and stops when the file is finished. Opening the app, loading the project and setting the presets happen before it.

Divided by ffmpeg, checked in the pixels

The same machine re-encodes the same clip with plain ffmpeg, minutes apart: that run is the 1×. Each export is then re-opened to confirm the size, the length, the effects and the sound are really there.

Read the protocol in full →

07 — Submit a run

Every new machine adds a hardware combination nobody has measured yet. Yours takes about twenty minutes.

node bench.mjs run --bundle commons-upload
  1. 01Clone the repo and install the adapters for the tools you own.
  2. 02Run the bench on an idle machine. It measures its own ffmpeg floor beside every leg.
  3. 03Open a pull request with the produced JSON in submissions/. Validation runs on the PR.