PERFORMANCE
Browser Support and Performance for Client-Side Background Removal
A tool that runs the model on your device inherits your device's limits. These are the browser APIs it needs, the execution paths available to it, and the variables that decide how long a clip takes. bgremover.ai itself runs its model on our GPU servers; your browser still resizes, composites and encodes the clip.
4bytes
Per decoded pixel
8.3MB
One 1080p frame
33MB
One 4K frame
3
Execution paths
1280px
Our upload, long side
What the Browser Has to Provide
A client-side background remover runs inside a web page, so every capability it needs must be exposed by the browser rather than installed. Four matter, and a device missing any one cannot run the tool.
WebAssembly runs the model in the browser's own sandbox, which keeps a client-side tool's footage on your device; bgremover.ai instead uploads it to our GPU servers, as how background removal works explains. Inference is mostly matrix multiplication, so it wants a GPU: WebGL exposes one through a graphics API, WebGPU through a compute API.
Without either, inference falls back to the CPU. Something must also encode finished frames into a file: MediaRecorder, the wider route, or WebCodecs, the finer one. The fourth requirement, memory for decoded frames, is the most underestimated.
Three Execution Paths
| Path | Runs on | Speed | Availability |
|---|---|---|---|
| WASM with SIMD | CPU, several values per operation | Slowest | Almost everywhere |
| WebGL | GPU, through graphics shaders | Middle | Any GPU |
| WebGPU | GPU, through a compute API | Fastest | Least common |
WebGL is a workaround rather than a design: the API was built to draw triangles, and moving data through textures costs time. It stays the practical default. WASM competes for the main thread unless the work moves to a worker, and BEN2 needs FP16 WebGPU, so recent desktop GPUs only.
Availability decides this, not preference: a tool implementing only WebGPU is fast where it runs and absent everywhere else.
Why the First Run Is Slower
-
The model downloads once
Before any frame is processed.
-
It initialises and warms up
Then the first frame goes through.
-
Later clips skip both
Served from cache, so only initialisation remains.
A client-side tool should therefore load the model on a user gesture, not on page load: megabytes of WebAssembly arriving as you land would make the page feel broken for anyone who came to read.
The Arithmetic of Decoded Frames
A decoded video frame is uncompressed pixels, so resolution dominates memory.
4bytes
Per pixel
8.3MB
One 1080p frame
33MB
One 4K frame
5
Frames in the working set
Those figures are arithmetic, not measurements, and compressed file size is a poor guide. Nothing needs every frame decoded at once, but the pipeline holds a working set: the frame decoding, the one being segmented, its mask, the composite, and the encoder's buffer.
Multiply a few frames by 33 MB at 4K and a tab's budget starts to matter, especially on a phone. If a long high-resolution clip fails or the tab reloads, cut resolution rather than length: halving each dimension quarters the memory.
What Determines Processing Time
These are relationships, not numbers: a time measured on one laptop tells you nothing about a phone.
- Frame countDuration times frame rate; 60 fps doubles 30 fps.
- ResolutionDrives decode, composite and encode; inference stays fixed.
- Execution pathWebGPU, WebGL and WASM-SIMD differ on one machine.
- Device classDesktop, laptop and phone GPUs are three machines.
- Model choiceMatting costs more per frame than MediaPipe.
- Thermal stateSustained GPU work on a warm phone is throttled.
No timings table yet. It needs real testing: 60 seconds of 1080p 30 fps on desktop and laptop, 30 seconds on Android and iPhone. An invented benchmark would be the one unverifiable figure here.
Browser Support Matrix
| Requirement | Chrome, Edge | Firefox | Safari | Mobile |
|---|---|---|---|---|
| WebAssembly | ✓ | ✓ | ✓ | ✓ |
| WebAssembly SIMD | ✓ | ✓ | ✓ | Untested |
| WebGL | ✓ | ✓ | ✓ | Untested |
| WebGPU | ✓ | Untested | Untested | Untested |
| MediaRecorder | ✓ | ✓ | Untested | Untested |
Per-browser verification belongs here before the site claims universal support. The claim we can make untested is architectural: a client-side tool needs WebAssembly and a GPU path, not WebGPU. bgremover.ai needs WebCodecs, which it uses to prepare the upload and build the export.
The Honest Mobile Picture
For a client-side tool, MediaPipe selfie segmentation's small footprint is what makes mobile browsers viable at all. A few megabytes with modest memory demands fits a phone's tab budget; a desktop-GPU model does not. bgremover.ai sidesteps this by running its model on GPU servers; the phone still decodes and encodes the clip.
| On a phone | bgremover.ai | FuzzPuppy |
|---|---|---|
| Runs in a mobile browser | Yes | Desktop only |
| Model | Our AI model, on GPU servers | MODNet and BEN2 |
| Alpha export | ✗ | Alpha MOV, green-screen MP4 |
| Requires WebGPU | ✗ | Yes |
| Price | Free | Free |
We will not claim universal mobile support before testing per browser. Mobile is harder: less memory per tab, aggressive eviction, thermal throttling. Shorter clips at lower resolution are the reliable path, and stills through the photo background remover cost one frame.
Frequently Asked Questions
Which Browsers and Devices Are Supported?
bgremover.ai needs a recent browser with WebCodecs, which it uses to prepare the upload and build the export: current desktop Chrome, Edge, Firefox and Safari qualify. Mobile browsers meet the same requirements in principle, and the matrix above is being verified.
Does It Work on Mobile?
Yes. The model runs on our GPU servers, so a phone only prepares the upload and builds the export. Shorter clips are more reliable there, since tab memory is tighter.
Why Does Background Removal Take a While?
The clip is resized and uploaded, processed on our GPU servers, then composited and encoded in your browser. Processing starts as soon as the first few seconds arrive, and at busy times a job may wait briefly for a free GPU. Time scales with frame count.
Why Is the First Run Slower Than the Second?
On a client-side tool, the model downloads on first use and the browser then caches it, so the first clip pays download and initialisation. On bgremover.ai the model runs on our servers; the first clip only fetches the page's video library, which the browser then caches.
Why Should I Keep the Browser Tab Open?
The tab uploads the clip, collects the masks from our servers and builds the export. Closing it cancels the job, and the export cannot be picked up from another tab; the privacy page explains what is kept on our side.
Does a Longer Clip Take Proportionally Longer?
Roughly, yes, because time tracks frame count and doubling duration doubles frames. Raising frame rate does the same. Raising resolution costs more in decode, composite and encode, but not in segmentation.
Try the Background Remover
Try it without signing up. Your file is processed on our GPU servers and never stored.