faster-whisper · ffmpeg · 100% local

Subtitles,
automatically.

Auto-generate and embed subtitles for MP4 videos using GPU-accelerated Whisper. Soft tracks for toggling, hardcoded for socials, full font control — and your video never leaves your machine.

100% local
CUDA accelerated
0s re-encode*
MIT licensed

* soft subtitle mode only — burned-in mode requires re-encode

What's inside

Built for the entire subtitle pipeline.

From the moment you drop an MP4 to the moment you export, every step is handled on-device — fast, private, and under your control.

Soft Subtitles

Mux as a toggleable track inside the MP4. No re-encode, original quality preserved — viewers can switch on or off.

Hardcoded Subtitles

Burn into the video frame for Instagram, TikTok, and GitHub previews where soft tracks aren't supported.

Font Customization

Pick the family, size, color, outline, shadow, alignment and vertical margin. Preview a single frame before generating the whole video.

GPU Accelerated

CUDA-powered faster-whisper with CTranslate2 runs `large-v3` in float16. No GPU? It automatically falls back to CPU with int8.

Editable SRT

Fix a name, tighten a line, swap wording. Edit the generated subtitles in the UI and regenerate the video instantly.

100% Local

All inference runs on your machine. No API keys, no cloud uploads, no telemetry. Your footage stays on your disk.

How it works

Three steps. Zero cloud calls.

ffmpeg extracts audio, faster-whisper transcribes, ffmpeg muxes it back. The whole loop runs locally in seconds.

01 — INPUT

Upload

Drop an MP4 file into the web UI. ffmpeg extracts a 16 kHz mono WAV track — no upload, no waiting.

02 — TRANSCRIBE

Generate

faster-whisper detects the language and writes a timed `.srt`. CUDA by default, CPU fallback if no GPU is found.

03 — EXPORT

Download

Get back a `_subtitled.mp4` with a toggleable track (or burned-in for socials) plus the standalone `.srt` file for editing elsewhere.

Quick start

Up and running in one script.

start.sh checks prerequisites, sets up the environment, and pre-downloads the default Whisper model (large-v3, ~3 GB). Then the web UI opens in your browser.

One-Click Launch

Just run the start script — everything sets up automatically, and your browser opens the app.

  • ffmpeg — free video tool (installable via the launcher script)
  • Python 3.10+ — download here
  • NVIDIA GPU — optional, makes it faster (CPU works automatically)
~/video-subtitler
# Mac (double-click start.command in Finder)
# Mac / Linux (terminal — fully automatic)
$ ./start.sh --yes

# Windows (fully automatic)
> start.bat --yes

  → installs prerequisites, sets up environment,
  → downloads AI model (~3 GB), opens browser — done!
Browser opens to http://127.0.0.1:7860  ·  Press Ctrl+C in the terminal to stop the server

Ready to subtitle something?

Try the interactive demo — or run locally for full subtitle generation. Your files never leave your machine.

Try the Demo