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.
- Transcribe your audio. Write out everything spoken, including speaker labels and relevant sound descriptions if needed for accessibility.
- Add timecodes. Each subtitle entry needs a start and end timecode in the format
HH:MM:SS,mmm --> HH:MM:SS,mmm. - 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.srtalongsidemyvideo.mp4). - 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.
- Open the software and load your video file.
- Play the video and use the editor's "insert new subtitle" function at each natural pause or sentence break.
- Type the subtitle text while the clip plays to capture natural timing.
- Use the waveform view to fine-tune start and end times by dragging the cue boundaries.
- 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.