Guides

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 3Caps the output at 3 seconds. Trim your clip first if you want a different 3 seconds; this simply takes the first three.
-anDrops the audio stream entirely. A silent track still fails.
fps=30Phone video is often 60 FPS. This halves it, which also halves what the bitrate has to pay for.
scale=512:512:
force_original_aspect_ratio=decrease
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 400kKeeps 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 sendingAlmost always an audio stream that survived. Check with ffprobe.
"Wrong dimensions"Neither side is exactly 512. Scaling to "fit inside" fixes it.
Sticker looks jerkyThe 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.