FILE FORMAT
SRT to MP4 Subtitles — FFmpeg Commands + a No-Install Online Method
By Terry · Updated March 2026 · 8 min read
“SRT to MP4 subtitles” means embedding (hard-burning) or soft-attaching an SRT subtitle file onto an MP4 video. The fastest method: use FFmpeg's subtitles filter to hard-burn, or attach as a soft sub with -c:s mov_text. For no-install workflows, AdTransPro lets you upload the MP4 + SRT and downloads a captioned video in under 2 minutes.
Skip the command line — embed subtitles in your browser
300 free minutes. No install. Batch-ready.
Try AdTransPro FreeWhat Is an SRT File?
SRT (SubRip Text) is the most common subtitle format. Each entry contains a sequence number, a timecode range, and one or more lines of text:
1
00:00:01,000 --> 00:00:04,000
Welcome to this product demo.
2
00:00:04,500 --> 00:00:08,200
Today we'll walk through the new dashboard.SRT files are plain text, making them easy to edit, translate, and version-control. Most video players and platforms (YouTube, Vimeo, Meta Ads Manager) accept SRT uploads directly. For a deeper dive into translating these files, see our guide on how to translate video subtitles.
Method 1: FFmpeg Hard-Burn (Free)
Hard-burning renders the subtitle text directly into the video pixels. The result plays everywhere — no player support required — but the text cannot be turned off or changed after encoding.
Install FFmpeg (brew install ffmpeg on macOS, apt install ffmpeg on Ubuntu).
Place your video (input.mp4) and subtitle file (subs.srt) in the same directory.
Run the command below. The subtitles filter parses the SRT and draws text onto each frame.
Wait for encoding to finish — roughly 8 seconds per minute of video on a modern CPU.
# Hard-burn SRT subtitles into MP4
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" -c:a copy output.mp4Tip: Add styling with force_style='FontSize=24,PrimaryColour=&H00FFFFFF' inside the subtitles filter to control font size and color.
Method 2: FFmpeg Soft Subtitles
Soft subtitles mux the SRT as a separate track inside the MP4 container. The viewer can toggle them on or off in their player. Because no re-encoding happens, this finishes in seconds regardless of video length.
# Attach SRT as a soft subtitle track (no re-encoding)
ffmpeg -i input.mp4 -i subs.srt -c copy -c:s mov_text output.mp4Note: mov_text is the subtitle codec for MP4 containers. For MKV, use -c:s srt instead.
Method 3: Online Tool — AdTransPro
If you prefer a no-install, browser-based workflow — or need to translate and embed subtitles in one step — AdTransPro handles the entire pipeline in the cloud.
Sign up at adtranslate.pro (free Creator plan — 300 minutes/month, no credit card).
Drag-drop your MP4 into the workspace. Upload the matching SRT file, or let the platform auto-transcribe.
Choose target languages if you need translation. AdTransPro supports 145+ languages with frame-aligned timing.
Preview the captioned video in the inline editor. Adjust any segment if needed.
Download the final MP4 with embedded subtitles — or export SRT/VTT files separately.
A content team at a cross-border e-commerce brand used this workflow to embed subtitles into 120 product videos across 6 languages in a single afternoon — no developer time required.
Speed Benchmark: FFmpeg vs. AdTransPro
~8 s/min
FFmpeg (hard-burn)
per minute of video
Modern CPU, x264 preset medium
~2 s/min
AdTransPro (cloud)
per minute of video
Parallel GPU pipeline, ~4× faster
Internal benchmark, March 2026. Test file: 10-minute 1080p MP4, English SRT (142 cues). FFmpeg hard-burn adds ~8 seconds of processing per minute of source video on a modern CPU; AdTransPro's cloud pipeline processes the same in ~2 s/min — roughly 4× faster.
Feature Comparison: FFmpeg vs. VLC vs. AdTransPro
* Feature parity as of March 2026. Verify on vendor websites before purchasing.
| Feature | FFmpeg | VLC | AdTransPro |
|---|---|---|---|
| Hard-burn subtitles | ✅ | ✅ | ✅ |
| Soft subtitles | ✅ | ✅ | ✅ |
| Batch processing | Manual loop | ❌ | ✅ 500+ files |
| No install needed | ❌ | ❌ | ✅ |
| 145+ languages | ❌ | ❌ | ✅ |
| Translate + embed | ❌ | ❌ | ✅ |
FFmpeg and VLC are powerful free tools but require local installation and manual scripting for batch jobs. AdTransPro adds cloud processing, translation, and a browser-based UI — see current pricing at adtranslate.pro.
Frequently Asked Questions
Can I add SRT subtitles to MP4 without re-encoding?
Yes. Use FFmpeg with soft subtitles: ffmpeg -i video.mp4 -i subs.srt -c copy -c:s mov_text output.mp4. This muxes the SRT track into the MP4 container without re-encoding video or audio, so the process finishes in seconds regardless of file size.
What is the difference between hard-burned and soft subtitles?
Hard-burned (open) subtitles are rendered permanently into the video pixels — every viewer sees them and they cannot be turned off. Soft (closed) subtitles are stored as a separate track inside the container; the player can toggle them on or off, and they can be extracted or replaced later.
How do I convert SRT to MP4 online for free?
Upload your MP4 and SRT to AdTransPro's free Creator plan (300 minutes/month). The platform merges the subtitle track and lets you download the captioned video — no software install required.
Does FFmpeg support all SRT encodings?
FFmpeg works best with UTF-8 encoded SRT files. If your file uses a different encoding (e.g., Latin-1, Shift-JIS), convert it first with iconv: iconv -f SHIFT_JIS -t UTF-8 subs.srt > subs-utf8.srt. This avoids garbled characters in the rendered output.
Can I batch-process multiple SRT + MP4 pairs?
Yes. With FFmpeg you can write a shell loop over matching file pairs. For larger volumes, AdTransPro supports batch uploads of 500+ files with automatic SRT-to-video matching, processing them in parallel on its cloud pipeline.
Embed subtitles without the command line
300 free media minutes. No credit card. Batch-upload 500+ files.