{"id":99,"date":"2026-07-14T08:49:16","date_gmt":"2026-07-14T08:49:16","guid":{"rendered":"https:\/\/allmediatools.com\/blog\/add-subtitles-to-video-free\/"},"modified":"2026-07-14T08:49:16","modified_gmt":"2026-07-14T08:49:16","slug":"add-subtitles-to-video-free","status":"publish","type":"post","link":"https:\/\/allmediatools.com\/blog\/add-subtitles-to-video-free\/","title":{"rendered":"How to Add Subtitles to a Video for Free"},"content":{"rendered":"\n<p class=\"article-intro wp-block-paragraph\">Most social video is watched muted, which means captions are often the difference between someone watching and someone scrolling past. Generating accurate subtitles for free takes minutes thanks to automatic speech-to-text built into most modern tools.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Soft Subtitles vs Burned-In<\/h2>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h3 class=\"wp-block-heading\">Soft (.srt\/.vtt)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Separate text file with timestamps. Viewer can toggle on\/off. Use for YouTube, streaming, or multi-language.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h3 class=\"wp-block-heading\">Burned-in (hardcoded)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Text rendered into the video pixels \u2014 permanent, always displays. Use for Instagram, TikTok, and video ads.<\/p>\n<\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Method 1: YouTube Studio Auto-Captions<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Upload to YouTube (can be unlisted\/private).<\/li>\n\n\n\n<li>Go to <strong>YouTube Studio \u2192 Subtitles<\/strong> \u2014 auto-generated within minutes.<\/li>\n\n\n\n<li>Review and correct the text.<\/li>\n\n\n\n<li>Publish, or download the .srt via <strong>Actions \u2192 Download \u2192 .srt<\/strong>.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Method 2: CapCut (Auto-Captions, Burned-In)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Import your video \u2192 <strong>Text \u2192 Auto captions<\/strong> \u2192 CapCut transcribes automatically \u2192 edit any errors \u2192 style with built-in templates (including popular &#8220;TikTok-style&#8221; bouncing-word captions) \u2192 export with captions burned in by default.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 3: Kapwing (Browser-Based)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Upload \u2192 <strong>Subtitles \u2192 Auto-transcribe<\/strong> \u2192 review \u2192 export as burned-in video or download the .srt separately. Free tier watermarks exports; CapCut is the better free option for watermark-free burned-in captions.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Method 4: Write Your Own .srt Manually<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>1\n00:00:00,000 --&gt; 00:00:02,500\nWelcome to this tutorial.\n\n2\n00:00:02,500 --&gt; 00:00:05,000\nToday we're covering three key steps.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Save with the same name as your video (myvideo.srt next to myvideo.mp4) and most players load it automatically.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Method 5: FFmpeg (Burn an .srt Into the Video)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>ffmpeg -i input.mp4 -vf \"subtitles=captions.srt\" output.mp4\n\n# Windows path with drive letter \u2014 escape carefully:\nffmpeg -i input.mp4 -vf \"subtitles='C\\:\/videos\/captions.srt'\" output.mp4<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This re-encodes the video \u2014 a good point to also set your target quality. See <a href=\"\/blog\/what-is-bitrate-video-audio-explained\">what bitrate to export at<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Improving Auto-Caption Accuracy<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use clean audio \u2014 background music under dialogue hurts accuracy<\/li>\n\n\n\n<li>Avoid heavy cross-talk\/overlapping speakers<\/li>\n\n\n\n<li>Expect to manually fix brand names and jargon<\/li>\n\n\n\n<li>Always review before publishing \u2014 auto-captions are a first draft<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">After Exporting: File Size<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Burning subtitles requires a full re-encode \u2014 a good moment to also compress. Run it through <a href=\"https:\/\/allmediatools.com\/compress-video-online\">AllMediaTools Video Compressor<\/a>, or use <a href=\"https:\/\/allmediatools.com\/convert-video-online\">AllMediaTools Video Converter<\/a> to change container format.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/allmediatools.com\/compress-video-online\">Compress Your Captioned Video \u2192<\/a><\/div>\n<\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Frequently Asked Questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Are auto-captions accurate enough to publish without editing?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Often close enough for casual use. For anything professional or brand-facing, always review and correct first.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Which platforms need burned-in subtitles?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">YouTube, Vimeo, and most streaming platforms support soft subtitle tracks. Instagram feed posts, TikTok, and many ad platforms need burned-in text to guarantee display.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Can I add subtitles in a different language than the audio?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Yes \u2014 transcribe in the spoken language, translate the text, and re-import as a new .srt for a translated track.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Will adding subtitles make my file bigger?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Soft subtitles add negligible size. Burned-in subtitles require a re-encode, which may change size slightly depending on export settings.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Most social video is watched muted, which means captions are often the difference between someone watching and someone scrolling past. Generating accurate subtitles for free takes minutes thanks to automatic speech-to-text built into most modern tools. Soft Subtitles vs Burned-In Soft (.srt\/.vtt) Separate text file with timestamps. Viewer can toggle on\/off. Use for YouTube, streaming, &#8230; <a title=\"How to Add Subtitles to a Video for Free\" class=\"read-more\" href=\"https:\/\/allmediatools.com\/blog\/add-subtitles-to-video-free\/\" aria-label=\"Read more about How to Add Subtitles to a Video for Free\">Read more<\/a><\/p>\n","protected":false},"author":0,"featured_media":100,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[39],"tags":[212,213,216,214,215],"class_list":["post-99","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-video-tools","tag-add-subtitles-to-video-free","tag-auto-captions-video","tag-burn-subtitles-into-video","tag-free-subtitle-generator","tag-srt-subtitles-online"],"jetpack_featured_media_url":"https:\/\/allmediatools.com\/blog\/wp-content\/uploads\/2026\/07\/seo-publish-add-subtitles-to-video-free.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/allmediatools.com\/blog\/wp-json\/wp\/v2\/posts\/99","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/allmediatools.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/allmediatools.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/allmediatools.com\/blog\/wp-json\/wp\/v2\/comments?post=99"}],"version-history":[{"count":0,"href":"https:\/\/allmediatools.com\/blog\/wp-json\/wp\/v2\/posts\/99\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/allmediatools.com\/blog\/wp-json\/wp\/v2\/media\/100"}],"wp:attachment":[{"href":"https:\/\/allmediatools.com\/blog\/wp-json\/wp\/v2\/media?parent=99"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/allmediatools.com\/blog\/wp-json\/wp\/v2\/categories?post=99"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/allmediatools.com\/blog\/wp-json\/wp\/v2\/tags?post=99"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}