LinkedIn video ad codec: H.264 or VP8, under 30 fps, one trim job

LinkedIn lists MP4, H.264 or VP8, AAC audio and a frame rate under 30. One video trim exact job at $0.02 writes H.264 with AAC and can set 25 fps.

5 min readSume
All posts

LinkedIn's video ad page lists an MP4 file, the codec "H.264 or VP8", audio "AAC or MPEG4", and a frame rate of "less than 30 FPS" (read 2026-10-09). A video trim job with precision exact writes H.264 (libx264) with kept audio remuxed as AAC, and its output object can set fps to 24 or 25, the only two Sume values strictly under 30. One job, $0.02.

The same page gives a length of three seconds to 30 minutes, a file size of 75 KB to 500 MB, and ratios from 16:9 to 9:16. This post is only about codec and frame rate.

Map each LinkedIn line to a trim field

Video trim exact accepts an output object with width and height between 256 and 2160 and fps of 24, 25, 30 or 60. Precision keyframe cannot take output at all (video_trim_output_requires_exact). So the frame-rate line forces exact.

LinkedIn video lines against video trim, read 2026-10-09 / 2026-10-08
LinkedIn linevideo trim fieldValue to send
MP4(output container)MP4 artifact
H.264 or VP8precisionexact (libx264, yuv420p)
AAC or MPEG4 audioaudiokeep (default), remuxed as AAC
Frame rate under 30output.fps24 or 25, not 30
9:16 at 720x1280 (listed example)output.width / output.height720 / 1280

The request

Import the clip first, then send one trim job. The body below keeps seconds 0 to 30, which fits LinkedIn's recommended 15 to 30 second range, and conforms it to 720x1280 at 25 fps. Add an Idempotency-Key header.

{
  "video_url": "https://media.sume.com/artifacts/artf_demo/ad.mp4",
  "start": 0,
  "duration": 30,
  "precision": "exact",
  "audio": "keep",
  "output": { "width": 720, "height": 1280, "fps": 25 }
}

Check the result

After the job finishes, GET /v1/jobs/:id/result returns kind video_trim with video_url, duration_seconds, actual_start_seconds, precision, audio and output. Confirm that output echoes 720, 1280 and 25, then pull two stills with video frames at times 0 and 15 to see the first and middle frame at source-independent size. Each frames call is limited to 24 stills and a source of 300 seconds or less, which a 30-second ad is well inside.

Frame rate is the line people miss. Many phone and screen-recording files are 30 fps, and an upload tool may accept them while LinkedIn's own page asks for less than 30. Conforming in the same trim job costs nothing extra because it is the same $0.02 encode. Compare that to a separate conform step in a desktop editor where the export settings must be set by hand for each file.

Other lines on the same LinkedIn page

The size window is 75 KB to 500 MB, and the page lists length from three seconds to 30 minutes, with 15 to 30 seconds recommended and in-stream ads up to 90 seconds. Resolutions listed include 1920x1080 or 1200x675 for 16:9, 720x900 recommended for 4:5, and 720x1280 for 9:16 with a minimum of 360x640 and a maximum of 1080x1920. Captions must be SRT with only text. Audio is listed as AAC or MPEG4. Sume never claims a bitrate, because the LinkedIn page names none and the trim API has no bitrate field.

Why not 30 fps

The page says less than 30, and 30 is not less than 30. Sume cannot output 29.97 or 29; its list is 24, 25, 30, 60. Choose 25 for a sync with common European sources or 24 for film-rate. If your source is 30 fps, conforming to 25 drops frames and can look slightly uneven on fast motion, so check a few stills with video frames afterward.

A caution on VP8: Sume's trim doc describes libx264 output only. If you want VP8 you would need to produce it outside Sume; H.264 is on LinkedIn's list, so there is no need.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume