FFmpeg Cookbook
JA

Subtitle Burn-in Tool

Burn SRT or VTT subtitles directly into your video (hard subs). Customize font size, color, outline, and position.

Your file is not uploaded
Video file
MP4 / MOV / WebM
Subtitle file (SRT / VTT)
.srt / .vtt
— or paste SRT directly —
If the captions contain Japanese, a Japanese font (about 2 MB) is loaded as well. It covers kana and JIS level 1-2 kanji; other kanji, simplified Chinese and Korean show as boxes.
Processing… 0%

Equivalent FFmpeg command

CLI command for your current settings. Updates live as you change controls.

ffmpeg -y -i video.mp4 -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2,subtitles=subs.srt:fontsdir=.:force_style='Fontname=Noto Sans,Fontsize=28,PrimaryColour=&H00FFFFFF&,OutlineColour=&H00000000&,Outline=2,Bold=-1,Alignment=2'" -c:v libx264 -preset fast -crf 20 -c:a aac -b:a 128k -pix_fmt yuv420p -movflags +faststart output.mp4
Popular uses
Burn in SRT subtitlesSocial posts for muted viewingAdd explanatory captions

How to use

  1. Pick a videoMP4 / MOV / WebM, etc. (up to 500 MB).
  2. Provide the subtitlesUpload an .srt / .vtt file, or paste SRT-format text.
  3. Set the styleSet size, color, outline and position. Text size follows the video height, so there is no need to change it for each resolution.
  4. Burn the subtitlesA preview and the download button appear when it finishes.

Recommended settings

YouTube and other landscape video
Font size 28 (default) · white · black outline 2 · bottom
The size follows the video height, so the same setting works at 720p and 1080p.
TikTok / Shorts (vertical)
Font size 20–24 · yellow · black outline 3 · middle
On vertical video the same number is larger relative to the width, so go smaller than for landscape.
Interview / dialogue
Font size 24 · white · black outline 2 · bottom
Slightly smaller text keeps the speaker’s face clear.

When it goes wrong

No subtitles, and an error

Cause: The subtitle file is saved in Shift_JIS or another encoding that is not UTF-8.

Fix: Save it again as UTF-8 in your text editor.

Subtitles never appear

Cause: A VTT file uses commas in its times (00:00:01,000).

Fix: Write VTT times with a dot, as in 00:00:01.000. SRT officially uses a comma.

Some characters show as boxes (tofu)

Cause: Latin uses Noto Sans Bold and Japanese uses a Noto Sans JP subset (kana, JIS level 1-2 kanji); simplified Chinese, Korean and rarer kanji are not included.

Fix: Use desktop FFmpeg with a font that covers those characters.

Subtitles appear at the wrong time

Cause: The subtitle times do not match this video (for example, subtitles made for a different edit). The tool uses the times as they are.

Fix: Adjust the times in a subtitle editor such as Subtitle Edit.

Questions

Hard subs vs. soft subs?

Hard subs are burned into the picture and cannot be turned off. Soft subs are a separate track that viewers can switch on and off. This tool makes hard subs only.

Should I burn subs for YouTube?

YouTube accepts SRT and VTT subtitle files as they are. That way you can fix them later and viewers can turn them on or off. Burn subtitles in when you post somewhere that cannot take a subtitle file.

Can I use Japanese subtitles?

Yes. When the captions contain Japanese, the tool loads a Japanese font (Noto Sans JP, about 2 MB) with kana and JIS level 1–2 kanji. Most simplified Chinese characters and Korean cannot be shown.

SRT vs VTT?

SRT is a widely used subtitle format; VTT is the format for video in web browsers. Both are accepted. Colors set with VTT STYLE blocks or classes are not burned in.

Can I use a custom font?

No. Latin text uses Noto Sans Bold and Japanese uses Noto Sans JP Bold, so the text is always bold. For other fonts, use desktop FFmpeg with libass.

Will the tool fix my timecodes?

No. The times are used as they are. Fix them first in Subtitle Edit or a similar tool.

Speaker colors / styles?

In SRT, <font color="#ffff00">…</font> colors the text inside it, and <i>…</i> makes it italic. VTT class tags such as <c.speaker1> are ignored.

More detail (settings, limits, FFmpeg commands)

What each setting means

Font size
10–80 (default 28). Not pixels: the size is relative to the video height, so the same number looks the same at 720p and 1080p.
Text color
Color of the subtitle text. White by default.
Outline color / width
Color and thickness of the line around the text (width 0–6; black, 2 by default). Keeps text readable on bright backgrounds. 0 means no outline.
Position
Bottom (default), middle or top.

Browsers and limits

  • Maximum file size: video 500 MB, subtitle file 5 MB
  • Fonts: Noto Sans Bold for Latin text, Noto Sans JP Bold for Japanese (JIS level 1–2 kanji)
  • Hard subs only — for soft subs use desktop FFmpeg
  • Output is H.264 (CRF 20) MP4; audio, when present, is re-encoded to AAC 128 kbps

The same job with the FFmpeg command line

Burn an SRT (basic)
ffmpeg -i input.mp4 -vf "subtitles=subs.srt" out.mp4
Burn an SRT with style overrides
ffmpeg -i input.mp4 -vf "subtitles=subs.srt:force_style='FontName=Noto Sans,FontSize=28,PrimaryColour=&Hffffff&,OutlineColour=&H000000&,Outline=2,Bold=1,Alignment=2'" out.mp4
FontSize is relative to the video height (28 is the tool’s default). Alignment=2 → bottom center. Colors are written &HBBGGRR& (blue, green, red in hex).
Burn a VTT file
ffmpeg -i input.mp4 -vf "subtitles=subs.vtt" out.mp4