Videos are made on CPU workers
Finish my video, Shorts, Join, Resize and the editing tools are made on CPU workers (owner decision, 2026-10-25): long videos are split into pieces made at the same time on Modal, which is faster and cheaper than one GPU worker. A GPU worker (more cores and a built-in video encoder) is used only for what must be made in one go: a steadier camera, follow the speaker, auto-zoom, a label, or Change my background. When no CPU worker is free, a GPU worker makes the video straight away, so you never wait while a GPU is free (and the other way round).
Where each job runs, in order (the Processing log shows the reason on every job):
- Nothing re-encoded (quick trims, matching joins, sound only): CPU.
- Under 30 seconds of video: CPU.
- Shorts and Split into parts with several clips, with 3 or more CPU workers free: CPU, each clip made on its own worker at the same time (part labels and follow the speaker work per clip, so no GPU is needed).
- A steadier camera, follow the speaker, auto-zoom, a label or Change my background (these need the whole video at once): GPU, or a CPU worker when no GPU is free.
- Long (from "make in pieces from", 10 minutes by default), with 3 or more CPU workers free: CPU, made in pieces on several workers at once. With too few CPU workers free to split it: a GPU worker's 8 cores (or one CPU worker).
- Everything else, including trims that re-encode: CPU, or a GPU worker only when no CPU worker is free.
Transcription is unchanged: on Groq from a small CPU worker, or on our own GPU when Admin says so or Groq isn't available.
A steadier camera on a join measures the shake while the clips are joined, so the video is read twice instead of three times, and the smoothing step is about twice as fast as before. The shake is measured on a half-size copy of the picture (the camera moves the same at any size), which makes that pass about four times lighter. Long videos with a steadier camera are then steadied in pieces on the worker's cores at the same time (up to 4 on a GPU worker), all from the one shake measurement and one zoom, with extra frames around each join so the result is the same as doing it in one go. Each piece of a long video made on other workers now gets 8 cores instead of 4.
A join with a steadier camera in several shapes is steadied once. One GPU job joins the clips and steadies the whole picture (with the look, voice clean-up, music and picture fix), then each shape (9:16, 4:5, 16:9…) is made from that steadied video on CPU workers at the same time, with its own framing, captions, logo, intro/outro and call to action. You see "(steadied for N shapes)" being made first, then one video per shape. Two shapes cost about 40% less than steadying twice, and take about the same time.
When no GPU is free
GPU workers ask for an NVIDIA A10G and take an L4 when no A10G is free (both have the video encoder; the order is the GPU choice setting on Admin → Processing). If a GPU still hasn't started after about 2½ minutes, the video is moved to a CPU worker instead of waiting longer. The Processing log shows "Waiting for a GPU" when that wait was long, and which GPU was used.
Joins are made in one pass
A join with a look, captions, logo, pictures, call to action or clean-up is joined and finished in a single pass (it used to be made twice), then music and the intro/outro are added. Videos are made at up to 1080p unless 4K is chosen, and 4K phone footage is brought down before any heavy colour work, so it's much quicker.
How long will it take?
Before you start, the dialog shows a range, for example "about 8–12 minutes". It's based on how long the same kind of job really took recently (per minute of video), leaning towards the slower ones so it's rarely too hopeful. While it runs, the bar moves through every step and shows the time left.
Long videos are made in pieces
A long finished video (10 minutes or more by default, joins included) can be made in pieces at the same time on several workers, then joined. Only the picture is split; the sound is made once for the whole video (at the same time as the pieces) and put back on, so there are no clicks or drift. If the pieces take far longer than they should, the video is made the normal way instead. Captions, pictures and the logo are given to each piece for its own time, and joins never fall inside a picture. Every clip in a piece gets an exact whole number of frames, so joins of many clips (16 or more) come out the exact length; a clip whose picture ends before its sound (screen recordings, clips ending on a still) holds its last frame, so the join stays in step. After joining, the length of the picture is checked and the sound is fitted to it (a tiny difference is trimmed or padded with silence). If the picture is off, the sound is far out, or a piece can't be made, the video is made the normal way on one worker, so the result is always right. The Processing log says which number was off when that happens.
Shorts and Split into parts aren't cut into pieces: each clip is made on its own worker at the same time instead (up to "workers sharing one long video", 4 by default; more clips are made 4 at a time). If a clip can't be made on its worker, the main worker makes it, so the job still finishes.
Not split: short videos, and videos with follow the speaker, auto-zoom or a part label. A steadier camera is split only for a whole video or one part (Join, Resize, tools), not for a Finish my video edit with many cuts.
Stuck jobs are stopped automatically
If a job stops making progress for 3 minutes, or runs far longer than a video of its length could need, the worker stops it and it's tried again on a fresh worker, so nothing sits at the same percentage for an hour.
Waiting in line
When all workers are busy, the progress shows Waiting · 3rd in line (or Starting next). The video starts as soon as a worker is free. When it's busy, long videos use fewer pieces so that everyone gets started.
Why does it take a moment to start?
Your video is handed to a worker the moment you press the button. When no worker has been used for a minute, a new one starts first (usually under 30 seconds) before the download begins. If the hand-off is ever missed, the progress box hands it over within about 15 seconds while you watch, and a check every minute does it if you've left the page.
More in Recording and uploading
