AppsVideo

Browser-Based Video Editor

Professional video editing in your browser — no install, no upload. Multi-track timeline, real-time color grading, 8 transitions, text animations, project snapshots, pan/hand tool, and export to 11 formats including MP4, MOV, MKV, MP3, FLAC, and 8K UHD via GPU-accelerated WebCodecs or FFmpeg WASM.

May 24, 2026Updated May 26, 202622 min read
🎬

Browser Video Editor

Multi-track timeline · 11 formats · 4K/8K UHD · Audio-only export · Snapshots · Pan tool — no upload, no install.

Multi-track timeline

The editor uses a multi-track timeline similar to DaVinci Resolve or Premiere: separate tracks for video, audio, and text overlays. Each track is independent — you can layer multiple video clips, add background music on the audio track, and stack text overlays on different lines so they don't conflict.

🎥

Video track

Drag and drop clips or images. Trim from either end by dragging the clip edge. Right-click for split, duplicate, mute, speed, and transition options. Waveform preview shown on clips.

🎵

Audio track

Background music or audio-only clips. Volume control per clip. Fade in/out handles. Waveform visualisation rendered on the clip block.

T

Text track

Text overlays at any position on the timeline. Click to set timing, content, font, color, position, and animation style.

The timeline supports drag-to-move, right-click context menus for split/delete/duplicate/mute/speed, and fully configurable keyboard shortcuts. The scroll wheel pans horizontally; Ctrl+scroll zooms in and out; the + / − toolbar buttons and = / − keyboard shortcuts also control zoom. A single crisp playhead line spans the ruler and all tracks simultaneously for precise frame-accurate navigation.

Resizable & hideable panels

Every panel adapts to your workflow. Drag any border to resize it to exactly the width or height you need. Hover the border to reveal a collapse arrow — click it to hide that panel entirely. A slim strip remains so you can expand it again without hunting for a menu.

Left panel

Media library, text presets, effects, and transitions. Drag its right border to resize. Click ‹ on the border to hide.

Timeline

Drag the top border of the timeline up or down to give it more or less height. Click the collapse arrow to hide it completely.

Properties panel

Clip, transition, and export properties. Drag the left border to widen or narrow it. Click › on the border to hide.

Pan / Hand tool

Long timelines are easier to navigate with the Pan tool. Press H or click the ✋ hand icon in the timeline toolbar to activate Pan mode. While active, click and drag anywhere on the timeline canvas to scroll it horizontally — no need to grab a scrollbar. Press V or click the hand button again to return to the Select tool.

Activate

Press H or click the hand icon in the timeline toolbar. The button turns blue and a floating pill confirms Pan mode is active.

Drag to scroll

Click and drag left/right anywhere on the timeline area — tracks, gaps, or empty space. Pointer capture keeps the drag active even if you move quickly.

Deactivate

Press V or click the hand button again to return to Select mode. All click interactions on clips resume normally.

Customizable keyboard shortcuts

Click the keyboard icon in the toolbar to open the shortcuts editor. Every action — play/pause, undo, save, tool selection, delete — can be rebound to any key combination. Toolbar tooltips update live to show your current bindings as soon as you save.

Default keyboard shortcuts

Playback
Play / PauseSpace
Go to StartHome
Go to EndEnd
Timeline
Zoom In timeline=
Zoom Out timeline-
Zoom in/out (cursor-centred)Ctrl+scroll
Edit
Split clip at playheadCtrl+K
Select all clipsCtrl+A
Delete selected clipsDelete / Backspace
UndoCtrl+Z
RedoCtrl+Shift+Z
Tools
Select toolV
Cut toolC
Pan / Hand toolH
File
Save projectCtrl+S
Open projectCtrl+O
Save snapshotCtrl+Shift+S

Import / Export

Download your bindings as a JSON file and re-import them on any device or share with a teammate.

Save to browser

Bindings are persisted in localStorage so they survive page reloads automatically.

Safe recording

While the shortcut modal is open, all editor shortcuts are suppressed so recording a new binding never accidentally triggers an action.

Project snapshots

Snapshots are named saved states of your project — think of them as git commits for your edit. Before making a big change (restructuring the timeline, swapping music, or trying a different color grade) save a snapshot so you can instantly roll back if you don't like the result.

📸

Save a snapshot

Click the camera icon in the toolbar, type an optional name, and click Save Snapshot. Shortcut: Ctrl+Shift+S.

Restore

Click Load next to any snapshot to instantly restore that state. The current timeline is replaced — create a snapshot first if you want to keep it.

✏️

Manage

Double-click a snapshot name to rename it inline. Click the trash icon to delete it. A relative timestamp (just now, 5m ago, 2h ago…) keeps the list readable.

Note: Snapshots are stored in browser localStorage alongside the regular auto-save. They are separate from the .sourcecodestackproject file — saving a snapshot does not write to disk. Use Ctrl+S for a permanent file save; use snapshots as fast checkpoints during a single editing session.

Help mode

Not sure what a button does? Click the ? icon in the toolbar to activate Help mode. The cursor changes to a help pointer, and hovering any UI element shows a rich tooltip with its name and a plain-English description of what it does. Press Escape or click the ? button again to exit.

