Zoom virtual background video format: MP4 or MOV, 480p to 1080p
Zoom takes an MP4 or MOV virtual background from 480x360 up to 1920x1080; images are 24-bit PNG or JPG up to 15 MB. How to render a clip in that range.

A Zoom virtual background video must be an MP4 or MOV file with a resolution between 480x360 (360p) and 1920x1080 (1080p). A background image must be a 24-bit PNG or JPG/JPEG of at most 15 MB. Zoom recommends cropping the image to your camera's aspect ratio, for example 1280x720 or 1920x1080 for a 16:9 camera. Details are from Zoom Support, read 2026-09-29.
What are Zoom's virtual background file rules?
| Type | Format | Size |
|---|---|---|
| Image | 24-bit PNG or JPG/JPEG | Up to 15 MB; 1280x720 minimum if the camera ratio is unknown |
| Video | MP4 or MOV | 480x360 (360p) minimum, 1920x1080 (1080p) maximum |
Why do black bars appear with a virtual background?
Zoom advises matching your camera's aspect ratio. If you are not sure of it, it suggests a background image of at least 1280x720. For black bars on the sides of your video with a virtual background on, its troubleshooting list says to make sure HD video is enabled in your Video settings. Zoom also notes that using a video as the background needs more system resources and has higher system requirements than an image.
How do I make a 16:9 background clip with Sume?
Generate a 16:9 clip with POST /v1/videos (each model lists the ratios it accepts in supported_aspect_ratios; check the Videos docs), then size it with Timeline 1.0. Its output.width and output.height take even integers from 256 to 2160, so 1280x720 and 1920x1080 are both valid, and output.fps takes 24, 25, 30 or 60. The source must already be a media.sume.com file in your workspace.
curl -X POST https://api.sume.com/v1/timeline-1.0/render \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: zoom-background-001" \
-d '{
"audio": { "mode": "silence", "duration_seconds": 10 },
"output": { "width": 1280, "height": 720, "fps": 30 },
"video": [
{ "source_url": "https://media.sume.com/artifacts/artf_demo/office.mp4",
"start": 0, "duration": 10, "fit": "cover" }
]
}'Should I use a still image instead of a video?
Zoom says video backgrounds cost more system resources, so a still is the lighter choice for older machines. For a still, POST /v1/images takes aspect_ratio: "16:9" and an output_format of png, jpeg, webp or svg. Zoom lists PNG and JPG/JPEG only, so pick one of those, and keep the file under its 15 MB image limit. The Images docs say explicit pixels are not served in v1, so read the delivered width and height against Zoom's 1280x720 suggestion.
How do I check the file before I upload it to Zoom?
Probe the result with Video inspect 1.0; it reports width, height, container, fps and duration_seconds and does not bill for the probe. Confirm the container is MP4 and that both sides sit inside 480x360 to 1920x1080. Zoom's page does not state a length, bitrate or codec rule for the video, and Sume's docs offer no bitrate or codec field, so test the clip in your own Zoom client. Zoom also says it can create AI backgrounds itself, which is a separate feature.
Sources
Related posts
More in Media tools
- Extract audio from a 30-minute video: the 900-second cap
Audio detach accepts a source up to 1800 seconds but returns at most 900 seconds of audio per job. Use range to split a 30-minute video into two detaches.
- ffmpeg -vn -ac 1 -ar 16000 as audio detach API fields
Audio detach rejects raw ffmpeg fields such as af, filter, cmd and codec. Map -ac, -ar and -ss/-to to channels, sample_rate and range; mp3 is 128 kbps.
- audio_parts_channel_mismatch: concat needs one channel layout
Timeline audio concat fails with audio_parts_channel_mismatch when parts mix channel layouts. Detach video audio as mono for every part.
- audio_parts_shorter_than_duration: fix a Timeline audio spine
Timeline 1.0 refuses audio.parts[] whose declared lengths sum to less than audio.duration_seconds. Add part length, lower the duration, or use silence mode.
Written by Sume