Timeline 400 on codec, crf or ffmpeg_args: what a Reel spec can send

Sume Timeline refuses codec, crf, preset, filter_complex and ffmpeg_args with a 400. Which output fields it does accept for a 9:16 Reel or Short and why.

4 min readSume
All posts

Sume Timeline returns a 400 if the body contains codec, video_codec, audio_codec, preset, crf, filtergraph, filter_complex, ffmpeg_args, args, command, raw, expression, model, endpoint or provider_endpoint. The server compiles ffmpeg itself and callers send a declarative document only. Read from the Timeline docs and API schema on 2026-10-06.

What can an export spec set instead?

Accepted output fields, Sume docs (read 2026-10-06)
WantFieldLimit
Vertical frameoutput.width, output.heightEven integers 256 to 2160; default 1080x1920
Frame rateoutput.fps24, 25, 30 or 60; omit to match sources
Fade at start or endoutput.fade_in_seconds, fade_out_seconds0 to 5 each, sum within the length
Lengthaudio.duration_seconds1 to 1800
Crop behaviorvideo[].fitcover, contain, stretch or blur

What do I do when a platform wants a bitrate?

Control the file size with length, resolution and frame rate, which are the inputs you do own. The encode is H.264 at CRF 20, so bitrate follows the footage. If a platform sets a hard bitrate floor, probe the delivered MP4 and see whether it passes before you upload.

Is the 400 a bug?

No. It is the contract: it keeps every render reproducible and keeps filtergraph text out of requests. Remove the field and resend; a 400 means no job was created, so nothing was billed.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume