SubtitleStudio: The Subtitle Burner That Ghosted Every Subscription ๐ฌ
PROJECT โ https://github.com/Subham-Maity/add-subtitles-to-video
- Instagram: Check Here
- LinkedIn: Check Here
- GitHub: Check Here
I opened CapCut to burn one subtitle onto a 12-second clip. It asked me to subscribe first. I closed the tab and went to see what was actually doing the work under the hood: FFmpeg.
Turns out someone already built the free version. It's called SubtitleStudio, and it runs entirely on your own machine.
Why This Even Needed To Exist
Burning subtitles onto a video just means stamping text permanently into the pixels, frame by frame. Think permanent marker on a photo, not a sticky note you can peel off later.
Most subtitle tools are literally just wrapping FFmpeg, a free command-line video tool, and charging you monthly for it. That's a vending machine charging rent on a candy bar you already own. ๐ฌ
| SubtitleStudio | Adobe Premiere Pro | CapCut Pro | |
|---|---|---|---|
| Cost | Free, forever | ~$20โ35/mo | ~$20/mo |
| Runs fully offline | Yes | Partially | No |
| Transcription | Local AI, built-in | Manual / paid add-on | Cloud-based |
| Footage leaves your machine | Never | Depends on plan | Yes |
| License | MIT, open source | Proprietary | Proprietary |
Pretty sure I thought CapCut Pro was still $10 a month. Checked, and it quietly doubled to around $20 in early 2026. Software you install once does not get to do that. ๐
What Actually Happens When You Drop In A Video
SubtitleStudio isn't one program, it's three, working together. A Next.js browser app, a NestJS API server, and a small Python AI service all talk to each other through Docker. Three cooks, one kitchen, each one on a different course.
Upload a video and the whole pipeline just kicks off, no extra clicking. Behind the scenes the job gets passed along in stages, like a relay race. Each runner does their leg, then hands off the baton.
Upload โ Extract Audio โ Transcribe With AI โ Group Words Into Cues
Notice there's no trip to a cloud server anywhere in that chain. Everything after "Upload" happens on your own hardware. That's the whole point. ๐
The Brain: faster-whisper Doing the Listening
The AI engine here is faster-whisper, a speed-tuned version of OpenAI's Whisper speech model. It swaps in a leaner backend called CTranslate2, which runs roughly 2 to 4x faster than plain Whisper. Same listening skill, lighter engine underneath.
Think of it like swapping a giant hardcover dictionary for a phone app with the exact same definitions inside. Same answer, way faster to flip through.
SubtitleStudio lets you pick how big an AI "brain" to load, from tiny to large-v3. Basically choosing a bag for a weekend trip.
- A tiny fanny pack: fast to grab, doesn't hold much detail
- A giant suitcase: slow to drag around, holds absolutely everything
Same trade-off applies here. The tiny model needs about 1 GB and flies through a video. The large-v3 model needs about 10 GB but misses almost nothing. ๐
| Model | VRAM / RAM | Speed | Accuracy |
|---|---|---|---|
| tiny | ~1 GB | Fastest | Decent |
| base | ~1.5 GB | Fast | Good |
| small | ~2.5 GB | Moderate | Better |
| medium | ~5 GB | Slower | Great |
| large-v3 | ~10 GB | Slowest | Best |
SubtitleStudio defaults to base, a safe middle ground for most laptops. On clean audio, Whisper's large-v3 sits around 93 to 95 percent word accuracy. That's genuinely close to a human typing along in real time. ๐ฏ
The Editor That Doesn't Lie To You
Most subtitle editors show you a preview that's quietly lying. What looks centered in the browser can land three inches off-screen in the final export. Hit this exact bug editing a vertical reel once, centered on-screen, floating off-frame the second it exported. ๐ฉ
SubtitleStudio fixes this with actual math, not vibes. Think of a sticker glued onto a photo.
Resize the photo, and the sticker has to shrink or grow by that exact same amount. It stays glued in the same relative spot.
Every project shares one reference height: 540 pixels. A subtitle's size scales up or down from that single number to match whatever you're exporting to.
- On a 1080p export, the scale factor is 1080 รท 540, or 2x
- On a 4K export, the scale factor is 2160 รท 540, or 4x
- On a 1920-tall vertical reel, it's roughly 3.5x
Same font, same position, zero guesswork, no matter the resolution. That's it. ๐
Watching It Cook Live (No Frozen Spinners)
Older apps make you refresh the page just to check if a job's done. SubtitleStudio streams live updates instead, using something called Server-Sent Events, or SSE. It's a pizza tracker situation, the app pings you when the status changes instead of you refreshing every two minutes. ๐
| Approach | How it works | Feels like |
|---|---|---|
| Polling | Client keeps asking "done yet?" on a timer | Calling the pizza place every 2 minutes |
| WebSockets | Both sides talk, anytime, two-way | A phone call that's open both ways |
| SSE | Server pushes updates, one-way, no re-asking | The tracker just updates itself |
SubtitleStudio only ever needs one-way updates, so SSE was the lighter, simpler pick. No need for a full two-way phone line here.
During transcription, the bar jumps through real stages: 40 percent, 75 percent, then 100 percent when cues are ready. Export progress climbs from 10 all the way to 98 percent as FFmpeg reports actual encoding time. Either way you're watching a real number, not a spinning wheel. โณ
The Export Finish Line: GPU vs. CPU
Hit export and SubtitleStudio tries your NVIDIA GPU first, using a dedicated chip called NVENC built just for encoding video. No GPU, no problem, it quietly drops back to your CPU instead.
Picture a race down the same exact road. NVENC is a sports car built for one job only, encoding video, fast. Your CPU is a regular bike, it still finishes, just working a lot harder to get there.
Try NVENC (GPU) โ Works? Fast export, done โ Missing? Fall back to libx264 (CPU) โ Export still finishes
Either branch reaches the finish line eventually. The GPU one just gets there while you're still reading this sentence. ๐
In real tests elsewhere, swapping software encoding for NVENC turned a 12-minute export into under 2 minutes. Roughly 6x faster, sometimes more depending on the card. One path just makes you wait a lot less. โก
Two things people assume wrong here. You don't need a fancy GPU to use this at all. And CPU-only export doesn't mean it's broken.
CPU-only laptops still export just fine. Slower, not broken.
TL;DR
- SubtitleStudio burns AI-transcribed subtitles onto video, 100% offline, free forever under MIT
- Runs as 3 services in Docker: a Next.js frontend, a NestJS API, and a Python faster-whisper AI engine
- The WYSIWYG editor matches your export pixel-for-pixel, using one shared 540px reference height
- Live progress bars run on Server-Sent Events, not spinners or repeated polling
- Exports try NVIDIA NVENC first, then fall back to CPU automatically
- Zero cloud calls, zero API keys, zero monthly bill
Up next: clone the repo, drop in a clip, and see if you can spot the difference from a $20 export. ๐ฌ









Top comments (0)