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.

5 min readSume
All posts

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).

Our arithmetic, rounded to whole pixels, on the frame sizes from YouTube's Video resolution & aspect ratios, read 2026-09-28.
Look1280×7201920×10803840×2160
2.40:193 px each, 534 px picture140 px each, 800 px picture280 px each, 1600 px picture
2.39:192 px each, 536 px picture138 px each, 804 px picture277 px each, 1606 px picture
2.35:188 px each, 544 px picture131 px each, 818 px picture263 px each, 1634 px picture
2:140 px each, 640 px picture60 px each, 960 px picture120 px each, 1920 px picture
1.85:114 px each, 692 px picture21 px each, 1038 px picture42 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 drawbox docs outline a 2.40:1 mask with the same arithmetic: the picture is iw/2.4 tall and starts 0.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.mp4

How 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/check runs 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.
  • drawbox and crop are on the filter allowlist in current code. A filtergraph is 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

All Media tools posts

Written by Sume