Subtitle Burn-in Tool
Burn SRT/VTT subtitles into a video (hard subs). Adjust font, size, position, and outline color.
Local processing — no uploadWhat this tool does
- Accepts SRT and VTT subtitle files
- Paste-text mode for quick custom captions without a file
- Adjustable font size, color, outline color/width, and position
- Bold style toggle for high-contrast viewing
- Hardcoded subtitles — guaranteed to display anywhere the video plays
How to use
- 1
Pick a video
MP4 / MOV / WebM, etc.
- 2
Provide the subtitles
Upload an .srt / .vtt file, or paste timecoded text directly.
- 3
Set the style
Tune size, color, outline, position. Match font size to your output resolution.
- 4
Burn the subtitles
Download once processing completes.
What each setting means
Recommended settings
Common pitfalls
Symptom: Subtitles show garbled characters
Cause: SRT encoded in Shift_JIS or UTF-16.
Fix: Resave as UTF-8 (no BOM) in your editor.
Symptom: Subtitles never appear
Cause: Timecode format is wrong (SRT uses commas, VTT uses dots).
Fix: Match the format to the file extension.
Symptom: Non-Latin text shows as boxes (tofu)
Cause: Bundled font is Noto Sans Bold — Latin only.
Fix: Use desktop FFmpeg with a CJK font for non-Latin subtitles.
Symptom: Timing drifts late in the video
Cause: Subtitles run past video length, or VFR source.
Fix: Trim subtitle end times and convert source to CFR if needed.
Equivalent FFmpeg commands
Reference commands you can run on the desktop FFmpeg CLI.
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" out.mp4ffmpeg -i input.mp4 -vf "subtitles=subs.srt:force_style='FontName=Noto Sans,FontSize=40,PrimaryColour=&Hffffff&,OutlineColour=&H000000&,Outline=2,Bold=1,Alignment=2'" out.mp4ffmpeg -i input.mp4 -vf "subtitles=subs.vtt" out.mp4Browser support & limits
- Recommended max: 500 MB
- Bundled font: Noto Sans Bold (Latin only)
- Hard subs only — for soft subs use desktop FFmpeg
Privacy
This tool runs ffmpeg.wasm directly in your browser. Files never leave your device — everything runs locally. Read the privacy policy →
Frequently asked questions
Hard subs vs. soft subs?
Hard = baked into the video (cannot be turned off). Soft = separate track (toggleable). This tool produces hard subs only.
Should I burn subs for YouTube?
YouTube prefers soft subs (CC). Hard subs make sense mostly for TikTok / Instagram-style platforms that don’t honor SRT.
Why is non-Latin text not rendered?
Bundling CJK fonts would balloon the WASM payload, so we ship Latin only. Use desktop FFmpeg with a CJK font for those scripts.
SRT vs VTT?
SRT is the most common. VTT is the HTML5 standard and supports inline styling. Both are accepted here.
Can I use a custom font?
Not in the browser version. Run desktop FFmpeg with libass for full font control.
Will the tool fix my timecodes?
No — timecodes are passed through as-is. Use Subtitle Edit (or similar) to clean up timing first.
Speaker colors / styles?
Basic SRT supports <b>/<i> markup. For per-speaker color, write a VTT file with class tags like <c.speaker1>.