Captions

How to Add Subtitles to a Movie: SRT, Soft Subs, or Burn-In

Create an SRT subtitle draft, sync it to a movie, choose soft or burned subtitles, and export a file that works in the target player.

Updated July 20, 20265 min readSNAPVID Team
Use the free tool
Movie player with synchronized SRT subtitles and timeline
Shopify
Booking.com
Uber
iHeartMedia
Y Combinator
Paris Saint-Germain
Airbus
ZoomInfo
Zapier
Sportskeeda
Coinify
Shopify
Booking.com
Uber
iHeartMedia
Y Combinator
Paris Saint-Germain
Airbus
ZoomInfo
Zapier
Sportskeeda
Coinify

Summarize content with

Open this guide in your preferred assistant and turn it into a creator action plan.

AI-ready guide
Free browser subtitle tool

Movie subtitle SRT maker

Turn a clean transcript into a downloadable-ready SRT draft with sequential cue timing.

To add subtitles to a movie, first decide whether the target needs a sidecar subtitle file, an embedded selectable track, or burned-in text. Create or import timed cues, correct and sync them against the locked movie, then deliver the format the player accepts.

The SRT maker above turns a clean transcript into a sequential timing scaffold. It runs in the browser and produces copyable SRT text, but it cannot hear the movie. Every cue still needs to be checked against the final audio and picture.

Choose soft, embedded, or burned subtitles

DeliveryViewer can turn it off?Styling controlBest forMain limitation
Sidecar SRT/VTTYesPlayer-controlledWeb players, review, localizationFile can be separated or misnamed
Embedded subtitle trackYesDepends on container/playerMP4/MKV delivery with multiple tracksCompatibility varies
Burned-in subtitlesNoFull visual controlSocial media and universal displayRequires a new render; not searchable/toggleable

Keep a clean movie master even when the final delivery uses burned subtitles. That master supports future language versions, corrected captions, and platforms with native accessibility tracks.

Method 1: add an SRT file in a player

For personal playback in VLC or another compatible player:

  1. Save the movie and SRT in the same folder.
  2. Give them the same base filename, such as interview.mp4 and interview.en.srt.
  3. Open the movie and select the subtitle track from the player’s subtitle menu.
  4. If timing is consistently early or late, adjust subtitle delay temporarily in the player, then fix the source file for permanent delivery.

A sidecar is the fastest path when the player supports it. It avoids re-encoding video and lets the viewer choose language or turn subtitles off.

Method 2: create and sync an SRT file

An SRT cue contains a number, start and end time, and text:

1
00:00:04,200 --> 00:00:06,800
The result appears before the explanation.

Use the generator for an initial structure, then open the SRT in Subtitle Edit, Aegisub, a browser subtitle editor, or an NLE. Play the movie, move each cue to the spoken phrase, and inspect the following rules:

  • No overlapping cues unless the delivery specification allows it.
  • One or two lines that remain legible at the target resolution.
  • Natural breaks at punctuation and phrase boundaries.
  • Enough time to read without leaving stale text after speech ends.
  • Speaker changes, music, and meaningful sounds represented when required.
  • Names, numbers, technical terms, and negations verified from the audio or script.

If the movie changes after timing, create a new reference export with visible timecode and resync from the first edit difference. Small picture changes can shift every later cue.

Method 3: burn subtitles into the movie

Burn-in permanently draws the text into each video frame. In an online editor or NLE, import the movie and SRT, choose the style, place captions inside the safe area, and render a new MP4.

For a command-line workflow, FFmpeg can combine a video and SRT through its subtitles filter when the build includes the required library. Preserve the source frame rate, resolution, aspect ratio, color properties, and audio settings. Rendering always creates a new file, so compare picture quality and sync with the master.

Burn-in is appropriate when social platforms may ignore sidecar files or when exact typography is part of the creative. It is not a replacement for selectable captions on services that support accessibility tracks.

Fix subtitle sync problems

Every cue is early or late by the same amount

Apply a global offset. If subtitles appear two seconds early, move all cues forward by two seconds. Check the beginning, middle, and end before saving.

Sync drifts gradually

The subtitle file and movie may use different edits, playback speeds, or frame-rate assumptions. Align an early cue and a late cue using time stretching, then inspect several points between them. A constant offset cannot fix progressive drift.

Only one section is wrong

Select the affected cue range and shift it independently. Look for a deleted scene, distributor logo, recap, or alternate intro that changed the movie’s running order.

Subtitle quality review

Watch once with sound, once muted, and once while focusing only on picture collisions. Test the smallest target screen. Confirm that text does not cover faces, translations, lower thirds, or important action.

For accessibility delivery, include relevant non-speech information such as [door slams], speaker identification when unclear, and music information when it affects meaning. Follow the target broadcaster or platform specification rather than inventing a new style at export time.

Movie subtitle FAQ

What subtitle format works with most movies?

SRT is widely supported because it contains simple text and timing. WebVTT is common on the web. Professional, streaming, and broadcast workflows may require TTML, IMSC, SCC, STL, or another specification.

Can I add subtitles without re-encoding the movie?

Yes, when using a sidecar or compatible embedded track. Burned subtitles require video re-encoding because the pixels change.

Why does the SRT not appear?

Check the filename, text encoding, extension, timecode syntax, and player subtitle menu. Some mobile and browser players do not load arbitrary local sidecar files.