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.
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
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.
Apple M1 · 16 GB · Apple M1 · 8 GB — 22 runs, 5 tools across 11 builds.
↓ Lower is better — a shorter bar is a faster export
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.
Ryzen 5 7520U · Ryzen 7 5800X — 38 runs, 4 tools across 8 builds.
↓ Lower is better — a shorter bar is a faster export
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.
Ryzen 5 7520U — 11 runs, 3 tools across 6 builds. One machine, so nothing here is cross-checked.
↓ Lower is better — a shorter bar is a faster export
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.
Ryzen 5 7520U — 36 runs, 4 tools across 8 builds. One machine, so nothing here is cross-checked.
↓ Lower is better — a shorter bar is a faster export
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.
Ryzen 7 5800X — 13 runs, 4 tools across 8 builds. One machine, so nothing here is cross-checked.
↓ Lower is better — a shorter bar is a faster export
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 →
One dot per run, placed at its ratio; colour is the platform. Hover a dot for the machine and the seconds.
Export time ÷ the same machine's ffmpeg transcode. 2× means twice as long, not twice as fast.
Every run, with the machine that produced it. Cost compares across rows; seconds and frame rate don't — they describe one machine.
| Tool | Machine | OS | Cost | sw/hw floor | Export s | fps | CPU·s | Cores | RSS MiB | Bg load | Fidelity | Driven |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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.
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.
| Tool | Build | Cost | Runs | Platforms | Range | Versions |
|---|---|---|---|---|---|---|
| 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 |
Membership follows what a tool is built for, not whether an adapter exists. A cell that is not a member says who says so.
| Tool | macOS | Windows | Linux |
|---|---|---|---|
| OpenScreen | |||
| Screen Studio | n/a | n/a | |
| Cap | |||
| Recordly | degraded | ||
| FocuSee | n/a |
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.
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.
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.
Every new machine adds a hardware combination nobody has measured yet. Yours takes about twenty minutes.
submissions/.
Validation runs on the PR.