Help mode uses a layout-invisible wrapper (CSS display: contents) so activating it never shifts, wraps, or resizes any element in the UI. Tooltips are rendered via a React portal and positioned relative to the viewport so they're never clipped by overflow:hidden panels.

Text overlays and animations

Text overlays sit on the text track with configurable start time and duration. Each overlay has a font size, color, outline, background color, position (top/center/bottom × left/center/right), and an animation style:

Fade in

Slide up

Slide down

Typewriter

Zoom in

Each animation has a configurable duration so you can control how quickly the text settles in. When animation is set to None, the text appears instantly at full opacity. Underline, bold, and italic styles are also supported.

Color grading and transitions

Color grading filters (7)

Applied per-clip using GPU-accelerated Canvas operations:

BrightnessContrastSaturationHue rotationBlurOpacityVignette

Transitions (8 types)

FadeDissolveWipe leftWipe rightSlide leftSlide rightZoom inZoom out

Smart auto-duration transitions

Drag any transition type from the Transitions tab onto the seam between two video clips. The editor measures the gap between the clips and sets the transition duration automatically — no manual entry. If the clips overlap, the overlap duration is used. If they touch, a sensible 0.5 s default is applied, capped at 2 s.

Click a transition indicator (the yellow badge on the seam) to select it and see its properties in the right panel. Right-click for a context menu to switch the transition type or remove it entirely.

Professional export formats

The Output tab in the Properties panel gives you full control over every export parameter. Choose from 11 container formats covering both video and audio-only output.

Video containers

MP4H.264 / H.265 / VP9 / AV1 — widest compatibility
WebMVP9 / VP8 — open format, excellent for the web
MOVH.264 / H.265 — Apple ecosystem & professional NLEs
MKVH.264 / H.265 / VP9 / AV1 — open container, no restrictions
AVIH.264 — legacy format, broad software support

Audio-only formats

MP3Lossy — universally compatible, smallest file size
WAVLossless PCM — uncompressed, studio-quality audio
AACLossy — better quality than MP3 at the same bitrate
FLACLossless compression — full quality, smaller than WAV
OGGVorbis — open format, great for game audio & streaming
M4AAAC in an MPEG-4 container — iTunes / Apple compatible

Video & audio codecs

Picking the right codec matters. The editor auto-selects the best default codec for each container, but you can override it manually from the Output tab.

Video codecs

H.264 (AVC)Most compatible

Best for sharing — plays on any device, TV stick, phone, or browser. Fast encode, moderate file size.

H.265 (HEVC)Smallest file

Up to 50% smaller than H.264 at the same quality. Ideal for 4K/8K archiving. Slower to encode.

VP9Web streaming

Google's open codec — excellent quality, used on YouTube. Native WebM support in all modern browsers.

VP8Legacy WebM

Predecessor to VP9. Supported everywhere WebM is. Use VP9 for new projects.

AV1Best quality

Next-generation open codec. Best compression efficiency — 30% better than VP9. Slower CPU encode.

Audio codecs

AAC

Default for MP4/MOV/M4A. Great quality-to-size ratio. Widely supported.

MP3

Universal lossy codec. Best choice when maximum compatibility is needed.

Opus

Modern low-latency codec. Default for WebM/OGG. Excellent at low bitrates.

FLAC

Lossless compression. No quality loss, ~50% smaller than PCM/WAV.

PCM (WAV)

Uncompressed raw audio. Maximum quality, largest file size. Studio standard.

Vorbis

Open lossy codec for OGG containers. Excellent quality-to-size for game audio.

Quality presets, resolution & frame rate

The Output tab groups resolution, frame rate, and quality into a clean set of presets. Need precise control? Switch to the Custom preset and dial in an exact bitrate.

Quality presets

Low~1 Mbps video / 96 kbps audio — small file, streaming quality
Medium~4 Mbps video / 128 kbps audio — good balance of size and quality
High~8 Mbps video / 192 kbps audio — sharp, suitable for HD upload
LosslessCRF 0 / PCM audio — no quality loss, archive master
CustomEnter exact video kbps and audio kbps values manually

Resolution presets

360p (640×360)480p (854×480)576p (1024×576)720p (1280×720)1080p (1920×1080)1440p / 2K4K (3840×2160)4K DCI (4096×2160)8K UHD (7680×4320)Custom W×H

Frame rate

24 fps25 fps30 fps50 fps60 fps

Audio-only export

Select any audio format — MP3, WAV, AAC, FLAC, OGG, or M4A — and the editor automatically switches to audio-only mode. No video stream is encoded, resulting in fast exports and small files. This mode is useful for extracting audio from a video project, creating podcast masters, or exporting music bed mixes.

🎚️

Sample rate

Choose from 22 050 Hz, 44 100 Hz (CD quality), 48 000 Hz (broadcast), or 96 000 Hz (high-res audio).

🔊

Channel layout

Mono (1 ch), Stereo (2 ch), or 5.1 Surround (6 ch) — select the layout that matches your target platform.

