- Remove Background
Description Initiates an asynchronous background removal job for a video.
Need real-time / low-latency background removal? See Streaming Background Removal for the WebSocket-based variant.
Response behavior:
Returns HTTP 202 with
request_idandstatus_urlCheck job status by polling
status_urlor by calling the status endpoint with therequest_iduntil a terminal status is returned
Supported input containers:
- .mp4, .mov, .webm, .avi, .gif
Supported input codecs:
- H.264, H.265 (HEVC), VP9, AV1, PhotoJPEG
Input attributes preserved in output:
Aspect Ratio and resolution (unless
auto_zoomis enabled - see Auto Zoom below)Frame Rate
Audio if present
Limits:
Max input duration: 60 seconds
Resolutions: Input resolution up to 16000x16000 (16K). Inputs larger than this return 413 Payload Too Large. Output resolution matches the input resolution. When
auto_zoomis enabled, the output is cropped to the foreground subject and may be smaller than the input.
Background and transparency control:
background_colormust be one of the predefined string values listed below. Hex values are not supported. Default isTransparent.If
background_colorisTransparentand the selected output preset cannot carry alpha, the request is not rejected.background_colorfalls back toBlackand the completed result carries awarningfield naming the preset, the colour used, and the presets that do support transparency. Poll the status endpoint and checkresult.warningif you need to detect this.
Output transparency support by preset:
Alpha supported:
webm_vp9,mov_proresks,mkv_vp9Alpha not supported:
mp4_h264,mp4_h265,mov_h265,mkv_h264,mkv_h265,gif
Auto Zoom:
Set
auto_zoomtotrueto automatically crop the output video to the foreground subject, creating a zoom-in effect.The crop is calculated once for the entire video - the smallest rectangle that contains the subject across all frames - so the framing is stable throughout, with no per-frame movement.
If the subject moves across a large portion of the frame, the crop is minimal and the output may match the input framing.
When cropping is applied, the output resolution and aspect ratio differ from the input.
Enabling this option increases processing time.
Publicly accessible URL of the input video. Input resolution supported up to 16000x16000 (16K)
Predefined string only - one of the enum values below. Hex values are not supported. If Transparent is used with an output preset that cannot carry alpha, it falls back to Black and the result includes a warning.
When set to true, the output video is automatically cropped to the foreground subject, creating a zoom-in effect. The crop is fixed for the entire video (the smallest rectangle containing the subject in all frames), so the framing is stable with no per-frame movement. If the subject moves across most of the frame, little or no cropping is applied. When cropping occurs, output resolution and aspect ratio may differ from the input. Enabling this option increases processing time.
Output container and codec preset
Optional URL for receiving the result via webhook when the async job completes. See webhooks.
from bria_client import BriaSyncClient
client = BriaSyncClient() # reads BRIA_API_TOKEN
job = client.submit(
endpoint="video/edit/remove_background",
payload={
"video": "https://labs-assets.bria.ai/sandbox-example-inputs/5586521-uhd_3840_2160_25fps_original.mp4",
},
)
result = client.poll(job, interval=5, timeout=600)
print(result.result.video_url){ "request_id": "string", "status_url": "string" }