Subtitle Editor
Edit SRT and WebVTT subtitles in your browser. Retime cues, shift timestamps, split or merge lines, preview with video, and export to SRT or VTT.
Edit, Synchronize, and Convert SRT and WebVTT Subtitles Online
The Subtitle Editor is a browser-based caption timing and editing workspace for video editors, translators, localization teams, and content creators. It parses both SubRip (.srt) and W3C WebVTT (.vtt) subtitle files directly in your browser, allowing you to shift timestamps, fix frame-rate drift, split or merge cues, run batch find-and-replace across thousands of lines, preview captions against a local video file, and export clean files without uploading media to a server.
If you only need a direct one-click format conversion, you can also use our dedicated SRT to VTT, VTT to SRT Converter, SRT to CSV, CSV to SRT Converter, SRT to XLSX, and SRT to Text tools.
How to Use the Subtitle Editor
- Load your subtitle file: Paste SubRip (
.srt) or WebVTT (.vtt) text into the Input Subtitles editor, or click the upload icon to open a local file from your device. - Shift or scale timestamps globally: Use the Time Shift Offset field (in milliseconds) or the quick
-500 ms/-100 ms/+100 ms/+500 msbuttons to fix constant audio-caption delay. If captions drift progressively over a long video, select a Frame Rate Conversion Preset or enter a custom Speed Scale Factor. - Clean and format cues: Toggle Strip HTML & Style Tags to remove
<i>,<b>, and ASS override tags (such as{\an8}), or keep Renumber Cues Sequentially enabled to repair broken index numbers. - Edit individual cues on the timeline: Use the Interactive Cue Timeline to edit start times, end times, and caption text inline. Click Split to divide a long cue at its midpoint timestamp, Merge Next to combine two consecutive cues, or -100ms / +100ms to nudge a single line.
- Preview with video and export: Optionally select a local video file under Video & Timestamp Caption Preview to verify synchronization in real time, choose your target Output Format (
.srt,.vtt, or plain.txt), and copy or download the finished file.
Understanding Subtitle Synchronization: Constant Offset vs. Frame-Rate Drift
Out-of-sync subtitles typically fall into one of two mathematical categories:
- Constant Offset (Linear Shift): Every subtitle appears a fixed amount of time too early or too late (for example, 1.5 seconds late because a studio intro was removed). Adding
-1500ms or+1500ms shifts every start and end timestamp by the exact same offset:T_new = T_old + Offset. - Frame-Rate Drift (PAL vs. NTSC Speedup): Subtitles start in sync at the beginning of a film but drift further apart every minute. This happens when captions timed for a
23.976 fps(NTSC cinema) video are played on a25 fps(PAL broadcast) release, or vice versa. Applying the linear transformationT_new = (T_old * ScaleFactor) + Offsetrescales every cue proportionally so captions stay locked from opening scene to end credits.
Supported Subtitle Standards and Formats
- SubRip (
.srt): The universal plain-text subtitle format supported by VLC, DaVinci Resolve, Adobe Premiere Pro, Final Cut Pro, YouTube, and hardware media players. Uses sequential integer cue numbers andHH:MM:SS,mmm --> HH:MM:SS,mmmtimestamps with a comma decimal separator. - WebVTT (
.vtt): The W3C Web Video Text Tracks standard required by HTML5<track>elements and modern web players. Begins with aWEBVTTheader and uses a period (.) before milliseconds (HH:MM:SS.mmm). - Plain Text Transcript (
.txt): Strips all sequence numbers and timecode headers to produce clean, line-by-line spoken dialogue suitable for show notes, articles, or VTT to Text Converter workflows.
Privacy and Client-Side Performance
All subtitle parsing, timestamp arithmetic, find-and-replace operations, and video previews execute 100% locally in your browser using JavaScript and the HTML5 File and URL.createObjectURL APIs. Even multi-hour feature film scripts with 8,000+ lines are processed in memory with paginated timeline rendering, and your subtitle files and video files are never uploaded to any external server.
Frequently Asked Questions
How do I delay or advance all subtitles by a specific number of seconds?
Enter the desired offset in milliseconds into the Time Shift Offset input. Use a positive number (such as 1500 for 1.5 seconds) to delay subtitles so they appear later, or a negative number (such as -1500) to make subtitles appear earlier.
Why do my subtitles start in sync and gradually fall behind as the video plays?
Gradual drift occurs when the subtitle file was timed for a different frame rate than your video file, most commonly between 23.976 fps and 25 fps. Select the matching Frame Rate Conversion Preset (for example, 23.976 fps to 25 fps (0.95904x)) to rescale all timestamps proportionally.
How does splitting a subtitle cue work?
Clicking Split on any cue calculates the exact midpoint between its start and end timestamps, divides multi-line or multi-word dialogue into two balanced parts, and automatically renumbers all subsequent cues.
Can I edit large 5,000+ line SRT files without freezing my browser?
Yes. While global operations like time shifting, speed scaling, find-and-replace, and file export process the entire subtitle array in memory in milliseconds, the interactive cue timeline paginates cues into 40-item pages so the DOM remains fast and responsive.
Does previewing a video upload my video file to the internet?
No. Selecting a local video file creates a temporary browser-only object URL (blob:) that plays directly from your local disk inside the HTML5 video element. Neither your video nor your subtitle script ever leaves your computer.