LinkedIn Page video max ratio 2.4:1: crop a 32:9 recording
LinkedIn Pages accept video from 1:2.4 to 2.4:1 and up to 4096x2304. A 5120x1440 ultrawide capture fails both. Crop it with Sume video filter to fit.

A 32:9 ultrawide screen recording at 5120x1440 breaks two LinkedIn Page video rules at once. Its ratio is 3.56:1, past the 2.4:1 limit, and its width is past the 4096 pixel ceiling. A centered crop that keeps 66% of the width, which is width: 0.66 in Sume's video filter, gives about 3379x1440, a ratio near 2.35:1 and a width under 4096. This post shows the arithmetic and the call.
The two LinkedIn rules
The Pages and Career Pages video specification (read 2026-10-08) lists a resolution range of 256x144 to 4096x2304 and an aspect ratio of 1:2.4 to 2.4:1. Duration is 3 seconds to 10 minutes, size is 75 KB to 5 GB, and frame rate is 10 to 60 fps. Only the first two matter for this clip.
| Check | LinkedIn limit | Source clip | After crop width 0.66 |
|---|---|---|---|
| Width | 4096 max | 5120 | about 3379 |
| Height | 2304 max | 1440 | 1440 |
| Aspect ratio | 2.4:1 max | 3.56:1 | about 2.35:1 |
| Ratio check | pass at or below 2.4 | fail | pass |
The arithmetic
Keep the full height of 1440 and solve for width: 2.4 x 1440 = 3,456 pixels, which is a width fraction of 3456 / 5120 = 0.675. Taking exactly 0.675 puts you on the limit, and rounding to even pixels could tip it over, so use 0.66 and keep a margin. 0.66 x 5120 = 3,379.2, which Sume's compiler rounds to an even size. Center it with x = (1 - 0.66) / 2 = 0.17.
The crop op takes fractions of the source frame, so you never need the pixel size in the request. x and y are in [0, 1], width and height in [0.05, 1], and x + width must stay at or below 1. Here 0.17 + 0.66 = 0.83.
{
"video_url": "https://media.sume.com/artifacts/artf_demo/ultrawide.mp4",
"ops": [
{ "op": "crop", "x": 0.17, "y": 0, "width": 0.66, "height": 1 }
]
}Check before you pay
Send the same body to POST /v1/video-filter/check. It runs the schema, op and source checks and returns diagnostics without creating a job, reserving credits or encoding. A valid check returns encode: "not_run" and an estimate. Then send it to POST /v1/video-filter with an Idempotency-Key. The encode is $0.02 at the public rate.
Limits: the filter source can be at most 300 seconds, so a long recording needs a trim first, and the output keeps the source frame rate and audio. When the job is result_ready, GET /v1/jobs/:id/result returns the new video_url; probe it with video inspect and compare width, height and fps with the table.
Limits of the approach
Cropping throws away the left and right 17% of the screen, so the content has to be centered in the capture. If it is not, change x. If the key action runs across the full width, a crop is the wrong tool; scale the whole frame into a standard ratio in a Timeline render with fit: contain or blur instead. Sume's docs describe the four fit modes (cover, contain, stretch, blur) but say nothing about LinkedIn, so check the first upload on the Page. Also note that a 3379x1440 clip still looks like a thin strip on a phone; at the 2.4:1 limit the picture is about 23% of the height of a portrait phone screen (a width of W gives a picture height of W / 2.4 on a screen that is 16W / 9 tall), so keep text large.
Sources
Related posts
More in Media tools
- MAI-Voice 24 kHz 160 kbps MP3 vs Sume TTS 44.1 kHz 128 kbps: mixing
Microsoft's MAI-Voice example saves 24 kHz 160 kbps mono MP3; Sume TTS defaults to 44.1 kHz 128 kbps MP3 or WAV. What the numbers mean for mixing and file size.
- Music from a still: image_url conditioning, still $0.125
The Music Router accepts an optional public HTTPS image_url to condition the track on a still. Request example, keeping a score consistent, fixed price.
- Remove backgrounds from 500 product photos: RMBG API cost and code
Sume RMBG 1.0 removes a background for $0.0225 per image regardless of size. Batch cost for 50 to 5,000 photos, the request body and a Python loop.
- TikTok trending search: 10 or 50 results, both $0.10
A Sume trending-videos search is $0.10 per accepted call whatever the limit. In production the limit runs 1 to 50 with a default of 10. Fields and a curl.
Written by Sume