AI Video Background Removal Studio: Interactive Object Prompting, Relighting, ProRes 4444 & 16-Bit OpenEXR
Learn how to take any mobile phone clip (including variable frame rate iPhone/Android recordings) or cinema plate and produce frame-accurate, color-decontaminated cutouts with studio floor reflections, custom background relighting, Apple ProRes 4444 (12-bit alpha), and 16-bit OpenEXR VFX sequences at 11.25 credits/second ($0.01125/s — 2× cheaper than Bria Video RMBG at $0.0225/s).
🎬 Watch the Complete Product Demo Video
1. Choosing the Right Mode in Background Removal
Inside PixelAPI Studio (/app/#tool-remove-bg) and on the standalone tool pages, the top Mode Switcher lets you choose between three specialized engines:
| Mode | Best For | Deliverables | Pricing |
|---|---|---|---|
| 🖼 Single Image Cutout | E-commerce catalogues, portraits, product SKUs | Lossless transparent PNG | 12 credits / image |
| 🎬 Video Background Studio | Social reels, commercial shoots, green-screen-free interviews, product videos | Preview MP4 + 8-Bit Alpha MP4 + Transparent VP9 WebM + 12-Bit Apple ProRes 4444 (.mov) | 11.25 credits / sec (Free /analyze) |
| 🎞 16-Bit OpenEXR VFX Sequence | Linear ACEScg / Nuke / DaVinci Resolve / Flame compositing | Multi-channel 16-bit half-float OpenEXR sequence (R,G,B,A,matte) + despilled FG | 11.25 credits / sec |
2. Step-by-Step Web Studio Workflow
Step A: Upload & Free Scene Analysis (0 Credits)
Drop any MP4, MOV, WebM, or M4V video up to 512 MB. Click 🔍 Analyze Video & Pick Objects (Free · 0 Credits). Our Precision Scene Analyzer inspects the clip, normalizes mobile VFR metadata, renders an interactive keyframe canvas, and displays clickable chips for every detected object class (people, pets, products, furniture).
Step B: Click-to-Keep, Click-to-Remove & Text Prompts
Click detected object chips or type natural-language prompts in Keep objects (e.g. person, dog, skateboard or only red car) and Remove objects (e.g. chair, microphone, tripod). For surgical precision on overlapping objects, click directly on the keyframe canvas using + Keep Point, − Remove Point, or drag a bounding box.
Step C: Studio Floor Shadows & Custom Plate Relighting
Choose studio_white_gloss for an e-commerce infinity cove with perspective floor reflection and foot-contact shadow, or choose custom to upload your own background image/video plate with optical bokeh blur (0–30 px) and automatic LAB/RGB ambient foreground relighting.
Step D: Closed-Form Decontamination & NLE Export
Enable Closed-form foreground color decontamination & despill to remove background color halos from blonde hair and motion-blurred hands. Adjust Matte Choke (-5..+5 px) and Edge Feather (0..10 px), then download all 4 outputs including Apple ProRes 4444 (.mov).
3. REST API Automation (Python & cURL)
import time, uuid, requests
API = "https://api.pixelapi.dev"
HEADERS = {"Authorization": "Bearer pxapi_YOUR_KEY"}
# 1. Free Scene & Object Analysis (0 Credits)
with open("mobile_clip.mp4", "rb") as f:
analysis = requests.post(f"{API}/v1/video-bgremove/analyze", headers=HEADERS, files={"video": f}).json()
print("Detected objects:", [o["label"] for o in analysis["detected_objects"]])
# 2. Submit Video Matting with Text + Spatial Point Prompts & Studio Gloss Floor
with open("mobile_clip.mp4", "rb") as f:
job = requests.post(
f"{API}/v1/video-bgremove",
headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
files={"video": f},
data={
"background": "studio_white_gloss",
"keep_prompt": "person, product",
"remove_prompt": "chair",
"keep_points": "[[0.50, 0.45]]",
"decontaminate": "true",
"despill_strength": "0.85",
"motion_adaptive_trimap": "true",
"temporal_stabilize": "true",
"shadow_strength": "0.55",
"reflection_strength": "0.28",
"max_credits": "120",
},
).json()
# 3. Poll until completed and fetch 4-way signed download URLs
job_id = job["job_id"]
while True:
status = requests.get(f"{API}/v1/video-bgremove/jobs/{job_id}", headers=HEADERS).json()
if status["status"] == "completed":
links = requests.post(f"{API}/v1/video-bgremove/jobs/{job_id}/download-links", headers=HEADERS).json()["urls"]
print("Preview MP4:", links["preview"])
print("8-Bit Alpha Matte:", links["alpha"])
print("Transparent WebM:", links["transparent"])
print("Apple ProRes 4444 (.mov):", links["prores_4444"])
break
time.sleep(3)