How to Add Subtitles to a Video: Methods, Tools, and What to Consider

Adding subtitles to a video isn't a single process — it's a family of approaches that vary depending on where the video lives, what software you're using, and how much control you want over the final result. Understanding the difference between those approaches is the first step to getting it right.

What "Adding Subtitles" Actually Means

There are two fundamentally different ways subtitles exist in a video file, and they behave very differently:

Hardcoded (burned-in) subtitles are permanently embedded into the video image itself. They can't be turned off, repositioned, or edited after export. Every viewer sees them, regardless of the platform or player.

Softcoded (soft) subtitles are stored as a separate text track alongside the video. Viewers can toggle them on or off, and some platforms let them change font size or color. These require a compatible player or platform to display correctly.

Which type you need shapes which tools and workflow make sense.

Common Subtitle File Formats

If you're working with soft subtitles, you'll encounter a few standard formats:

FormatExtensionBest Used For
SubRip.srtUniversal compatibility, most common
WebVTT.vttWeb video, HTML5 players, YouTube
Advanced SubStation Alpha.ass / .ssaStyled subtitles with custom fonts/colors
TTML / DFXP.ttmlBroadcast and streaming platforms

For most people, SRT files are the practical starting point — they're plain text, easy to edit, and accepted almost everywhere.

Method 1: Adding Subtitles in a Video Editor

Desktop video editors handle both hardcoded and softcoded subtitles, though the workflow differs by application.

In editors like DaVinci Resolve, Premiere Pro, or Final Cut Pro, you can import an SRT file directly onto a subtitle track, adjust timing, and either export the subtitles as a separate file or burn them into the video during render. These tools also let you manually type subtitles, position them precisely, and style them with custom fonts.

In simpler editors like iMovie or Clipchamp, subtitle support is more limited. iMovie, for example, doesn't have a dedicated subtitle track — creators typically use text overlays instead, which produces hardcoded results but with less precise control over timing.

The general workflow in a capable editor:

  1. Import your video and open the subtitle or caption panel
  2. Import an existing subtitle file or create subtitle entries manually with in/out timestamps
  3. Review sync against the audio
  4. Export — choose whether to embed (hardcode) or export as a sidecar file

Method 2: Using Online Subtitle Tools 🎬

Browser-based tools like Kapwing, VEED.IO, and Clideo let you upload a video, auto-generate subtitles using speech recognition, manually edit timing and text, and then download the result — often with subtitles burned in.

These tools are popular because they require no software installation and work on any operating system. The tradeoff is that file size limits, export resolution caps, and watermarks often apply on free plans. Auto-generated subtitles from speech recognition are also rarely accurate enough to use without editing, especially with accents, technical terminology, or background noise.

Method 3: Platform-Native Subtitle Tools

If your video is going directly to a specific platform, you may not need a separate tool at all.

YouTube automatically generates captions for uploaded videos and lets creators upload their own SRT or VTT files through YouTube Studio. You can also manually edit the auto-generated captions line by line within the platform.

Vimeo (on paid plans) supports subtitle track uploads in SRT and VTT format, displayed as toggleable soft subtitles.

Facebook and Instagram offer auto-caption tools for video posts and Reels, with manual editing available after generation.

Platform-native tools are convenient but limited — you're working within that platform's interface and the subtitles only exist there. They can't be exported back for use elsewhere.

Method 4: Adding Subtitles with FFmpeg (Command Line)

For users comfortable with the command line, FFmpeg is a powerful free tool that handles both approaches:

  • To burn in subtitles from an SRT file: use the subtitles video filter
  • To mux in soft subtitles into an MKV or MP4 container: use stream mapping to attach the subtitle track without re-encoding

FFmpeg gives precise control and handles batch processing well, but it requires familiarity with command syntax and has no graphical interface.

The Variables That Determine Your Best Approach

The "right" method depends on factors specific to your situation:

Where the video will be watched — A subtitle track that works perfectly in VLC on a desktop may not display at all on a smart TV app or a mobile player that doesn't support embedded text tracks. Hardcoded subtitles are the only guaranteed-visible option across all playback environments.

Whether viewers need subtitle control — Accessibility use cases often call for toggleable subtitles so viewers can adjust size and contrast. Hardcoded subtitles remove that flexibility.

Your editing skill level and available software — A professional editor gives you the most control but assumes familiarity with a timeline-based workflow.

Volume of content — Creating subtitles for one video is very different from needing to subtitle a library of recordings. Automated speech recognition tools and batch workflows become more relevant at scale.

Language and accuracy requirements — Auto-generated captions often need significant correction. Technical content, multiple speakers, or non-English audio increases the editing burden considerably.

File format requirements — Some distribution platforms require specific subtitle formats or have strict style guides for caption positioning and line length.

The method that works well for a social media creator uploading short Reels looks very different from what a corporate training team needs for accessible e-learning content — even though both are just "adding subtitles." 🎯