Framer looping video: keep it under 5 MB, Framer won't compress
Framer says keep looping videos under 5 MB, uses H.264 MP4, and serves a 4K upload at full size. Render and trim a Sume clip small before you upload.

Framer tells you to keep looping videos under 5 MB, to use H.264 in an .mp4 file, and not to expect any compression: Framer does not change an uploaded video, so a 4K file is served at full resolution even on a small screen. Generate the Sume clip at 720p, cut it to a few seconds, and drop the audio before you upload it.
This post turns Framer's own wording into a short render plan. It is for a hero or section loop, not for a long product demo.
What Framer's help pages say
Both facts below come from Framer's help center, read 2026-10-10. Framer's page on adding video lists no upload size limit, so the 5 MB figure is guidance for looping video, not a hard refusal.
| Framer says | What it means for the file |
|---|---|
| H.264 codec with the .mp4 extension is universally supported across browsers | Upload H.264 MP4 |
| Keep looping videos under 5 MB; most browsers have a 5-8 MB caching limit for media files | Short loop, small frame |
| Framer does not alter uploaded videos; a 4K video is served in full resolution, even on small screens | Choose the final resolution before upload |
| Muted, looping, auto-playing videos without controls pause outside the viewport | A silent loop behaves like a GIF |
| For adaptive quality, use YouTube or Vimeo embeds | A native upload is one fixed rendition |
Render small on purpose
Sume gives you three levers that change file size: the clip length, the pixel size, and the frame rate. It has no bitrate field, so you measure the downloaded file instead of setting a target. The Video Router lists seedance-2.5 at 4 to 30 seconds and 480p, 720p or 1080p, so a 720p, 5-second request is a good first try for a section loop.
curl -X POST https://api.sume.com/v1/video-router/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: framer-loop-001" \
-d '{
"model": "seedance-2.5",
"prompt": "Slow macro push-in on a ceramic mug of coffee, steam rising, soft morning light, no text",
"resolution": "720p",
"duration": 5,
"aspect_ratio": "16:9",
"mode": "async"
}'Trim, shrink and drop audio
If the download is still over 5 MB, run video trim at $0.02 per job. Send a shorter range, set audio to drop because a muted loop does not need a sound track, and use the output object to conform the width, height and fps. Trim's exact mode re-encodes to libx264 in yuv420p, which matches the H.264 MP4 Framer recommends. Output width and height run from 256 to 2160, and fps is 24, 25, 30 or 60.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: framer-trim-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4",
"start": 0.5,
"duration": 3.5,
"audio": "drop",
"output": { "width": 1280, "height": 720, "fps": 24 }
}'The checklist
The arithmetic is yours to run: 5 MB is 40 megabits if you count a megabyte as 1,000,000 bytes, so a 4-second loop averages about 10 megabits per second at the cap and a 8-second loop about 5. Shorter loops leave more room per second.
- Pick the final pixel size first; Framer will not scale a big file down for you.
- Cut to a loop of a few seconds and check the file size after the download.
- Send audio as drop; a silent loop does not need a sound track.
- Re-read Framer's page before launch; it may change.
Sources
Related posts
More in Integrations
- Freshdesk Trigger Webhook: 1000 calls an hour and Sume bulk runs
Freshdesk automations cap webhook calls at 1000 an hour and retry failures every 30 minutes. Here is how a relay maps ticket bursts onto Sume bulk runs.
- Gemini CLI 63-character tool names: Sume's longest is 45
Gemini CLI truncates MCP tool names over 63 characters. Checked against Sume's tool list, the longest becomes 45, so nothing is cut.
- Ghost(Pro) upload limit: 5 MB Starter, 100 MB Publisher
Ghost(Pro) caps media uploads at 5 MB on Starter, 100 MB Publisher, 250 MB Business. Which newsletter-to-video clip fits, and how to cut it with Sume trim.
- GitHub Actions: cancel the Sume Format run when the job is canceled
A canceled GitHub job does not stop a Sume run. Add a step with if: cancelled() that posts to the run's cancel URL, within GitHub's 7.5 second signal window.
Written by Sume