Remove or replace
Remove: subject over white. Replace: subject over a solid color (hex) or a replacement image. If no background spec is given, the step can be skipped and the original is returned.
Remove or replace video background per frame with foreground segmentation
You send a source video (and optionally a background spec). The service runs frame-by-frame: a segmentation model predicts a foreground alpha mask per frame, the foreground (subject) is refined for cleaner edges and hair, then composited over a base. Base is white (remove), a solid hex color (e.g. #1E90FF), or a replacement image. Original audio is muxed back; output is H.264/AAC MP4. Optional trim (start/end) is applied before processing. Async: submit job, poll until completed, then download the result URL.
Remove: subject over white. Replace: subject over a solid color (hex) or a replacement image. If no background spec is given, the step can be skipped and the original is returned.
Each frame is run through a segmentation model to get an alpha mask; the foreground is refined (e.g. blur fusion) for better hair and edges, then composited with the chosen base at original resolution.
Optional start and end (seconds or hh:mm:ss) trim the source first; only the trimmed segment is processed. Reduces cost and output length.
Original audio track is muxed back with the new video; output is single MP4 (H.264 video, AAC audio).
Replace background with a solid color or image for calls, presentations, or thumbnails.
Clean subject over white or a custom background; optional trim to process only the needed portion.
Input
Source video (URL or asset ID), optional background (hex color or replacement image URL/asset), optional start/end for trim
Output
Job ID; when completed, result includes output video URL (MP4)
Prerequisites
POST videoUrl + optional back_ground (hex color) OR imageUrl (replacement image URL). Omit both for remove (subject over white). Optional start/end (seconds or hh:mm:ss) to trim before processing.
{
"videoUrl": "https://example.com/video.mp4",
"back_ground": "#1E90FF",
"start": 0,
"end": 30
}Response
{
"status": "accepted",
"message": "Job queued for processing",
"job": { "id": "550e8400-...", "status": "queued", "service": "studio-background" }
}Field name is `videoUrl` (camelCase). Background spec is `back_ground` (with underscore) for hex colors, OR `imageUrl` for replacement image URL. Standard async — poll GET /v2/jobs/{job_id}.
When the job is completed, the result contains the output video URL. Download before the URL expires if you need long-term storage.
Remove or replace video background per frame. Optional background: none (white), hex color, or replacement image. Optional start/end trim. Returns job_id; poll for output video URL.
/v1/proxy/studio-background
Billed per second of source video (trimmed segment if start/end are provided).
| Service | Unit | Price |
|---|---|---|
| Background Remove/Replace | second | $0.06/second |
A: Remove: subject is composited over white. Replace: subject over a solid color (hex) or a replacement image. If you omit background, behavior is remove (or skip, depending on gateway).
A: Yes. Compositing is done at the original frame size; output video matches input resolution (and original audio is preserved).
A: Poll the job status endpoint with the job_id; when status is completed, the result contains the output video URL. Download before the URL expires if needed for long-term storage.
1.0 (2026-01-26)
1.2 (2026-04-29)
1.1 (2026-02-23)