Edits exports 4K 60fps HDR: Sume Timeline's 2160 px edge and 60 fps
Instagram says Edits exports up to 4K at 60fps with HDR. Sume Timeline 1.0 caps each side at 2160 px and offers 24, 25, 30 or 60 fps. Numbers and a plan call.

Instagram's creators page on editing iPhone videos says the Edits app can export "up to 4K resolution, 60fps, and HDR, completely watermark-free" (read 2026-10-03). Sume Timeline 1.0 does not match that on pixels: its output.width and output.height are each limited to even integers from 256 to 2160, so a 2160x3840 vertical frame is outside the contract, and the docs do not mention HDR at all. It does match the frame rate, since output.fps accepts 60. For a 9:16 Reel, the practical ceiling is about 1216x2160.
The numbers side by side
Timeline's default output is 1080x1920, which already fills Instagram's vertical frame for most viewers. The only reason to go higher is a crop-in later or a large-screen replay.
| Setting | Edits (Instagram page) | Sume Timeline 1.0 (docs) |
|---|---|---|
| Max resolution | Up to 4K | Width and height each 256-2160, even integers |
| Frame rate | Up to 60 fps | 24, 25, 30 or 60; omit to match the sources |
| HDR | Yes | Not documented |
| Watermark | None | None mentioned; render is ffmpeg on the worker |
| Default frame | Not stated | 1080x1920 MP4 |
| Length ceiling | Not stated | audio.duration_seconds 1-1800 s |
Checking a 60 fps render before paying
Timeline has an unbilled POST /v1/timeline-1.0/plan that runs schema checks and the compiler and returns duration_seconds, segment_count, billable_minutes and estimated_cost_usd_micros. It does not reserve credits or download media. The sample asks for 60 fps at the widest 9:16 frame the contract allows, then prints the estimate. Even if the plan accepts it, a source shot at 30 fps will be repeated to 60, and the docs report that as output_fps_resamples_sources, so match the rate to your footage.
import json, os, urllib.request
API = "https://api.sume.com/v1"
def post(path, body, key):
req = urllib.request.Request(
f"{API}{path}",
data=json.dumps(body).encode(),
headers={
"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Content-Type": "application/json",
"Idempotency-Key": key,
},
method="POST",
)
with urllib.request.urlopen(req) as res:
return json.load(res)
plan = post(
"/timeline-1.0/plan",
{
"audio": {"mode": "silence", "duration_seconds": 12},
"video": [
{
"source_url": os.environ["SUME_CLIP_URL"],
"start": 0,
"duration": 12,
}
],
"output": {"width": 1216, "height": 2160, "fps": 60},
},
"plan-1216x2160-60fps-001",
)
print(plan["duration_seconds"], plan["billable_minutes"], plan["estimated_cost_usd_micros"])
Where higher resolution comes from
A render cannot add detail the sources lack. If the clips are AI-generated, the ceiling is the generator: the Video Router doc lists gemini-omni-flash-1.1 at 360p, 720p, 1080p and 4K for 3-10 seconds, while seedance-2.5 is listed at 480p, 720p and 1080p. A 4K clip dropped into a Timeline slot is then scaled to whatever output you set, so for a true 4K master you would stop at the generator's file rather than assemble it.
Timeline pricing is $0.10 per ceiling output minute, so the 12-second plan above reserves one minute. For the Reel itself, Instagram's own guidance is that 1080x1920 is the frame that matters; read the Reel size page for the current aspect ratio and upload-quality notes before you chase 4K.
Decision rule
Use Edits when you need HDR or a 4K export from footage you shot. Use Sume Timeline when the job is sequencing hosted clips and a soundtrack, up to 1800 seconds, at 1080x1920 and 24, 25, 30 or 60 fps. Say so plainly in your own handoff notes: Sume has no documented HDR path.
Do you need 4K for a Reel at all
Most Reel views happen on a phone screen at roughly the size of a 1080-wide frame, and Instagram recompresses what you upload. Instagram's help page on Reel size and aspect ratios describes cover photo sizes and how to choose upload quality, and the same page is where to confirm the aspect ratio you should target. A 4K upload can still help if you plan to crop in later for a different aspect ratio, or if you want a clean master for another platform, but it is not the default answer for a feed Reel.
There is also a file-size trade. Higher resolution and 60 fps raise the bitrate you need to keep quality, and Instagram's current upload limits for Reels belong in your checklist before you export. Test one clip at 1080x1920 and one at your highest setting, compare them on a phone, and keep the cheaper one if you cannot see the difference.
A short checklist
Before assembling in Sume, confirm that every slot's source is already on media.sume.com, pick one output.fps that matches your longest source, and run the plan call first. The plan returns billable_minutes and an estimated cost, so you see the bill before a render starts. Remember that width and height are each capped at 2160, so a 3840-pixel edge is outside the contract in either orientation. Choose 9:16 for Reels and 1080x1920 unless you have a reason not to.
Sources
Related posts
More in Comparisons
- Edits keyframes vs Sume Timeline: stills are static, no zoom
Edits supports keyframes. Sume Timeline holds a still static and ignores a motion field; animate the still first with Video Router image-to-video.
- Eleven v4 90+ languages vs Sonic 3.6 44 languages: which fits yours
ElevenLabs says Eleven v4 covers 90+ languages. Cartesia says Sonic 3.6 covers 44. How to check your language before you pick a TTS model or API.
- Eleven v4 and Sume: a step-by-step feature map for voiceover work
Eleven v4 is not a model id on Sume. Here is what v4 does per ElevenLabs, and which Sume endpoint covers each step of a voiceover pipeline today.
- Eleven v4: 90+ languages or 99? ElevenLabs' own pages differ
ElevenLabs' launch post says more than 90 languages for Eleven v4; its docs page lists 99. How to plan around the gap, and what Sume lists instead.
Written by Sume