How to make a Telegram video sticker
From a video clip on your phone or your computer · last checked August 2026
Telegram's built-in sticker editor is good, but it only makes stickers from photos. If you want a short looping clip as a sticker, you have to produce the file yourself and hand it to Telegram. There are two honest ways to do that, and the right one depends on whether you want to open a terminal.
What Telegram will accept
Every route below has to end with a file that satisfies these, or Telegram rejects it: one side exactly 512 px, VP9 video in a .WEBM container, under 256 KB, at most 3 seconds, at most 30 FPS, and no audio stream. The full list with the traps is on the requirements page.
Option 1: on your iPhone, no terminal
This is what we built Weejistick for. Pick a clip, trim it, crop it, choose how it loops, and it encodes a spec-valid sticker and hands it to Telegram in one tap. The encoding runs on the phone, so the video never leaves your device and never touches a server, ours or anyone else's. There is no account and no login.
Making stickers is free. Free stickers carry a small corner watermark, and a one-time unlock removes it. There is no subscription.
Get Weejistick on the App Store
Android? The tools below work anywhere, and there are other apps that do this. We only make the iPhone one, so we would rather point you at the manual route than pretend otherwise.
Option 2: free, by hand, with ffmpeg
If you have ffmpeg, one command does the whole conversion. This is the exact command we test against, and it produces a valid sticker from a normal phone video:
ffmpeg -i input.mp4 -t 3 -an \
-vf "fps=30,scale=512:512:force_original_aspect_ratio=decrease" \
-c:v libvpx-vp9 -b:v 400k -y sticker.webm
Piece by piece, because every flag is there to satisfy a specific rule:
-t 3 | Caps the output at 3 seconds. Trim your clip first if you want a different 3 seconds; this simply takes the first three. |
|---|---|
-an | Drops the audio stream entirely. A silent track still fails. |
fps=30 | Phone video is often 60 FPS. This halves it, which also halves what the bitrate has to pay for. |
scale=512:512: |
Fits the frame inside 512×512 without distorting it, which puts the longest side on exactly 512 and leaves the other below. A portrait 1080×1920 clip comes out 288×512. |
-b:v 400k | Keeps you under the 256 KB ceiling with room to spare: 400 kbit/s across 3 seconds is about 150 KB. |
On a 6-second 1080×1920 60 FPS test clip with audio, that command produces a 288×512 VP9
file of 112 KB at exactly 3.00 seconds with no audio stream. Comfortably inside every limit. If your own
clip comes out larger, lower -b:v and re-run; if it looks soft, raise it and check the size
stayed under 262144 bytes.
Getting the file into Telegram
Open @Stickers in Telegram, send /newvideopack, give
the pack a name, then send your .webm as a file, not as a video. This matters: if you
send it as a video, Telegram re-encodes it and the sticker is rejected. Assign an emoji to each sticker,
then send /publish.
Send as file, every time. On mobile, use the attachment menu and choose File rather than Gallery. This one detail causes most of the "my sticker was rejected and I don't know why" posts.
When it gets rejected anyway
| "File is too big" | Over 256 KB. Lower -b:v, or shorten the clip. |
|---|---|
| "Wrong file format" | Usually not VP9, or sent as a video instead of a file. VP8 will not
do; the codec must be libvpx-vp9. |
| Nothing happens after sending | Almost always an audio stream that survived. Check with
ffprobe. |
| "Wrong dimensions" | Neither side is exactly 512. Scaling to "fit inside" fixes it. |
| Sticker looks jerky | The 256 KB budget is tight. Cut the duration rather than the quality, since fewer frames means more bits for each one. |
Why not just use Telegram's own editor?
You should, for photos. Telegram's built-in sticker editor does one-tap background removal, text and drawing, and it is free and right there in the app. It does not, however, turn your own video clips into video stickers, which is the gap both options above are filling.
Requirements are from Telegram's sticker documentation. The ffmpeg command was run and its output verified against the spec before publishing.