
How to hardcode subtitles into a video
To hardcode subtitles, add a timed subtitle track to a video and render a new file with the text permanently drawn into every frame. The finished captions cannot be turned off, which is why hardcoded subtitles are also called burned-in subtitles or open captions.
You have three practical options:
- Use a browser caption editor for the fastest visual workflow.
- Use a desktop video editor when subtitles are part of a larger edit.
- Use FFmpeg when you need a scriptable, repeatable command.
For short-form video, a browser workflow is usually the quickest. For a server pipeline, FFmpeg gives you more control.
Hardcoded subtitles vs closed captions
Hardcoded subtitles become part of the image. Closed captions stay in a separate track that a viewer or player can turn on and off.
| Question | Hardcoded subtitles | Closed captions |
|---|---|---|
| Always visible? | Yes | No |
| Styling stays consistent? | Yes | Depends on the player |
| Viewer can resize or disable? | No | Usually |
| Survives downloads and reposts? | Yes | Not always |
| Supports multiple language tracks? | Requires separate renders | Yes |
| Text remains machine-readable? | Not by itself | Yes |
Use hardcoded subtitles when the words are part of the creative—especially on Reels, TikTok, Shorts, ads, and videos that will be reposted. Use a separate caption track when viewer control, multiple languages, search, or accessibility preferences are the priority.
The strongest publishing setup can include both: a visually designed open-caption render plus a clean closed-caption file.
Method 1: burn subtitles in with ReelWords
ReelWords is designed for captioned social video, so you can go from raw speech to a finished MP4 without creating subtitle files manually.
- Upload an MP4 or MOV, or start with an accessible public video URL.
- Generate the transcript and review the words.
- Correct names, numbers, and line breaks.
- Choose a caption style and adjust the design.
- Preview safe zones and word timing.
- Render and download the captioned video.
Because the captions are rendered into the export, their fonts, colors, highlights, and placement remain consistent when the file is uploaded elsewhere. Explore the available dynamic caption features or read how to make captions pop without looking cheap.
Method 2: hardcode subtitles in a desktop editor
Most full video editors can import SRT files or create captions from speech. The labels differ, but the workflow is similar:
- Import the final video into a new project.
- Import an SRT file or run automatic transcription.
- Place the caption track above the video timeline.
- Apply a readable font, contrast treatment, and safe position.
- Check every caption against the audio.
- Export a new MP4 with captions included in the image.
The key export test is simple: play the file in a different app with caption controls turned off. If the words still appear, they are hardcoded.
Be careful with presets built for landscape video. Caption size, line length, and bottom margin that look fine at 16:9 can cover interface controls or faces in a vertical 9:16 feed.
Method 3: burn SRT subtitles with FFmpeg
FFmpeg is useful for automated or high-volume subtitle rendering. A basic command is:
ffmpeg -i input.mp4 -vf "subtitles=captions.srt" -c:a copy output-captioned.mp4
The subtitles video filter renders the subtitle file into the video frames. Video must be encoded again, so -c:v copy cannot be used for a burn-in operation. Audio can often be copied without re-encoding, which is what -c:a copy requests.
For broader playback compatibility and predictable quality, specify the video codec and quality settings:
ffmpeg -i input.mp4 \
-vf "subtitles=captions.srt" \
-c:v libx264 -crf 20 -preset medium \
-c:a aac -b:a 192k \
output-captioned.mp4
Lower CRF values generally mean higher quality and larger files. Test a short sample before processing a long batch.
Style FFmpeg subtitles
The filter can apply ASS-style overrides when FFmpeg is built with the required subtitle rendering support:
ffmpeg -i input.mp4 \
-vf "subtitles=captions.srt:force_style='FontName=Arial,FontSize=28,Outline=2,Shadow=0,Alignment=2,MarginV=60'" \
-c:v libx264 -crf 20 -c:a copy \
output-captioned.mp4
Font availability depends on the machine doing the render. A server that does not have the chosen font may substitute another one and break line wrapping. Install and license fonts deliberately, then test the actual container or worker image used in production.
Handle paths safely
Spaces, colons, apostrophes, and backslashes in file paths can make subtitle filter expressions difficult to quote, especially on Windows. The simplest fix is to put the video, subtitle file, and output in a working folder with short filenames. For a production script, follow the escaping rules for the shell and FFmpeg filter syntax you actually use.
The official FFmpeg format documentation lists support for common subtitle formats including SRT and WebVTT. If you are choosing between them, see SRT vs VTT.
How to make burned-in subtitles readable
Permanent captions remove the viewer's ability to change their appearance, so your design has to work on the first attempt.
Use this review checklist:
- Contrast: choose text, outline, shadow, or background treatments that work on both bright and dark frames.
- Size: review at actual phone size, not only on a desktop canvas.
- Line length: keep phrases compact and break on meaning.
- Safe zones: avoid platform controls, usernames, buttons, and lower-screen overlays.
- Timing: show the words with the speech and leave enough reading time.
- Emphasis: highlight only the words that carry the idea.
- Non-speech audio: include important cues such as
[music]or[applause]when accessibility is a goal. - Quality control: watch the full exported file, not just the editor preview.
For more design guidance, compare the best caption styles for Reels, TikTok, and Shorts.
Common hardcoded subtitle problems
The captions look soft or pixelated
Render at the final delivery resolution instead of scaling a low-resolution captioned file later. Repeated compression also damages thin outlines and small text.
The bottom line is covered by app controls
Move captions higher and preview the video inside the destination app. A generic center-safe guide is useful, but real interface controls are the final test.
The font changes on another machine
The render environment does not have the font, or the font name in the style does not match the installed family name. Package approved fonts with the production environment.
Captions appear early or late
Correct the subtitle timeline before burning it in. After rendering, the text is part of the image and cannot be retimed without another export. Use our guide to fixing out-of-sync subtitles.
The export takes longer than expected
Burn-in requires video encoding. Resolution, codec, filters, hardware, and quality settings all affect render time. Copying the video stream is not possible when the pixels are being changed.
Are hardcoded subtitles accessible?
Open captions can satisfy the caption requirement when they include the necessary speech and non-speech audio. W3C documents open captions as a sufficient technique for relevant WCAG caption criteria.
However, hardcoded captions have tradeoffs: viewers cannot turn them off, resize them, restyle them, or select a different language. A separate accessible transcript and closed-caption track can improve flexibility. Accessibility and legal requirements vary by organization and jurisdiction, so treat this as production guidance rather than legal advice.
FAQ
What does hardcode subtitles mean?
It means rendering subtitle text directly into the video image so it is permanently visible during playback.
Can hardcoded subtitles be removed?
Not cleanly. Removing them requires cropping, covering, or reconstructing part of the image. Keep an uncaptioned master file.
Does hardcoding subtitles reduce video quality?
The required re-encode can reduce quality. Use an appropriate codec and quality setting, avoid repeated exports, and inspect a sample before batching.
Can I hardcode a VTT file?
Many tools can use VTT as an input, but support varies. Converting to SRT or ASS first may make complex workflows more predictable.
Is it better to burn subtitles or upload an SRT file?
Burn subtitles when design consistency and always-on text matter. Upload SRT when viewer controls, multiple languages, and machine-readable text matter. Use both when the platform supports it.
Can ReelWords hardcode captions into an MP4?
Yes. ReelWords generates editable captions and renders them into a finished video for consistent playback across social platforms.
Keep an uncaptioned master
Hardcoded subtitles are a delivery format, not a reversible project file. Keep the source video, corrected transcript, and subtitle export alongside the captioned MP4.
You can create the timed text and final render with ReelWords caption features. See pricing for plan limits and the FAQ for supported inputs and exports.