Telegram video emoji 100x100: Sume's 256 px floor and a square crop

Telegram video emoji must be exactly 100x100. Sume video trim outputs 256 px at minimum, so crop a square and cut in Sume, then downscale and encode outside.

5 min readSume
All posts

A Telegram video emoji has to be exactly 100x100 pixels, and Sume cannot produce that size: video trim conforms to 256 pixels at the smallest. What Sume can do is the creative half, a centered square crop of the best moment cut to 3 seconds with no audio. The final 100x100 downscale and the WEBM VP9 encode happen outside.

Requirements come from Telegram's Stickers page, read 2026-10-02. Sume facts come from Video filter and Video trim.

What does Telegram require for video emoji?

The page puts emoji at exactly 100x100 pixels and gives the same limits as video stickers: up to 3 seconds, up to 30 fps, up to 256 KB, WEBM with VP9, no audio stream, looped. For the sticker version, with the 512 side, see the video sticker post.

Why can't Sume output 100x100?

The video trim output conform accepts width and height from 256 to 2160. A value of 100 is refused, so do not plan on a one-call path. The same range applies to timeline output dimensions (even integers 256 to 2160). That is a design limit of the media tools, not a bug to retry around.

The practical plan: let Sume produce a clean 256 x 256 or larger square master, then do the last shrink in your own encoder, where you can also pick VP9 and watch the 256 KB budget.

How do I crop a square in Sume?

Video filter's crop op takes fractions of the source frame. For a 1920 x 1080 clip a centered square is 1080 pixels wide, which is 0.5625 of the width, with x = (1 - 0.5625) / 2 = 0.21875 and the full height. Width and height must each be at least 0.05 and x + width must not exceed 1. If your subject is off-center, move x, keeping x + width at or below 1. The compiler even-rounds the result for yuv420p.

Run the free check endpoint first, then the encode. The encode is a separate job at the public rate listed in the docs ($0.02 per job; confirm with GET /v1/catalog).

# free contract check, then the same body to POST /v1/video-filter with an Idempotency-Key
curl -X POST https://api.sume.com/v1/video-filter/check \
  -H "Authorization: Bearer $SUME_API_KEY" -H "Content-Type: application/json" \
  -d '{"video_url":"https://media.sume.com/artifacts/artf_demo/clip.mp4",
       "ops":[{"op":"crop","x":0.21875,"y":0,"width":0.5625,"height":1}]}'

Why bother with Sume at all if the last step is outside?

Because the hard part of a good emoji is choosing and framing the moment, not the final resize. Cropping with fractions means you can try three crops of the same clip in three cheap video filter jobs and compare stills with video frames, which is unbilled. Cutting with exact precision means the loop you chose is the loop you get, and dropping audio in the same call means you never ship an audio stream by accident.

The alternative, doing all of it locally, is fine if you already have an encoder set up. Sume earns its place when the clip lives in a pipeline already, for instance a generated clip stored on media.sume.com, and you want repeatable, scripted cuts rather than hand-editing each one.

One honest caution: a 256-pixel master shrunk to 100 pixels is a downscale of about 2.56 times per side, which is easy on quality. If you choose a master larger than 256 to keep detail for other uses, you only pay for time, not extra Sume jobs. Keep the master and generate the emoji from it, so you can redo the 100x100 step when Telegram's rules change.

What is the full chain?

Two details help the result. At 100 pixels fine detail disappears, so choose a close shot with one clear shape. And pick a loop-friendly cut, since Telegram asks for looping playback and Sume does not detect loop points for you.

  • Crop to a square with video filter; the result is a new MP4 and the source stays untouched.
  • Cut up to 3 seconds with video trim: duration 3, audio: "drop", output of { "width": 256, "height": 256, "fps": 30 } (both set is safe because the clip is already square).
  • Download the MP4, scale it to 100x100, encode to VP9 WEBM under 256 KB, and upload through Telegram's own sticker tools.

Sources

Related posts

More in Media tools

All Media tools posts

Written by Sume