Video editor

Features, supported frameworks, and requirements of the video editor.

The video editor is a complete video editing application that runs inside your web page. Your users arrange clips on a timeline, add text, captions, and graphics, and export the result as an MP4 or WebM video, or as an animated GIF. Your code receives the file.

The video editor with original fashion footage, the Text panel and a clip on the timelineView full size

Features

FeatureWhat the user can do
TimelineArrange clips in tracks, trim them, split them, and play the result.
VideoUpload clips, crop them, and change their volume.
AudioAdd music and voice recordings, and change their volume.
TextAdd text with any font, color, outline, and shadow.
CaptionsCreate captions from speech or from an .srt or .vtt file.
SubtitlesDeliver captions as a subtitle track, or as a caption file (.srt, .vtt, or .txt).
ImagesAdd pictures from the computer, from stock services, or from an AI model.
ShapesDraw rectangles, circles, lines, and other shapes.
Stickers and GIFsAdd stickers from built-in sets, your own sets, or GIPHY.
BackgroundsSet the color or picture behind everything.
Effects and filtersChange the look of clips and pictures.
AnimationsMake items enter, exit, and move.
TemplatesSave a design and start new videos from it.
ResizingChange the size and shape of the video, for example to 9:16.
ExportRender the video as an MP4, WebM, or GIF file.
AI assistantDescribe a change in words, and the assistant makes it.
Headless modeEdit a design from your own code, with no editor on the screen.

Supported frameworks

The editor works in any web page. You add it as a React component, or as the custom element <media-editor-video>.

FrameworkHow you add the editorGuide
React 19VideoEditor from @layermetry/media-editor/reactReact 19
React 18VideoEditor from @layermetry/media-editor/reactReact 18
Next.jsVideoEditor, loaded in the browser onlyNext.js
Vue<media-editor-video>Vue
Svelte<media-editor-video> in Svelte 5Svelte
JavaScript<media-editor-video> or mountVideoEditorJavaScript
Ruby on Rails<media-editor-video>Rails
Laravel<media-editor-video>Laravel
Blazor<media-editor-video>Blazor
ElectronVideoEditor from @layermetry/media-editor/reactElectron

React Native, Flutter, native iOS, and native Android are not supported. See Mobile.

Requirements

  • A license key. See License keys.
  • A current browser. The editor is tested in Chrome, Firefox, and Safari on the desktop, and in Chrome at the size of a phone. To export a video with sound, the browser must encode AAC sound: Firefox and every browser on desktop Linux cannot do this yet. See Browser requirements.
  • A page served over HTTPS, or from localhost. On a plain http:// page away from localhost, the browser removes the video encoder, so video export does not work.
  • For the React component: React 18 or React 19 in your application. A page without React uses the custom element, which carries its own copy of React.

When its container is narrower than 768 pixels, the editor changes to a compact layout for phones.

Next steps

Watch the editor in motion

Press Play to preview the design, then Pause to keep editing.

Play a short original clip, then pause to continue editing.

On this page