Hardcode (burn-in) subtitles permanently into a video file using FFmpeg.

To burn in just part of the subtitle, select the lines in the subtitle grid, right-click and choose Selected lines → Generate video with burned-in subtitles…. The window opens with only the selected lines, and Cut is set from the first selected line’s start to the last one’s end, so a short clip needs no manual cut times. If no video is open you are asked to open one first.
A Blu-ray sup can be burned in as it is. Open it in Edit image-based subtitle and choose Video → Generate video with burned-in subtitles…, or add a .sup file as the subtitle of a batch item (a .sup next to the video is picked up automatically, after .srt and .ass). The bitmaps are laid over the video with FFmpeg’s overlay filter and scaled with it, so the result matches the exported file - lines that overlap in time are shown together, the way a Blu-ray shows them. The font settings do not apply to bitmaps and are hidden; the logo, resolution, cut and encoding settings work as for text.
The output container follows the codec, because ffmpeg refuses some combinations outright: H.264
and H.265 can be written to .mkv, .mp4, .mov or .ts, VP9 to .mkv, .webm or .mp4, and
ProRes to .mov or .mkv.
A half side-by-side or half top/bottom 3D video holds a squeezed view for each eye, so a normal burn-in would put the subtitle across both views, cut in half. Set 3D to Half side-by-side or Half top/bottom to burn the subtitle into each eye’s view instead. It is rendered for the full frame and squeezed the same way as the video, so the player stretches it back to normal. Depth moves the two copies apart: positive values bring the subtitle out of the screen, negative values push it back. A copy never crosses into the other eye’s view. This works for text and for Blu-ray sup subtitles, and matches the 3D option when exporting image-based subtitles. The preview shows the flat subtitle.
Besides the CPU encoders (libx264, libx265, libvpx-vp9, prores_ks), the encoding list
offers the GPU encoders available on your platform. GPU encoding is much faster than CPU
encoding, at somewhat lower quality per bit — for the same visual quality a GPU encoder
produces a larger file.
Only encoders that can actually run on the current operating system are listed, so the choices differ between Windows/Linux and macOS. On top of that, the window asks ffmpeg what it was built with when it opens and drops the encoders that are not there — several ffmpeg builds ship without x265, and Subtitle Edit’s own Flatpak has neither x265 nor the GPU encoders. If the probe fails, the full list is kept.
| Encoder | Hardware | Quality setting |
|---|---|---|
h264_nvenc / hevc_nvenc |
NVIDIA GPU | CQ 0–51 (lower is better) |
h264_amf / hevc_amf |
AMD GPU | Quality 0–10 (lower is better) |
h264_qsv / hevc_qsv |
Intel Quick Sync | CRF (lower is better) |
NVENC takes its own preset list (slow, medium, fast and p1–p7) instead of the x264
presets. The old aliases (hq, ll, lossless, …) were removed in FFmpeg 9.0 and are no longer
offered — a saved one is moved to its p1–p7 equivalent. AMF has no preset. Quality is left
blank by default, which lets FFmpeg pick a bitrate.
NVENC also has a Tune list, which is what those old aliases really set on top of a preset. The row is shown for the NVIDIA encoders only:
| Tune | Meaning |
|---|---|
| (blank) | FFmpeg’s default — high quality |
hq |
High quality (the default, stated explicitly) |
ll / ull |
Low latency / ultra low latency — for streaming, not for burn-in |
lossless |
Lossless encoding |
lossless pins the encoder to constant QP 0, so the CQ value is left out of the command line
when it is picked — FFmpeg would ignore it anyway. Not every GPU can encode losslessly; where it
cannot, FFmpeg stops with “Lossless encoding not supported”.
All HEVC output is tagged hvc1 so it plays in QuickTime and other Apple players, which reject
the hev1 tag FFmpeg writes by default.
| Encoder | Hardware | Quality setting |
|---|---|---|
h264_videotoolbox |
Apple silicon / Intel Mac media engine | Quality 1–100 (higher is better) |
hevc_videotoolbox |
Apple silicon / Intel Mac media engine | Quality 1–100 (higher is better) |
prores_videotoolbox |
Apple silicon media engine | Profile only |
Notes:
prores_videotoolbox uses the same profiles as prores_ks (proxy, lt, standard, hq, 4444,
4444xq) and is far faster than the CPU ProRes encoder.Hardware encoders depend on the FFmpeg build in use. If an encoder fails immediately, run
ffmpeg -encoders and check that it is listed; on macOS the Homebrew and official FFmpeg
builds all include VideoToolbox.
Click Batch mode to queue several video/subtitle pairs (Single mode switches back). The list shows file name, size, subtitle file and status, with Add…, Remove, Clear and Pick subtitle file… buttons. Output properties… sets the output folder and naming; the chosen folder (or Use source folder) is shown next to it.
| Key | Action |
|---|---|
| Escape | Close / Cancel |
| F1 | Show help (default key, changeable) |