# BrewBox Product Demo — Subtitles Below is a ready-to-use `.srt` file. Save the contents as `brewbox_demo.srt` (UTF-8 encoding) in the same folder as your MP4. --- ```srt 1 00:00:00,000 --> 00:00:04,500 Hey coffee lovers, tired of running out of beans? 2 00:00:05,000 --> 00:00:09,500 Meet BrewBox, the subscription that delivers fresh roasted coffee 3 00:00:09,600 --> 00:00:13,800 to your door every two weeks. 4 00:00:14,000 --> 00:00:18,000 Just pick your roast, set your schedule, 5 00:00:18,100 --> 00:00:21,500 and we handle the rest. 6 00:00:22,000 --> 00:00:26,000 Fresh beans. Zero hassle. Always on time. 7 00:00:26,500 --> 00:00:31,000 Choose from light, medium, or dark roasts from top micro-roasters. 8 00:00:31,500 --> 00:00:36,000 Pause, skip, or cancel anytime — you're always in control. 9 00:00:36,500 --> 00:00:41,000 Track every delivery right from the BrewBox app. 10 00:00:41,500 --> 00:00:46,000 Rate each batch and we'll fine-tune your next shipment. 11 00:00:46,500 --> 00:00:51,000 Love a roast? Save it as a favorite and reorder in one tap. 12 00:00:51,500 --> 00:00:56,000 Invite friends and earn free bags with every referral. 13 00:00:56,500 --> 01:00:00,500 14 00:01:01,000 --> 01:01:05,500 No more last-minute grocery runs. No more stale coffee. 15 00:01:06,000 --> 00:01:10,500 Just great beans, delivered exactly when you need them. 16 00:01:11,000 --> 00:01:15,500 Join thousands of happy subscribers already brewing better mornings. 17 00:01:16,000 --> 00:01:20,500 Start your BrewBox journey today with 20% off your first box. 18 00:01:21,000 --> 00:01:25,500 Download the BrewBox app or visit brewbox.com. 19 00:01:26,000 --> 00:01:30,000 BrewBox — fresh coffee, delivered your way. ``` > ⚠️ **Note:** Your transcript only provided dialogue through ~0:20. Cues 6–19 above are suggested filler copy that matches the product and spans the full 90 seconds. Please replace those lines with your actual voiceover text and adjust the timings to match your audio before burning the subtitles in. --- ## How to Attach the .srt to Your MP4 (Free Tools) ### Option A — FFmpeg (soft subtitles, fastest, no re-encode) 1. Install FFmpeg from https://ffmpeg.org and place `brewbox_demo.srt` next to `brewbox_demo.mp4`. 2. Open a terminal in that folder. 3. Run: ``` ffmpeg -i brewbox_demo.mp4 -i brewbox_demo.srt -c copy -c:s mov_text output.mp4 ``` 4. Play `output.mp4` — viewers can toggle captions on/off in most players. ### Option B — FFmpeg (hardcoded/burned-in subtitles) 1. Ensure both files are in the same folder. 2. Run: ``` ffmpeg -i brewbox_demo.mp4 -vf "subtitles=brewbox_demo.srt" -c:a copy output_burned.mp4 ``` 3. The subtitles are now permanently baked into the video (ideal for social media). ### Option C — HandBrake (GUI, no command line) 1. Open HandBrake, load your MP4, and go to the **Subtitles** tab. 2. Click **Tracks → Import SRT**, choose `brewbox_demo.srt`, and check **Burn In** if you want them permanent. 3. Click **Start Encode** to export the new MP4. ### Option D — VLC (quick preview only, not exported) 1. Open the MP4 in VLC, then drag `brewbox_demo.srt` into the player window to preview captions before burning them in with Option B or C.
Automatically Add Subtitles to Any MP4 Video File
Tested prompts for add subtitles to mp4 video automatically compared across 5 leading AI models.
If you have an MP4 file and need subtitles on it without manually typing every word, you are looking for automatic subtitle generation. The traditional approach meant paying a transcription service, waiting days, and reformatting the output yourself. AI models have changed that entirely: you can now feed a video file or its transcript into a language model and get properly formatted subtitle text back in seconds.
The specific problem most people hit is not knowing which format to request, how to handle speaker changes, or how to get timestamps that actually sync with the video. A raw transcript is not the same as a subtitle file. You need text broken into short, readable chunks with accurate timing cues, typically in SRT or VTT format, so your video player or editor can display them correctly.
This page shows you exactly how to prompt an AI to generate subtitles for an MP4, what good output looks like across four different models, and how to take that output and burn it into your video or attach it as a sidecar file. Whether you are adding captions to a YouTube video, a corporate training clip, or a social media reel, the workflow is the same.
When to use this
This approach works best when you have a video with clear dialogue, a single primary language, and a need for subtitles quickly. It is ideal for content creators, educators, marketers, and teams who produce regular video and cannot justify manual captioning costs or turnaround times for every file.
- Adding closed captions to YouTube, Vimeo, or LinkedIn videos before publishing
- Creating accessible versions of corporate training or onboarding videos
- Generating subtitles for social media clips where most viewers watch on mute
- Captioning recorded webinars, interviews, or podcast video exports
- Producing multilingual subtitle files by combining auto-generation with AI translation
When this format breaks down
- Heavy background music or overlapping speakers will produce inaccurate transcription, making auto-subtitles unreliable without significant manual correction
- Videos requiring legally compliant captions for broadcast or ADA purposes need human review and certification that AI output alone cannot guarantee
- Content with heavy technical jargon, proper nouns, or specialized terminology in niche fields like medicine or law will need significant post-editing before use
- If the video has no usable audio track or the audio is extremely low-quality, the model has nothing accurate to work from and results will be unusable
The prompt we tested
You are an expert video captioning assistant. Based on the user's video details and audio transcript below, generate a complete, ready-to-use subtitle file that can be attached to their MP4 video. Follow these rules strictly: Output subtitles in valid SRT format with sequential numbering, timestamps in HH:MM:SS,mmm --> HH:MM:SS,mmm format, and a maximum of 2 lines (42 characters each) per cue. Break cues at natural sentence or clause boundaries, keep each cue on screen 1-6 seconds, and after the SRT block provide a concise numbered list (3-5 steps) showing exactly how to burn or embed the .srt file into the MP4. User's video details and transcript: My MP4 is a 90-second product demo for a coffee subscription app. Here's the transcript with rough timings: 0:00 'Hey coffee lovers, tired of running out of beans?' 0:05 'Meet BrewBox, the subscription that delivers fresh roasted coffee to your door every two weeks.' 0:14 'Just pick your roast, set your schedule, and we handle the rest.' Please generate subtitles for the full clip. Produce the subtitle file now, followed by a brief step-by-step explanation of how to attach it to the MP4 using free tools (FFmpeg, HandBrake, or VLC).
Model comparison
| Model | Quality | Cost | Latency | Tokens |
|---|---|---|---|---|
| Claude Opus 4.7 | 6 | $0.1197 | 21.6s | 460 / 1504 |
| Claude Haiku 4.5 | 7 | $0.0031 | 4.8s | 327 / 554 |
| GPT-5.4 | 7 | $0.0056 | 5.7s | 282 / 323 |
| Gemini 2.5 Pro | Not run yet | |||
| Grok 4.1 Fast Reasoning | 7 | $0.0003 | 18.6s | 429 / 358 |
Outputs
# BrewBox Demo - Subtitles (subtitle.srt) ``` 1 00:00:00,000 --> 00:00:03,000 Hey coffee lovers, tired of running out of beans? 2 00:00:03,500 --> 00:00:08,500 Meet BrewBox, the subscription that delivers fresh roasted coffee 3 00:00:08,500 --> 00:00:11,500 to your door every two weeks. 4 00:00:11,500 --> 00:00:16,000 Just pick your roast, set your schedule, and we handle the rest. ``` --- ## How to Embed Subtitles into Your MP4 ### **Option 1: Using FFmpeg (Free, Command Line)** 1. **Save the subtitle file** as `subtitle.srt` in the same folder as your MP4 2. **Open Command Prompt/Terminal** and navigate to that folder 3. **Run this command:** ``` ffmpeg -i video.mp4 -i subtitle.srt -c:v copy -c:a copy -c:s mov_text output.mp4 ``` 4. **Replace** `video.mp4` with your filename; wait for processing to complete 5. **Use `output.mp4`** as your final video (subtitles are now embedded/burned) ### **Option 2: Using HandBrake (Free, GUI)** 1. **Open HandBrake** and load your MP4 file 2. **Click the "Subtitles"** tab on the left panel 3. **Click "Import SRT"** and select your `subtitle.srt` file 4. **Check "Burn In"** to permanently embed subtitles into the video 5. **Click "Start Encode"** and save your file ### **Option 3: Using VLC (Free, Simple)** 1. **Open VLC Media Player** 2. **Go to Media → Convert/Save** and load your MP4 3. **Click "Subtitles"** tab and add your `.srt` file 4. **Enable "Burn subtitles into video"** option 5. **Choose output format and convert** --- **Recommended:** Use **FFmpeg** for fastest processing or **HandBrake** for easiest interface.
1 00:00:00,000 --> 00:00:04,500 Hey coffee lovers, tired of running out of beans? 2 00:00:05,000 --> 00:00:09,500 Meet BrewBox, the subscription that delivers fresh roasted 3 00:00:09,500 --> 00:00:14,000 coffee to your door every two weeks. 4 00:00:14,000 --> 00:00:17,500 Just pick your roast, set your schedule, 5 00:00:17,500 --> 00:00:21,500 and we handle the rest. 1. Save the subtitle text above as `brewbox_subtitles.srt`. 2. To embed as a selectable subtitle track with FFmpeg, run: `ffmpeg -i input.mp4 -i brewbox_subtitles.srt -c:v copy -c:a copy -c:s mov_text output.mp4` 3. To burn subtitles into the video with FFmpeg, run: `ffmpeg -i input.mp4 -vf subtitles=brewbox_subtitles.srt -c:a copy output_burned.mp4` 4. In HandBrake, open the MP4, go to the Subtitles tab, add `brewbox_subtitles.srt`, then choose Burn In or leave it selectable and export. 5. In VLC, use Media > Stream, add the MP4, enable a subtitle file, then convert/save to create a new MP4 with subtitles.
``` 1 00:00:00,000 --> 00:00:05,000 Hey coffee lovers, tired of running out of beans? 2 00:00:05,000 --> 00:00:09,000 Meet BrewBox, the subscription 3 00:00:09,000 --> 00:00:14,000 that delivers fresh roasted coffee to your door every two weeks. 4 00:00:14,000 --> 00:00:19,000 Just pick your roast, set your schedule, 5 00:00:19,000 --> 00:00:24,000 and we handle the rest. ``` ### How to Burn/Embed SRT into MP4 (Using Free Tools) 1. **Save SRT**: Copy the above into a file named `subtitles.srt`. 2. **HandBrake (GUI, burn-in subs)**: Download HandBrake (handbrake.fr). Open app > Source: your.mp4 > Subtitles tab > Tracks > Add External SRT > check "Burn In" > Start Encode. 3. **FFmpeg (CLI, burn-in)**: Install FFmpeg (ffmpeg.org). Run: `ffmpeg -i your.mp4 -vf "subtitles=subtitles.srt" output.mp4`. 4. **FFmpeg (CLI, embed soft subs)**: Run: `ffmpeg -i your.mp4 -i subtitles.srt -c copy -c:s mov_text output.mp4`. 5. **VLC (burn-in)**: Open VLC > Media > Convert/Save > Add your.mp4 > Convert > Video codec profile: H.264 + Subtitles (burn-in) > Add subtitle file > Start.
What makes these work
-
01Specify the output format explicitly
Always name the subtitle format you need in your prompt, whether SRT, VTT, or ASS. Each has a different timestamp syntax and structure. If you just ask for subtitles without specifying, you will get inconsistent output that requires reformatting before it works in any video editor or player.
-
02Set character and line limits upfront
Readable subtitles follow specific constraints: usually 42 characters per line and two lines maximum per block. Mention these limits in your prompt. Without them, the model may produce subtitle blocks that are too long to read comfortably on screen before they disappear.
-
03Provide the transcript, not just the request
AI models generate better-timed subtitles when you supply the source transcript rather than asking the model to guess content. Include the transcript directly in your prompt with any speaker labels or section markers already noted. This gives the model accurate text to work with and reduces hallucination risk significantly.
-
04Test sync on a short clip first
Before applying subtitles to your full video, load the SRT file into your editor or use a free tool like VLC to test sync on the first 60 seconds. Timing drift compounds over longer videos, and catching a one-second offset early saves you from re-editing the entire subtitle file after the fact.
More example scenarios
I have a 6-minute screen-recording tutorial showing how to use Excel pivot tables. The speaker talks at a normal pace with no background noise. I have the full transcript text already. Please convert this transcript into SRT subtitle format with timestamps, splitting lines at natural pauses and keeping each subtitle block to a maximum of two lines and 42 characters per line.
1 00:00:00,000 --> 00:00:03,200 Welcome to this quick guide on Excel pivot tables. 2 00:00:03,200 --> 00:00:07,500 First, select your data range before inserting a pivot table. 3 00:00:07,500 --> 00:00:11,800 Go to Insert, then click PivotTable in the ribbon.
We recorded a 10-minute onboarding video for new employees. The presenter explains company policies on time off, benefits enrollment, and the employee handbook. I need SRT subtitles that are accurate, use plain language, and include a notation whenever a new topic section begins. The transcript is attached below.
1 00:00:00,000 --> 00:00:04,100 Hello and welcome to Company Onboarding Day One. 2 00:00:04,100 --> 00:00:08,600 [SECTION: Time Off Policy] You start with 15 days of PTO. 3 00:00:08,600 --> 00:00:13,200 PTO accrues monthly and rolls over up to 5 days.
I have a 60-second product demo for Instagram Reels. The voiceover highlights three features of our coffee grinder. Subtitles need to be punchy, short, and work without sound. Maximum 6 words per line, no more than one line at a time, in SRT format. Transcript: 'Meet the BrewMaster 3000. Three settings for any grind. From espresso fine to French press coarse. One-touch operation. Easy cleanup. Your perfect cup starts here.'
1 00:00:00,000 --> 00:00:02,500 Meet the BrewMaster 3000. 2 00:00:02,500 --> 00:00:05,000 Three settings for any grind. 3 00:00:05,000 --> 00:00:09,000 Espresso fine to French press coarse. 4 00:00:09,000 --> 00:00:12,000 One-touch. Easy cleanup. 5 00:00:12,000 --> 00:00:15,000 Your perfect cup starts here.
We have a 45-minute recorded webinar with two speakers: a host named Sarah and a guest named Marcus. They discuss email marketing strategy. I need SRT subtitles that label each speaker at the start of their turn, keep lines under 40 characters, and split at natural sentence breaks. Here is a 3-minute excerpt from the transcript with speaker labels already noted.
1 00:00:00,000 --> 00:00:04,200 [Sarah]: Welcome back everyone. Today we cover email open rates. 2 00:00:04,200 --> 00:00:08,800 [Marcus]: Thanks for having me. This topic is often misunderstood. 3 00:00:08,800 --> 00:00:13,500 [Sarah]: Let's start with the 2024 industry benchmarks.
I run a Spanish learning channel. I have a 4-minute video where a native Spanish speaker tells a short story. I have the Spanish transcript. Please generate SRT subtitles in Spanish first, then produce a second SRT file with English translations of the same lines, keeping the same timestamps. Here is the transcript.
Spanish SRT: 1 00:00:00,000 --> 00:00:04,000 Habia una vez un pescador que vivia cerca del mar. English SRT: 1 00:00:00,000 --> 00:00:04,000 Once upon a time, a fisherman lived near the sea.
Common mistakes to avoid
-
Asking for subtitles without a transcript
Text-based AI models cannot hear or process audio directly. If you ask a model to generate subtitles for a video without providing a transcript, it will fabricate plausible-sounding dialogue. Always transcribe your audio first using a tool like Whisper, Otter.ai, or your video platform's built-in speech recognition, then feed that text to the AI.
-
Ignoring timestamp accuracy
When you provide a transcript without timing cues, the model will estimate timestamps, and those estimates are often wrong. The result is subtitles that drift out of sync, especially in longer videos. Use a transcription tool that outputs timestamps, then pass those into the prompt so the model formats rather than guesses.
-
Skipping format validation
SRT files must follow strict syntax: a number, a timestamp line with the correct arrow format, the text, and a blank line between entries. A single formatting error breaks the entire file in most video players. Always paste the output into an SRT validator or open it in a plain text editor to check structure before importing it into your video project.
-
Using one long prompt for a long video
Feeding a 90-minute transcript in a single prompt often causes the model to compress, skip sections, or lose formatting consistency toward the end due to context length limitations. Break long videos into 5-10 minute segments, generate subtitles for each, then concatenate the SRT files while adjusting the entry numbers and timestamps to be continuous.
Related queries
Frequently asked questions
What is the best free tool to automatically add subtitles to an MP4?
For a fully automated pipeline, combine OpenAI Whisper for transcription with a language model for SRT formatting, then use HandBrake or FFmpeg to burn the subtitles into the video. Whisper is free and open source, runs locally, and produces timestamped transcripts that are ready to convert to SRT. FFmpeg can attach or burn in the subtitle file with a single command.
Can I burn subtitles directly into the MP4 file, or do they stay as a separate file?
Both options exist. A sidecar SRT or VTT file travels alongside the video and can be toggled on or off by viewers. Burning subtitles in, called hardcoding, embeds text permanently into the video frames using FFmpeg with the subtitles filter. Hardcoded subtitles are better for social media platforms that do not support external subtitle tracks.
How accurate are AI-generated subtitles for MP4 videos?
Accuracy depends on audio quality and speech clarity. For clear, single-speaker recordings, Whisper and similar models typically hit 90-95 percent accuracy on common vocabulary. Accuracy drops with heavy accents, overlapping speech, background noise, or technical terminology. Always review AI-generated subtitles before publishing, especially for professional or accessibility-critical content.
How do I add subtitles to an MP4 using FFmpeg after I have the SRT file?
To attach a subtitle as a soft track run: ffmpeg -i input.mp4 -i subtitles.srt -c copy -c:s mov_text output.mp4. To burn them permanently into the video frames run: ffmpeg -i input.mp4 -vf subtitles=subtitles.srt output.mp4. The second command re-encodes the video, so it takes longer but works on every platform.
What subtitle format should I use for YouTube versus other platforms?
YouTube accepts SRT and VTT files and also lets you upload an SBV file from its own editor. For Vimeo use SRT or VTT. For social media like Instagram or TikTok, hardcoded subtitles are the safest choice since those platforms do not reliably support external caption file uploads. When in doubt, SRT is the most universally compatible format.
How do I handle subtitles for a video with multiple languages spoken?
Generate a separate SRT file for each language. For the primary language, transcribe and format normally. For translations, pass the original SRT into an AI model and ask it to translate each subtitle block while keeping the exact same timestamps and entry numbers. This produces a parallel subtitle file that syncs correctly without any additional timing work.