How to make telegram stickers from a video clip
- Step 1Cut the clip to a ~3-second loop — Telegram's animated stickers are short. Trim to the punchy 2–3 seconds with lossless-trimmer (stream-copy, no re-encode), then bring that clip here. A tight loop both meets Telegram's guidance and keeps the WebP small.
- Step 2Square it off if it isn't already (optional) — Telegram stickers fit a 512×512 box; a 16:9 clip will scale to 512×288 and sit in a letterboxed slot. If you want a true square sticker, crop to 1:1 first with video-cropper, then convert.
- Step 3Drop the clip onto the converter — The picker accepts mp4, mov, mkv, webm, avi, m4v, and ts. FFmpeg.wasm decodes it in your browser — nothing uploads. One clip per run.
- Step 4Set Width to 512 — Telegram caps stickers at 512px on the long edge. Set Width to 512; height auto-scales from the source aspect via
scale=512:-1:flags=lanczos. For a square source that yields 512×512 exactly; for 16:9 it yields 512×288, which Telegram accepts (one side 512, the other ≤512). - Step 5Set FPS to 24–30 and pick Quality — Telegram's sticker guidance allows up to 30 FPS — set FPS to 30 for the smoothest motion, or stay at the 24 default to save bytes. Quality 80 is a good balance; nudge down to 70 if the file is heavier than you'd like for a sticker.
- Step 6Run, then upload to @Stickers — Click Run; the looping
.webpdownloads. In Telegram, open @Stickers → /newpack (or /addsticker), send the.webp, assign an emoji, and publish. The animated WebP plays as a sticker in any chat.
Telegram sticker targets mapped to converter controls
Telegram's documented animated-sticker expectations and the setting that satisfies each. Telegram occasionally revises sticker specs; check @Stickers if a file is rejected.
| Telegram expectation | Converter control | Recommended value |
|---|---|---|
| Fit a 512×512 box (one side = 512, other ≤512) | Width | 512 (height auto-scales to fit) |
| Short loop (~3 seconds) | Source length (trim first) | Trim to 2–3s before converting |
| Up to ~30 FPS | FPS | 24 (default) or 30 for smoothest |
| Reasonable file size | Quality | 80; drop toward 70 if heavy |
| Animated WebP, looping | Output format (fixed) | .webp, -loop 0, audio stripped |
What different sources produce at Width 512
Because only width is set and height auto-scales, the source aspect ratio decides the final box. All accepted within a 512×512 sticker frame.
| Source aspect | Output at Width 512 | Sticker note |
|---|---|---|
| 1:1 (square) | 512 × 512 | Fills the box exactly — ideal sticker shape |
| 16:9 (landscape) | 512 × 288 | Letterboxed top/bottom in chat; accepted |
| 9:16 (portrait) | 512 × 911 → exceeds box | Long edge over 512 — crop or resize first |
| 4:5 (portrait-ish) | 512 × 640 → exceeds box | Long edge over 512 — set Width lower or crop to fit |
Cookbook
Real clip-to-sticker conversions with the controls that fit Telegram's 512 box. Trim and (if needed) crop before converting.
Square meme clip → 512×512 sticker
A 1:1 meme clip already squared in an editor. Setting Width to 512 produces a perfect 512×512 animated sticker that fills Telegram's box.
Source: meme-square.mp4 (2.5s, 720×720, 30fps) Controls: FPS 30 · Width 512 · Quality 80 FFmpeg (libwebp): -vf fps=30,scale=512:-1:flags=lanczos -loop 0 -q:v 80 -an Result: sticker.webp (512×512, looping) ~280 KB → Send to @Stickers, assign emoji, publish.
Landscape clip accepted as a letterboxed sticker
A 16:9 reaction clip. At Width 512 it becomes 512×288 — the long edge is 512, the short edge under 512, so Telegram accepts it. It shows letterboxed in chat, which is fine for many reaction stickers.
Source: reaction-16x9.mp4 (3.0s, 1920×1080) Controls: FPS 24 · Width 512 · Quality 80 → sticker.webp 512×288, looping Telegram: one side = 512, other = 288 ≤ 512 → accepted. Want a full square instead? Crop to 1:1 first.
Portrait clip needs cropping (long edge would exceed 512)
A 9:16 phone clip at Width 512 becomes 512×911 — the long edge is 911, over the box. The fix is to crop to a square (or near-square) before converting, not to fight the width.
Bad: portrait.mp4 (9:16) at Width 512 → 512×911 (rejected)
Fix workflow:
1. video-cropper → crop centre to 1:1 (720×720)
2. video-to-webp → FPS 24 · Width 512 · Quality 80
→ 512×512 sticker, acceptedTrim first to hit the ~3-second guidance
A 9-second clip is too long for a snappy sticker. Trimming to the best 3 seconds before converting keeps it on-spec and small.
Source: long-clip.mov (9.0s)
1. lossless-trimmer → 3.0s loop (stream-copy, no re-encode)
2. video-to-webp → FPS 24 · Width 512 · Quality 80
→ ~3s looping sticker, well under typical sizeShrink a too-heavy sticker with the quality dial
A busy, high-motion sticker came out heavier than you'd like. Drop quality before touching FPS — a sticker is small on screen, so 70 is hard to distinguish from 80.
Source: high-motion.mp4 (3.0s, 512px) Quality 85 → 520 KB Quality 75 → 360 KB (barely distinguishable at sticker size) Quality 65 → 250 KB If edges/text get blocky, raise quality back and lower FPS instead.
Edge cases and what actually happens
@Stickers rejects the file for being too large on one side
Resize / cropTelegram needs the long edge at 512 and the other side ≤512. Portrait sources (9:16, 4:5) at Width 512 produce a height over 512 and get rejected. Crop to square/near-square with video-cropper first, or set Width low enough that the auto-scaled height lands ≤512.
Sticker plays once instead of looping
Always loopsThis won't happen — the encoder hardcodes -loop 0 (infinite). Every WebP from this tool loops continuously, which is exactly what a Telegram sticker should do. There is no loop-count control to misconfigure.
Source audio in the clip
Stripped (by design)Stickers are silent. The encoder runs -an, so any audio in the source clip is dropped automatically — there's nothing extra to do. If you wanted the sound, a sticker is the wrong format entirely.
Clip is longer than Telegram's short-loop guidance
Trim firstTelegram's animated stickers are meant to be short (~3 seconds). A long source converts fine technically but makes a sluggish, heavy sticker and may be rejected. Trim to the essential 2–3 seconds with lossless-trimmer before converting.
Wanting true square but source is 16:9
Crop firstAt Width 512 a 16:9 clip becomes 512×288 (letterboxed). That's accepted but not a full square. For an edge-to-edge square sticker, crop the source to 1:1 with video-cropper before converting — there's no aspect-fill or pad control in this tool.
Setting Width above 512 for a sticker
Over specThe Width field allows up to 1920, but Telegram stickers cap at 512 on the long edge. Going higher just makes a file Telegram will reject and that's heavier than needed. Keep Width at 512 for stickers.
File exceeds your tier's size limit
413 tier limitGating is by file size, not duration: Free 1 GB / 1 file; Pro 10 GB / 5 files; Pro-media 100 GB / 50 files; Developer 100 GB / unlimited. A sticker source is tiny, so this only bites if you drop a giant raw file — trim it first.
Decode fails on an exotic container
WebP encode failedAccepted inputs are mp4, mov, mkv, webm, avi, m4v, and ts; other extensions are read as MP4 and may fail. If you get a 'WebP encode failed' error, re-wrap the clip to a clean MP4 with video-transcoder and convert again.
Frequently asked questions
What size should a Telegram sticker be?
Telegram fits stickers in a 512×512 box: one side must be exactly 512 and the other 512 or smaller. Set Width to 512 here and height auto-scales from your source aspect. A square source gives 512×512; a 16:9 source gives 512×288 (accepted, letterboxed). Portrait sources can exceed 512 on the long edge, so crop them first.
How many FPS can a Telegram sticker have?
Telegram's animated-sticker guidance allows up to about 30 FPS. Set FPS to 30 for the smoothest motion, or leave it at the 24 default to keep the file smaller — at sticker size 24 already looks smooth.
How long can the sticker be?
Keep it short — Telegram's animated stickers are built around roughly 3-second loops. Trim the clip to its best 2–3 seconds with lossless-trimmer before converting; a long sticker feels sluggish and weighs more.
Will the sticker loop automatically?
Yes. The encoder always sets -loop 0 (infinite loop), so your sticker plays continuously in chat with no extra setting. There's no loop-count field to get wrong.
Does my clip get uploaded anywhere?
No. Conversion runs entirely in your browser via FFmpeg.wasm — the clip never leaves your machine and never touches a server. That's the whole point: your private meme or in-joke stays local. Only an anonymous processed-file counter is recorded if you're signed in.
My portrait clip won't fit — what do I do?
A 9:16 or 4:5 source at Width 512 produces a height over 512, which Telegram rejects. Crop it to a square (or near-square) with video-cropper first, then convert at Width 512. There's no auto-pad or aspect-fill control here.
How do I actually add the WebP to a sticker pack?
In Telegram, message @Stickers, use /newpack to start a pack (or /addsticker to extend one), send your downloaded .webp, assign an emoji, and publish. The animated WebP from this tool is the exact format @Stickers expects.
What input formats can I drop in?
video/* plus .mp4, .mov, .mkv, .webm, .avi, .m4v, and .ts. Unrecognised extensions are read as MP4 and may fail to decode — re-wrap to MP4 first if so.
Why is there no audio in my sticker?
Stickers are silent, and the encoder strips audio with -an. There's nothing to configure — the source track is simply not carried into the WebP.
Can I make several stickers at once?
Not in one run — this tool converts a single file per run. Convert each clip individually, then add them to the same pack in @Stickers. (Batch counts in the tier table apply to tools that accept multiple files; this one does not.)
The sticker looks blocky — how do I fix it?
Raise Quality (try 85–90) rather than width. If it's still rough on text or sharp edges, the source may be low-resolution or heavily compressed already; start from a cleaner source. Blockiness from too-low quality shows on edges first.
Should I use WebP or GIF for Telegram?
WebP — Telegram's sticker pipeline is built around animated WebP, and it's smaller and cleaner than GIF. Use video-to-gif only for surfaces outside Telegram that can't render WebP.
Privacy first
Every JAD Video tool runs entirely in your browser via WebCodecs and FFmpeg (WebAssembly). Your video files never leave your device — verified by zero outbound network requests during processing.