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
- How to assemble a long-form video with the Timeline 1.0 API
Timeline 1.0 renders one audio spine plus 1 to 200 ordered video slots into one MP4. Every URL must be Sume-hosted; the plan preflight is unbilled.
- How to burn captions onto a video with the Sume API
Send a public HTTPS video URL to POST /v1/video-captions and get a job-backed captioned video, timed by speech-to-text or by text you supply.
- How to extract frames from a video with the Sume API
POST /v1/video-frames returns stills at the times you name from one Sume-hosted clip, as durable images at source size. The call is unbilled.
- How to use Sume's Timeline compose and Timeline audio APIs
Timeline compose puts one still and one video in the same frame as a new MP4. Timeline audio joins or splits Sume-hosted audio into reusable files.
Written by Sume