Cinematic bars size: bar height for 2.39:1 and 2.35:1
Cinematic bars on a 1920×1080 video are 138 px each for 2.39:1 and 131 px for 2.35:1. The formula, sizes for 720p to 4K, and how to add them.

Cinematic bars on a 1920×1080 video are 138 pixels tall each for the 2.39:1 widescreen look and 131 pixels each for 2.35:1, leaving a picture 804 or 818 pixels tall. For any frame and ratio, each bar is (frame height − frame width ÷ ratio) ÷ 2.
The bar sizes are our arithmetic. FFmpeg syntax comes from its filters and ffmpeg documentation, YouTube's advice from its Help page Video resolution & aspect ratios, and the Sume facts from the Video filter docs, all read on 2026-09-28. Anything described as current behavior is read from Sume's code.
What size are cinematic bars at 720p, 1080p, and 4K?
Each cell gives the height of one bar, top or bottom, and the picture left between them. The frames are the 16:9 sizes YouTube lists for 720p, 1080p, and 2160p (4K).
| Look | 1280×720 | 1920×1080 | 3840×2160 |
|---|---|---|---|
| 2.40:1 | 93 px each, 534 px picture | 140 px each, 800 px picture | 280 px each, 1600 px picture |
| 2.39:1 | 92 px each, 536 px picture | 138 px each, 804 px picture | 277 px each, 1606 px picture |
| 2.35:1 | 88 px each, 544 px picture | 131 px each, 818 px picture | 263 px each, 1634 px picture |
| 2:1 | 40 px each, 640 px picture | 60 px each, 960 px picture | 120 px each, 1920 px picture |
| 1.85:1 | 14 px each, 692 px picture | 21 px each, 1038 px picture | 42 px each, 2076 px picture |
How do I calculate the bar size for any ratio?
Work out how tall the picture would be at the frame's full width, then split what is left between the two bars:
- Divide the frame width by the ratio: 1920 ÷ 2.39 = 803.3 pixels of picture.
- Subtract that from the frame height and halve it: (1080 − 803.3) ÷ 2 = 138.3, so 138 pixels per bar.
- Round the bar, not the picture. On a frame with an even height, a whole-pixel bar leaves an even picture height (804), so both bars match.
- FFmpeg's own
drawboxdocs outline a 2.40:1 mask with the same arithmetic: the picture isiw/2.4tall and starts0.5*(ih-iw/2.4)from the top. - A ratio narrower than 16:9, such as 4:3, needs bars at the sides instead; see convert 4:3 video to 16:9.
How do I add cinematic bars with FFmpeg?
Draw two filled black boxes with the drawbox filter. x and y set a box's top-left corner, w and h its size, iw and ih are the input width and height, and t=fill fills the box. Filters work on decoded frames, so the video is re-encoded, while -c:a copy keeps the audio as it is. Swap 138 for the bar height from the table:
ffmpeg -i input.mp4 \
-vf "drawbox=x=0:y=0:w=iw:h=138:color=black:t=fill,drawbox=x=0:y=ih-138:w=iw:h=138:color=black:t=fill" \
-c:a copy letterbox.mp4How do I add cinematic bars with the Sume API?
Send the same two filters as the filtergraph of a video filter job. The clip must be your workspace's media.sume.com artifact or asset, such as an earlier Sume job's output; off-host URLs are rejected, and Sume's asset upload routes are hidden from the public OpenAPI (which URLs each endpoint accepts). The request below draws the 2.39:1 bars on a 1920×1080 clip.
POST /v1/video-filter/checkruns the same schema, allowlist, and source checks as the encode without creating a job or reserving credits. The docs warn that a program that passes can still fail when it runs.drawboxandcropare on the filter allowlist in current code. Afiltergraphis at most 2,048 characters and 32 filters.- The output inherits the source's geometry, frame rate, and audio unless the program changes them, so drawn bars keep the 16:9 frame. Sources can run up to 300 seconds.
- Each encode is billed per job, at a rate the docs say to confirm in
GET /v1/catalog, plus a 5.5% agent fee by default. The check is free.
curl -X POST https://api.sume.com/v1/video-filter \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: letterbox-239-001" \
-d '{
"video_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4",
"filtergraph": "drawbox=x=0:y=0:w=iw:h=138:color=black:t=fill,drawbox=x=0:y=ih-138:w=iw:h=138:color=black:t=fill"
}'Should I draw the bars or crop to 2.39:1?
Drawn bars cover part of the picture. At 2.39:1 on 1920×1080 they hide the top and bottom 138 rows, so keep faces and titles inside the middle 804.
For YouTube, its Help page advises against adding padding or black bars to the video itself, because its player adapts to each video's size. To get the wide look with no bars in the file, crop instead: crop=iw:804 gives the width, then the height, and FFmpeg's crop centers its window by default, so it keeps the full width and the middle 804 rows. It works as an FFmpeg -vf or as a Sume filtergraph, and the result is a 1920×804 file with no bars in it. To remove bars that are already there, see how to remove black bars from a video.
Sources
Related posts
More in Media tools
- How to combine photos and videos into one video
Combine photos and videos into one video on a single timeline: each photo held for a set time, each clip cut to length, one soundtrack under it all.
- How to convert frames to seconds (and back) at any fps
Seconds = frames ÷ fps, and frames = seconds × fps. How to convert frames and timecode at 24, 23.976, or 29.97 fps, and why Sume takes seconds.
- CTV ad specs: video rules from five streaming TV sellers
CTV sellers ask for 16:9 video, H.264 or ProRes, and two-channel audio, but each sets its own lengths and a bitrate floor from 5 to 15 Mbps.
- Dip to black transition: fade out and in between clips
A dip to black fades one clip out to black, then fades the next in from black. How to build one when a render's fade is a crossfade, and the limits.
Written by Sume