Add Text to Video

Add unlimited text overlays to any video — subtitles, captions, titles, watermarks. Drag to position, animate entries, control timing, pick fonts and colours. Export in full quality, entirely in your browser.

100% Free
No Upload Required
Unlimited Text Layers
Drag to Position
6 Animations
Custom Timing

Drop your video here

or click to browse — MP4, MOV, WebM, AVI, MKV and more
MP4MOVWebMAVIMKVWMV+More
---
Duration: --- Resolution: --- Size: ---
Preview — Click canvas to place text
👉 Click on the preview to set text position  |  Drag text to reposition
0:00.0 0:00
Text Layers
Click "Add Text" to create your first text overlay
Edit Text Layer
Opacity100%
Stroke (outline) width0px
Drop Shadow0
Output Format:
Quality:
Rendering text overlays... 0%
Drawing text on each frame...
Export Complete!
Original
---
Output
---
Text Layers
---
Format
---

How It Works

Add text overlays to any video in three simple steps.

1

Upload Your Video

Drag and drop or browse. Supports MP4, MOV, WebM, AVI, MKV and any format your browser can decode.

2

Add & Style Your Text

Click "Add Text" to create a layer. Choose font, size, colour, background style, animation and timing. Click the canvas to position it or use the quick-position grid.

3

Export & Download

Hit Export to render the video with text baked into every frame. Download as WebM, MP4, or MKV instantly with no watermarks.

Everything You Need

A complete text overlay tool — zero installs, zero uploads.

Unlimited Text Layers

Add as many text overlays as you need — subtitles, watermarks, title cards, lower thirds, captions, countdown timers. Each layer has independent styling and timing.

Custom Timing Per Layer

Set start and end times for each text layer in seconds. Show a title for the first 3 seconds, then a subtitle from 5–10 seconds. Each layer appears and disappears independently.

6 Entry Animations

None, Fade In, Slide Up, Slide Down, Scale In, and Typewriter. Animations play during the first 0.5 seconds of each text layer's appearance for smooth, professional motion.

Full Text Styling

10 fonts, bold/italic styles, custom font size, text colour with presets, stroke/outline width, drop shadow, opacity control, and 4 background styles (None, Solid, Semi-transparent, Pill).

Click-to-Position

Click anywhere on the canvas preview to instantly move the selected text layer to that position. Or use the 9-point position grid for quick alignment to corners, edges, or center.

100% Private

All text rendering uses the HTML5 Canvas 2D context's fillText and strokeText APIs running entirely in your browser. Your video never leaves your device.

Frequently Asked Questions

How do I add subtitles to a video?
Click "Add Text", type your subtitle text, set the font size, choose white colour with a semi-transparent black background, use Quick Position to place it at Bottom Center, then set the start and end time for when that subtitle should appear. Repeat for each subtitle line.
How do I add a watermark?
Click "Add Text", type your brand name or URL, set opacity to around 40–60%, choose a corner position, leave the start/end time as 0 to full duration, and set background to None. This creates a semi-transparent watermark visible throughout the entire video.
Can I add multiple text overlays at the same time?
Yes. Each click of "Add Text" creates a new independent text layer. You can have unlimited layers, each with different text, styling, position, and timing. All layers are visible simultaneously in the preview and exported into the final video.
Is my video uploaded to a server?
Never. All text rendering uses the HTML5 Canvas 2D context. Your video stays on your device and is not uploaded anywhere. The Canvas drawImage and fillText methods handle everything client-side.
How do I position text precisely?
Use the 9-point quick-position grid for common positions (corners, edges, center). For precise placement, click anywhere directly on the canvas preview — the selected text layer jumps to where you clicked. You can click-to-reposition as many times as needed before exporting.
What animations are available?
Six entry animations are available: None (instant), Fade In (opacity 0 to full), Slide Up (enters from below), Slide Down (enters from above), Scale In (grows from small to full size), and Typewriter (characters appear one by one). All animations play over the first 0.5 seconds of the layer's start time.

Free Online Add Text to Video Tool — Text Overlays in Your Browser

Our free online add-text-to-video tool lets you overlay unlimited text layers on any video — MP4, MOV, WebM, AVI and more — with full styling, animations, and custom timing. No software needed, no uploads, completely private.

How Text Is Rendered on Video Frames

Each video frame is drawn onto an HTML5 Canvas using drawImage(). Text layers are then rendered on top using the 2D context's fillText() and strokeText() methods. The font string, fill colour, shadow, and alpha are all set on the 2D context before each text draw call. Background boxes are drawn using fillRect() with the appropriate opacity. For animations, the context globalAlpha and transformation matrix (translate, scale) are modified based on how far through the animation duration the current frame is. The final canvas stream is fed into a MediaRecorder for export.

Common Use Cases

Adding subtitles and captions for accessibility, overlaying a watermark or logo text for brand protection, creating title cards for YouTube videos, adding lower-third name labels for interviews, inserting call-to-action text at specific moments, creating countdown timers, and annotating screen recordings with explanatory text are all common uses for this tool.

Scroll to Top