Inside 16.7
milliseconds

A 60fps frame is 16.683 ms. Everything has to fit in one.

That number is the whole design brief. Decode a frame, grade it, run a stack of effects on it, composite it, and push it out of five interfaces at once — and be finished inside 16.683 ms, every time, or the audience sees a judder instead of a show. Deckboy is free, so the temptation is to assume it is the slow option. It is not, and this page is the receipts.

Every effect is benchmarked, and over-budget is a bug

Deckboy has 36 video effects. Adding one is not finished when it looks right; it is finished when --effect-bench <name> 1920x1080 says it fits inside a frame. That check has caught every single one of them at least once, and in each case the cost was somewhere other than where it looked:

EffectFirst workingShippedWhat it actually was
Grain flow119 ms13 ms a luma conversion inside a 3×3 window — every pixel converting thirty-six neighbours its neighbours had already done — plus trig and a pow on frame constants in the pixel loop
Chladni24 ms7 ms twenty sines per pixel. The plate equation is separable, so two tables the width of the frame replace all of them and the inner loop does no trigonometry at all
Crystallise18 ms16 ms nine square roots per pixel to rank nine seeds. Ranking by the square gives the identical order; only the grain boundary needs a real distance
Any channel-wise effect10–66× if the output channel depends only on the input channel, it is a 256-entry lookup table, built from the same expression, byte-identical

Three rules came out of that work and they are enforced on every new effect: table anything that depends on one byte; parallelise the row loop unless the rows genuinely are not independent; and compute a smear on a reduced raster, because an effect whose job is to destroy detail does not need full resolution to destroy it. Grain flow's third-resolution pass is visually indistinguishable from the full one — as it would be.

None of this is a claim you have to take on trust. --effect-bench ships in the binary you download, and --effect-dump renders any effect headlessly so two builds can be compared frame-for-frame, byte-for-byte.

The picture never takes the slow road

Where the rest of the chain spends its time

For context, because the playback machine is usually blamed for delay it did not cause. At 59.94, one frame is 16.683 ms:

StageCostWhose
Capture1 frame, always — the sensor has to finish reading outphysics
Encode1 frame intra-only; 2–8 for long-GOP H.264/HEVCyour choice
TransportSDI effectively nil; ST 2110 on PTP under 1 ms; SRT whatever you setthe network
Display1–3 frames of scaler nobody publishesthe venue's

Deckboy sits at the encode stage, and it is the stage where the choice is actually yours. It sends uncompressed ST 2110-20 — one 1080p59.94 10-bit 4:2:2 flow is 2.49 Gb/s, UHD is 9.95 Gb/s — alongside NDI, SRT, RTMP and SDI, simultaneously. Uncompressed IP video is normally the preserve of equipment that arrives with a quotation attached.

The effects nothing else has

Speed is table stakes. The more interesting claim is the work that a plug-in structurally cannot do, however fast it runs.

Every audio effect ever written receives a buffer of samples and nothing else. That is not a limitation anybody chose; it is what a plug-in is. A compressor inside a mixing desk cannot know that the thing it is compressing is a drone shot, that the shot sits a quarter of the way across the screen, that it has four seconds left, or that the operator has just held it.

Deckboy keeps the picture and the sound in one object, so 5 of its 14 audio effects read the frame they are playing under:

These are not ports of anything. No plug-in host can offer them, because no plug-in host has the frame to hand.

One honest boundary: the numbers above are Deckboy's own measurements, taken with tools that ship in the build so you can repeat them. They are not head-to-head benchmarks against Mitti, PlaybackPro, QLab, Millumin or vMix — running a fair test against five commercial products is not something this project can claim to have done. What it can say is what its own budget is, that it holds it, and that you can check.

Try the measurement yourself

End-to-end delay through your own chain, with no test equipment: put a running millisecond timer on a screen at the start, put the output display beside it in the same shot, and photograph both with a second camera at 1/1000 s. The difference between the two readings is your latency. Do it once per stage as well as end to end and you will find the frame nobody knew about — it is almost never where the argument said it was.

Deckboy has an A/V delay beacon built in for exactly this: a white frame with a click on the same frame, so the offset comes back in samples rather than in opinions.

Download Deckboy How it compares