How to convert video to a captioned gif
- Step 1Prepare or edit your subtitle file — Have an
.srtor.vttwith the caption text and timings. Fix typos in any plain-text editor first — once burned in, text can't be edited. For a short reaction, even a one- or two-line SRT is enough. - Step 2Burn the captions into the video — Open the subtitle burner, drop the video and the subtitle file, and export. It uses FFmpeg's
subtitlesfilter to hard-render the text into the frames. The output is a normal video with the captions now part of the image. - Step 3Trim if you only want the captioned moment — If the captioned video is long but you want a short GIF, cut the span with the lossless trimmer — the burned captions are already in the frames, so trimming keeps them.
- Step 4Drop the captioned clip onto this GIF tool — It loads into FFmpeg.wasm in your browser. Because the captions are already burned in, you don't need any text control here — just FPS and Width.
- Step 5Set width high enough for the text to stay readable — Burned captions shrink with the frame. Keep width at 480+ so the text doesn't blur. If captions were styled small in the SRT, go to 600+ or the lower-third text becomes illegible at GIF size.
- Step 6Convert and check the captions on the first loop — Run the two-pass encode, download the
.gif, and watch one loop. Captions should read clearly. If they blur, raise the width and re-run; if they're cut off at the bottom, the SRT positioning was outside the crop — re-burn with adjusted styling.
The captioned-GIF pipeline
Two tools, in order. The GIF tool can't add text — captions must be burned in first.
| Step | Tool | What it does | Output |
|---|---|---|---|
| 1 | subtitle-burner | Hard-renders SRT/VTT into the frames via the subtitles filter | Captioned video |
| 2 (optional) | lossless-trimmer | Cuts to the captioned moment, keyframe stream-copy | Short captioned video |
| 3 | video-to-gif (this tool) | Two-pass palette GIF of the captioned clip | Captioned .gif |
Keeping burned captions readable in GIF
Width is the main lever for caption legibility, since text shrinks with the frame. FPS doesn't affect text sharpness.
| Caption style | Recommended width | Note |
|---|---|---|
| Large centred text | 480 | Default is fine; text is big relative to frame |
| Standard lower-third | 600 | Small text needs more pixels to stay sharp |
| Two-line dense caption | 640+ | Dense text blurs at small widths |
| Any | — | FPS doesn't change text sharpness — only width does |
Why not soft subtitles in the GIF?
GIF has no subtitle track at all, so burning is the only option. Contrast with video formats.
| Format | Soft-sub track? | Captions in JAD |
|---|---|---|
| GIF | No (image-only format) | Must burn in first via subtitle-burner |
| MP4 / MKV | Yes (but players/socials may strip) | Burn with subtitle-burner for guaranteed display |
| Animated WebP | No (image-only) | Same: burn first, then video-to-webp |
Cookbook
Recipes for captioned GIFs. Every one starts by burning the text in, then converts the result with the two-pass palette.
Reaction GIF with a one-line punchline
A short clip plus a single SRT line. Burn it, trim to the moment, convert small for chat.
Step 1: subtitle-burner (clip.mp4 + punchline.srt)
-> captioned.mp4 (text baked into frames)
Step 2: lossless-trimmer -> captioned_2s.mp4
Step 3: video-to-gif: Width 480, FPS 15
-> captioned.gif (text readable, loops in chat)Explainer GIF for a README with two-line captions
Dense captions need more width to stay sharp. Burn, then convert at 640 px.
Step 1: subtitle-burner (demo.mp4 + steps.vtt) -> demo_cap.mp4
Step 2: video-to-gif: Width 640, FPS 12
scale=640:-1:flags=lanczos -> sharp two-line text
-> demo.gif (drops straight into a GitHub README)Captioned moment is buried in a long clip
Burn captions into the whole video, then trim just the captioned span you want as a GIF.
Step 1: subtitle-burner on the full 3-min clip
-> full_captioned.mp4
Step 2: lossless-trimmer -> moment_4s.mp4 (captions intact)
Step 3: video-to-gif: Width 520, FPS 14 -> moment.gifCaptions blurred — fix by raising width
First GIF at 360 px made the text unreadable. No re-burn needed; just convert the captioned clip at a larger width.
Was: video-to-gif Width 360 -> caption text blurred Now: video-to-gif Width 600 -> caption text sharp The captioned source is the same; only the GIF width changed. Width drives caption legibility, not FPS.
Captioned animated WebP instead of GIF
For a website or Telegram, swap the final step to WebP for a smaller captioned loop.
Step 1: subtitle-burner -> captioned.mp4
Step 2: video-to-webp: Width 600, FPS 15 -> captioned.webp
(~30% of the GIF size, captions still burned in)
Use GIF for Slack/Reddit; WebP for web/Telegram.Edge cases and what actually happens
Tried to add captions inside the GIF tool
Not supported hereThe GIF tool has only FPS and Width — no text overlay, no SRT input. Captions must be burned into the video first with the subtitle burner, then converted to GIF. There's no way to add text in the GIF step.
Caption text is blurry in the GIF
Width too lowBurned text shrinks with the frame. At 320–360 px small captions blur. Raise the GIF width to 480–640 and re-run — the captioned source is unchanged, so no re-burn is needed. FPS has no effect on text sharpness.
Captions are cut off at the bottom of the GIF
Re-burnIf the SRT styled the text near the very bottom edge, it can sit outside a frame that was later cropped. The GIF tool can't reposition text — re-burn with the subtitle styling moved up, or crop consistently before burning. The GIF step only scales, it doesn't move the caption.
Captions have a typo
Re-burn from sourceOnce burned, text is part of the image — you can't edit it in the GIF. Fix the typo in the .srt/.vtt, re-run the subtitle burner, then re-convert. Always proofread the subtitle file before burning.
Soft subtitles from the source MP4 disappeared
ExpectedGIF has no subtitle track, so any soft-sub stream in the source is dropped — only burned-in (hardsub) text appears. If your video has soft subs, run it through the subtitle burner first to bake them in, then convert.
Caption colour banded on the text edges
MitigatedSingle-pass converters band the anti-aliased edges of text. JAD's two-pass palette samples the actual colours including the caption's, so white-on-dark text renders cleanly. If you still see fringing, it's usually because the source caption used a thin font at a small width — raise the width.
Long captioned clip makes a giant GIF
By designThe GIF tool converts the whole clip. A long captioned explainer becomes a huge GIF. Trim to the captioned span with the lossless trimmer first, or split with video-splitter and make one GIF per section.
Captions move too fast to read in one loop
Slow it down firstIf captions flash by, the source pacing is too quick for a GIF loop. Slow the captioned clip with the speed controller before converting, so each caption stays on screen long enough to read.
Frequently asked questions
Can this tool add captions to a GIF directly?
No — the GIF tool has only FPS and Width controls and no text input. Captions have to be burned into the video first with the subtitle burner, which hard-renders your SRT/VTT into the frames. Then convert that captioned video to GIF here. GIF is an image-only format with no subtitle track.
What's the correct order — caption first or GIF first?
Caption first, GIF second. Burn the SRT/VTT into the video with the subtitle burner, then convert the captioned clip to GIF. If you GIF first, there's no way to add text afterwards because the GIF tool can't overlay text.
Will the burned captions survive the GIF conversion?
Yes — that's the whole point of burning. Once captions are rendered into the pixels by the subtitle burner, they're part of every frame and survive the GIF encode, downscaling, and any later re-share. The two-pass palette keeps the text edges clean.
What subtitle formats can I burn in?
The subtitle burner accepts .srt and .vtt. Edit the text and timings in any plain-text editor first to fix typos, since burned-in text can't be edited later. Then burn and convert to GIF.
My caption text is blurry — how do I fix it?
Raise the GIF width. Burned text shrinks with the frame, so at 320–360 px small captions blur. Re-run the GIF conversion at 480–640 px — you don't need to re-burn, because the captioned source is the same. Width is the only control that affects text sharpness; FPS doesn't.
Can I edit the captions after making the GIF?
No. Once burned, the text is part of the image and can't be edited in the GIF. To change it, fix the .srt/.vtt, re-run the subtitle burner, then re-convert. Always proofread the subtitle file before burning.
Why did my soft subtitles disappear in the GIF?
GIF has no subtitle track, so soft (selectable) subs from the source MP4/MKV are dropped — only burned-in text shows. Run the source through the subtitle burner to convert the soft subs to hardsubs, then make the GIF.
Is anything uploaded — my video or my SRT?
No. Both the subtitle burner and the GIF converter run entirely in your browser via FFmpeg.wasm. Your video and subtitle file are read and processed locally; nothing is sent to a server. That keeps internal or sensitive captioned clips private.
Captions flash by too fast in the loop — what now?
Slow the captioned clip down with the speed controller before converting to GIF, so each caption stays on screen long enough to read in a single loop. The GIF tool only changes FPS and width — it can't extend caption display time.
How do I make a small captioned GIF for chat?
Burn the captions, trim to the moment with the lossless trimmer, then convert at a moderate width (keep it 480+ so text stays readable) and FPS 12–15. Don't shrink width below ~480 with captions, or the text blurs — trim shorter to save size instead.
Should I use WebP for a captioned loop?
If the destination supports it (websites, Telegram, Signal), animated WebP gives the same burned-in captions at roughly 30% of the GIF size. Burn captions first either way, then choose GIF (for Slack/Reddit/legacy chat) or WebP (for modern web) as the final step.
Can I caption a reaction GIF this way?
Yes — it's the same workflow. Burn a one-line SRT punchline over the clip, trim to the reaction moment, then convert to a small GIF. See the reaction-GIF recipe for the trim-and-size details, and burn the caption before that GIF step.
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.