YouTube Shorts video specs: 3 minutes, square or vertical
YouTube treats square or vertical uploads up to 3 minutes as Shorts and recommends MP4, H.264, AAC-LC, and 48 kHz. How Sume output compares.

A YouTube Short is a video up to 3 minutes long with a square or vertical aspect ratio. For the file itself, YouTube's recommended upload settings are MP4 with the moov atom at the front, H.264 High Profile with a closed GOP of half the frame rate, 4:2:0 chroma, and AAC-LC, Opus, or Eclipsa Audio at 48 kHz. Sume makes the shape and length with 9:16 or 1:1 generation and Timeline 1.0. Its Timeline, filter, and exact-mode trim encodes share the MP4 fast-start layout, H.264, 4:2:0, and AAC-LC, but not the GOP length or YouTube's 384 kbps stereo audio bitrate.
YouTube's rules are quoted from three YouTube Help pages read on 2026-09-27: Upload YouTube Shorts, Understand three-minute YouTube Shorts, and recommended upload encoding settings. The encoding page contradicts itself: it opens with “These features are only available to partners who use YouTube Studio Content Manager”, then calls the list “recommended upload encoding settings for your videos on YouTube”. Treat it as recommendations. Sume facts come from Timeline 1.0, Video trim, and Audio detach.
What makes a video a YouTube Short?
Length and shape. The Shorts pages name no resolution or frame rate:
- A Shorts upload is up to 3 minutes, with a square or vertical aspect ratio.
- On standard channels, square or vertical videos up to three minutes uploaded on or after October 15, 2024 are categorized as Shorts.
- To keep a video out of Shorts, YouTube says to use a wider aspect ratio such as 16:9.
How do I make a Short-shaped video with Sume?
Generate 9:16 or 1:1 on a model that lists it (ratios by model); avatar video is 9:16 by default and also takes 1:1. One generated clip runs up to 30 seconds, and avatar video takes scripts Sume estimates at 4–60 seconds, so longer Shorts are Timeline assemblies (cutting long videos is a separate job).
Timeline takes 1–1,800 seconds, so keep audio.duration_seconds at 180 or less. It renders 1080×1920 by default; output: { width: 1080, height: 1080 } makes a square. Today its sound comes from the audio spine, such as a voiceover or a detached track:
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: short-001" \
-d '{
"audio": {
"url": "https://media.sume.com/artifacts/artf_demo/voice.wav",
"duration_seconds": 45
},
"video": [
{ "source_url": "https://media.sume.com/artifacts/artf_demo/a.mp4", "start": 0, "duration": 15 },
{ "source_url": "https://media.sume.com/artifacts/artf_demo/b.mp4", "start": 15, "duration": 15 },
{ "source_url": "https://media.sume.com/artifacts/artf_demo/c.mp4", "start": 30, "duration": 15 }
]
}'How does Sume's encode compare with YouTube's settings?
Sume's column describes a Timeline render, from the docs and the compiler code as it runs today; filter and trim's default exact mode use the same codec, pixel format, and audio settings.
| Setting | YouTube recommends | Sume's encode today |
|---|---|---|
| Container | MP4, moov atom at the front (Fast Start), no edit lists | MP4 with +faststart, which moves the moov atom to the front; edit lists not described |
| Video codec | H.264, progressive, High Profile, 2 consecutive B-frames, CABAC | H.264 (libx264); scan, profile, B-frames, and CABAC not stated |
| GOP | Closed, half the frame rate | Capped at one second (maximum GOP size set to the frame rate); closure not stated |
| Chroma | 4:2:0 | yuv420p (4:2:0) |
| Frame rate | Same as recorded | Timeline follows the sources when output.fps is omitted; trim inherits |
| Video bitrate | Variable, no limit required; 1080p SDR 8 Mbps at 24, 25, or 30 fps | Constant-quality CRF, no bitrate target |
| Audio | AAC-LC, Opus, or Eclipsa Audio; stereo; 48 kHz; 384 kbps stereo | AAC, FFmpeg's default LC profile, 192 kbps; no sample-rate or channel field |
Which differences can I fix?
Run a free frames: false inspect to read fps, audio_sample_rate, and audio_channels. Its probe doesn't report profile or GOP, so check those with your own tool.
- Sample rate: detach the audio with
sample_rate: 48000, use that file as the Timelineaudio.url, and confirmaudio_sample_rateon the result. - Frame rate: YouTube asks for the recorded rate. Leave
output.fpsout and the render runs at the rate the sources already run at, with the longest sources deciding; an explicit rate that differs from a source's repeats or drops frames. - Stereo: detach's
channelstakes onlysourceormono, so start from a stereo track. - GOP length and audio bitrate can't be changed: callers never send codec settings.
How do I caption a Short?
Burn captions with POST /v1/video-captions and move the line with design.placement.anchor_ratio; the three YouTube pages cited here give no caption safe zone. Today the caption route refuses sources longer than 60 seconds, so caption a 3-minute Short in parts of 60 seconds or less before assembly (long-video captions). For the thumbnail, see a frame as the thumbnail.
Sources
- YouTube Help: Upload YouTube Shorts (read 2026-09-27)
- YouTube Help: Understand three-minute YouTube Shorts (read 2026-09-27)
- YouTube Help: YouTube recommended upload encoding settings (read 2026-09-27)
- FFmpeg Formats Documentation (read 2026-09-27)
- FFmpeg Codecs Documentation (read 2026-09-27)
- Video generation
- Generate avatar video
- Timeline 1.0
- Video trim
- Audio detach
- Video inspect
- Video captions
- API reference
- Sume API reference
Related posts
More in Media tools
- 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.
- Trim, filter, or detach audio from a video with the Sume API
Video trim cuts a range into a new MP4, video filter dims or crops into a new MP4, and audio detach extracts a wav or mp3. Each takes one Sume-hosted clip.
Written by Sume