Shaunak Joshi

Back to Projects
Full-Stack

EpicCaptions

A video subtitle generator that produces cinematic, styled captions — think film-quality subtitles, not the default white-text-on-black boxes. Users upload a video, the pipeline extracts audio, transcribes it, and renders styled captions back onto the video using FFmpeg. The LLM layer cleans up transcription artifacts and improves subtitle pacing.

EpicCaptions
React.jsNext.jsTypeScriptNode.jsFFmpegLLM

FFmpeg Processing Pipeline

Handles video ingestion, audio extraction, subtitle rendering, and final video export on the server. Supports standard formats and outputs an MP4 with burned-in captions.

LLM-Enhanced Transcription

Raw transcription output is cleaned up by an LLM pipeline — correcting awkward splits, improving punctuation, and ensuring subtitle timing feels natural.

Real-Time Caption Editor

Before exporting, users can edit any caption block in-browser — adjust text, change timing, or tweak styling — and see changes reflected immediately.

Cinematic Styling

Captions support custom fonts, sizes, colors, and positioning. Designed to look like film subtitles rather than auto-generated CC text.

Processing Pipeline

  • User uploads video → Node.js backend receives and stores the file
  • FFmpeg extracts audio track and generates a raw transcript via speech-to-text
  • LLM post-processes transcript: fixes pacing, punctuation, and awkward splits
  • Subtitle file (.srt / .ass) generated and rendered back onto video via FFmpeg
  • User reviews and edits captions in-browser before downloading the final video