Sume Timeline output: H.264, AAC 192k and 1-second keyframes

What a Timeline 1.0 MP4 contains for a Reel, Short or TikTok upload: libx264 CRF 20, yuv420p, AAC 192k, faststart, 1-second keyframes, and what you cannot set.

5 min readSume
All posts

A Timeline 1.0 render is an H.264 MP4 in yuv420p with AAC audio at 192k, written with the moov atom up front (+faststart) and a keyframe every second. The compiler encodes with libx264 at -preset veryfast -crf 20. You do not choose the codec, the CRF or the preset: those keys are refused with a 400. This is read from the compiler source in the Sume repository on 2026-10-06.

What is in the MP4?

The one-second GOP exists so later caption burns can seek cleanly. It is a consequence of the compiler, not a documented knob.

Encode settings from the Timeline compiler (read 2026-10-06)
SettingValueWhy it matters for upload
Video codecH.264 (libx264)The codec Reels guides recommend, per Postfa
Pixel formatyuv420pPlays everywhere, including phones
Rate controlCRF 20, preset veryfastQuality-targeted, so the bitrate follows the content
KeyframesEvery 1 second (GOP equals fps)Caption burn and seeking land on a keyframe
AudioAAC 192kAbove typical short-form minimums
ContainerMP4, +faststartStarts playing before the full download
LengthSet by -t to the declared lengthMatches audio.duration_seconds

Can I change the codec or bitrate for TikTok or Reels?

No. Sending codec, crf, preset, video_codec, audio_codec, ffmpeg_args or similar returns a 400, because the server compiles ffmpeg and callers never send filtergraphs or codecs. What you can steer is size and rate: the length, the output.width and output.height (even integers from 256 to 2160) and output.fps of 24, 25, 30 or 60. Leaving output.fps out matches the sources.

How do I check the delivered file?

Fetch video_url from GET /v1/jobs/:id/result, then probe it with video inspect and frames: false. The probe tells you the width, height and duration so you can confirm 1080x1920 before you upload.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume