Mastodon video upload: 99 MB, one video, transcoded to 1300 kbps

Mastodon takes one video per post, up to 99 MB, and transcodes it to H.264 MP4 at up to 1300 kbps. What to send from Sume so the re-encode costs less quality.

4 min readSume
All posts

Mastodon allows one video per post, up to 99 MB, in MP4, M4V, MOV or WebM, and then transcodes it to H.264 MP4 with a maximum bitrate of 1300 kbps and a frame rate up to 120 fps. Because of that second step, the quality limit is the server's bitrate, not your file: a 40 MB 4K clip and a tidy 720p clip both end up squeezed to the same ceiling. Send the smaller, cleaner file.

Limits on the page

Mastodon posting docs, read 2026-10-02
ItemValue
Video sizeUp to 99 MB
FormatsMP4, M4V, MOV, WebM
TranscodeH.264 MP4, maximum 1300 kbps, up to 120 fps
Videos per postOne
Images per postUp to 4
Animated GIFs / audio filesOne each per post

What to send

Since the server re-encodes anyway, a smaller frame size loses little. With Sume, video trim in exact mode lets you set output to a width and height between 256 and 2160 and an fps of 24, 25, 30 or 60. A 720p output at 30 fps is a reasonable choice for a feed whose ceiling is 1300 kbps. Cut the length with start plus end or duration at the same time and one job ($0.02) does both.

import json

body = {
    "video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4",
    "start": 0,
    "duration": 45,
    "precision": "exact",
    "output": {"width": 720, "height": 1280, "fps": 30},
}
print(json.dumps(body, indent=2))
# POST to https://api.sume.com/v1/video-trim with an Idempotency-Key header

Check the size

After the job completes, probe the new MP4 with video inspect and compare probe.size_bytes with 99 MB (about 103,809,024 bytes if you read MB as MiB, or 99,000,000 if decimal; use the smaller to be safe).

Captions before you post

Mastodon's transcode keeps picture and sound but not a text track you did not attach, so burned-in captions are the portable option. Video captions burns styles such as slam or black-outline onto a clip for $0.20 per job up to 60 seconds. Captions are drawn once into the pixels, so do the resize first and caption the final frame size, then confirm the text is still legible at 720p.

Limits

Sume has no bitrate field, so you cannot target 1300 kbps yourself; your control is length and frame size. The page does not state a duration cap, and individual servers can set their own limits, so a particular instance may refuse a file the docs allow. Alt text and captions are separate steps; for the size question alone, see Mastodon video size limit.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume