Understanding Your Options

Before you add subtitles, you need to decide how you want them to work. There are three main approaches:

  • Soft subtitles (external file): A separate subtitle file (e.g., .srt) that travels alongside the video. Viewers can toggle them on or off.
  • Muxed subtitles (embedded in container): The subtitle track is bundled inside the video container (like MKV or MP4) but remains a selectable track.
  • Hard subtitles (burned in): The text is permanently rendered onto the video frames. Cannot be turned off. Required for some platforms.

Each method suits different use cases. Let's walk through all three.

Method 1: Create and Use an External SRT File

This is the most flexible approach, ideal for YouTube, Vimeo, and personal media servers.

  1. Transcribe your audio. Write out everything spoken, including speaker labels and relevant sound descriptions if needed for accessibility.
  2. Add timecodes. Each subtitle entry needs a start and end timecode in the format HH:MM:SS,mmm --> HH:MM:SS,mmm.
  3. Save as a .srt file. Use a plain text editor and save with UTF-8 encoding. Name the file to match your video file (e.g., myvideo.srt alongside myvideo.mp4).
  4. Upload or load alongside the video. On YouTube, go to your video's edit page → Subtitles → Upload file. In VLC, go to Subtitle → Add Subtitle File.

Method 2: Use a Subtitle Editor (Recommended)

Tools like Aegisub, Subtitle Edit, or Jubler make the process far easier with visual waveform alignment and automatic timing tools.

  1. Open the software and load your video file.
  2. Play the video and use the editor's "insert new subtitle" function at each natural pause or sentence break.
  3. Type the subtitle text while the clip plays to capture natural timing.
  4. Use the waveform view to fine-tune start and end times by dragging the cue boundaries.
  5. Export in your desired format (SRT, VTT, etc.).

Most editors include a spell-checker, reading speed warnings, and overlap detection — invaluable for quality work.

Method 3: Burn Subtitles into the Video with FFmpeg

For hard-coded subtitles, FFmpeg is the most powerful free tool available. With your .srt file ready, run the following command:

ffmpeg -i input.mp4 -vf subtitles=input.srt output.mp4

This permanently renders the subtitles onto the video. For ASS-format subtitles with styling:

ffmpeg -i input.mp4 -vf ass=input.ass output.mp4

Method 4: Upload to a Platform with Auto-Captioning

Platforms like YouTube and Vimeo offer automatic speech recognition to generate captions for you. While convenient, auto-captions should always be reviewed and corrected before publishing — accuracy varies significantly depending on audio clarity, accents, and technical vocabulary.

Tips for Quality Subtitles

  • Keep each subtitle to 1–2 lines and under 42 characters per line where possible.
  • Display each subtitle for a minimum of 1 second and a maximum of 7 seconds.
  • Match cuts — subtitles should not linger across scene cuts.
  • Use UTF-8 encoding to ensure special characters and non-Latin scripts display correctly.

With practice, creating clean, well-timed subtitles becomes a smooth part of your video workflow.