📊

Audio bitrate

Quality preset sets a sensible default (96–192 kbps). Custom preset lets you type an exact kbps value.

Note: Audio-only export always uses the CPU (FFmpeg WASM) path. GPU/WebCodecs acceleration is used only for video exports (MP4 and WebM in Chrome/Edge 94+).

FFmpeg WASM vs WebCodecs export

Export is where browser video editors historically fell short. This editor offers two paths:

FFmpeg WASM (CPU)

Runs FFmpeg in a Web Worker via WebAssembly. Works in all modern browsers. Supports all 11 output formats, every codec, and audio-only mode. Slower on long clips — a 5-minute 1080p encode might take a few minutes.

All browsers · All 11 formats

WebCodecs (GPU)

Uses the browser's built-in video encoder — hardware-accelerated (GPU) when your system exposes one. Can be faster, but export time is often limited by how fast source frames are read, so in practice it's frequently similar to the CPU path. Requires Chrome or Edge 94+. Supports MP4 and WebM video output only.

Chrome / Edge 94+ · MP4 & WebM video

Project save & load

Projects are saved as .sourcecodestackproject files — ZIP archives containing your full timeline, all clip data, and the embedded media blobs. Everything in one portable file you can share or archive.

Name sync

The project name in the toolbar automatically updates to match the filename you chose in the save or open dialog — no more 'Untitled Project' after a load.

Auto-save

Timeline data is continuously auto-saved to localStorage every few seconds so you never lose work if the tab closes unexpectedly.

Undo / redo

Full history stack — undo and redo every edit operation including clip moves, trims, track changes, and property updates.

100% client-side

Your footage never leaves the browser. All processing happens locally — no server uploads, no privacy concerns.

Frequently Asked Questions

What is the difference between FFmpeg WASM and WebCodecs export?

FFmpeg WASM runs the full FFmpeg toolchain compiled to WebAssembly in a background worker, using the CPU for encoding. It supports all 11 output formats and every codec. WebCodecs uses the browser's native hardware-accelerated encoder (GPU), which can be faster for H.264 and VP9 when your system exposes a hardware encoder — though overall export time is often limited by how fast source frames are read, so in practice the two are frequently similar. It is only available in Chrome/Edge 94+ and only for MP4/WebM video (not audio-only).

What resolutions can I export?

Export supports 10 resolution presets from 360p up to 8K UHD (7680×4320), plus a fully custom width×height input. Available presets: 360p, 480p, 576p, 720p, 1080p, 1440p (2K), 4K (3840×2160), 4K DCI (4096×2160), 8K UHD (7680×4320), and Custom. Frame rate options: 24, 25, 30, 50, and 60 fps.

What export formats are supported?

11 output formats in total. Video containers: MP4 (H.264/H.265/VP9/AV1), WebM (VP9/VP8), MOV, MKV, AVI. Audio-only: MP3, WAV, AAC, FLAC, OGG, M4A. Select any format in the Output tab of the Properties panel.

Can I export audio only?

Yes. Selecting MP3, WAV, AAC, FLAC, OGG, or M4A automatically enables audio-only mode — no video stream is encoded. You can also set the sample rate (22050–96000 Hz) and channel layout (Mono, Stereo, or 5.1 Surround).

Can I save and reload my project?

Yes. Projects are saved as .sourcecodestackproject files (self-contained ZIP archives with all timeline data and embedded media). The project name in the toolbar syncs automatically with the filename you save as or open from. Load a saved project at any time to resume where you left off.

Can I customize keyboard shortcuts?

Yes. Click the keyboard icon in the toolbar to open the shortcuts editor. You can rebind any action, export your bindings as a JSON file, import a previously saved JSON, and save them to browser localStorage so they persist across sessions. Default shortcuts include = (zoom in), - (zoom out), Home (go to start), End (go to end), Ctrl+K (split at playhead), Ctrl+A (select all), and H (pan tool).

How do I use the Pan / Hand tool?

Press H (or click the ✋ hand icon in the timeline toolbar) to activate Pan mode. While active, click and drag anywhere on the timeline to scroll it horizontally. The toolbar button turns blue and a floating indicator confirms the mode. Press V or click the hand button again to return to the Select tool.

How do transitions work?

Drag any of the 8 transition types from the Transitions tab onto the boundary between two clips on the same video track. The duration is automatically calculated from the gap between the clips. Click a transition indicator (yellow badge on the seam) to select it and edit its type in the Properties panel. Right-click for a context menu with change-type and remove options.

What are project snapshots?

Snapshots are named saved states of your project — like git commits for your edit. Click the camera icon in the toolbar, type an optional name, and click Save Snapshot (Ctrl+Shift+S). Each entry shows a relative timestamp and can be loaded, renamed (double-click), or deleted. Snapshots are stored in browser localStorage and are separate from the .sourcecodestackproject file.

Can I resize or hide the side panels?

Yes. Drag the thin border between any panel and the canvas to resize it. Hover the border to reveal a collapse arrow — click it to hide that panel. A slim strip with an expand arrow remains so you can show it again without losing your layout.