Video Trimmer
Cut a section from MP4, WebM or MOV videos in your browser without uploading the file.
Maintained by Aygul Dovletova
How to Use the Online Video Trimmer
- Drop or pick a video - MP4, WebM, MOV, MKV, AVI or any container the browser can decode. The file stays on your device, nothing is uploaded.
- Set start and end times - type seconds directly or scrub the inline preview to find the right moment. The output length and total length update live.
- Choose stream-copy or re-encode - leave it on stream-copy (default) for a fast, lossless cut. Tick "Re-encode" if you need a frame-accurate trim or a smaller file.
- Click Trim video - ffmpeg.wasm runs the cut locally. Cancel terminates the worker within two seconds.
- Preview and download - the trimmed clip plays inline. Save it as
<original-name>-trimmed.<ext>.
What This Tool Does
This is a free, browser-based video trimmer. It cuts a section out of a video file and saves the result without re-uploading anything. The conversion runs entirely in your browser through a WebAssembly build of ffmpeg, so a screen recording, a confidential demo or a family clip never leaves your machine.
The default mode is stream-copy: ffmpeg copies the original video and audio packets between the chosen start and end timestamps without re-encoding. That is fast - a 100 MB clip trims in a few seconds - and lossless because the source codec is preserved exactly. The trade-off is that the cut snaps to the nearest keyframe before the start time, so a stream-copy trim is usually accurate to one or two seconds, not to the frame.
Why Trim Video in the Browser
Most online video trimmer tools upload your file to a server, run the cut there, and deliver a download link. That is fine for cat videos, but it is the wrong default for screen recordings of internal apps, presentations under NDA, raw interview footage, family clips or any video you would not want sitting on someone else's disk. A browser-based online video editor avoids that risk entirely - the binary is processed in memory on your computer and removed when you close the tab.
The trade-off is the initial download: ffmpeg.wasm core assets are roughly 30 MB and load on the first visit. The browser caches them, so subsequent visits are near-instant. For most short cuts the trim itself is faster than the upload would have been on a typical home connection.
Stream-Copy vs Re-encode, Explained
- Stream-copy (
-c copy) - the default. ffmpeg reads packets from the source and writes them straight to the output between your timestamps, with no decode-encode cycle. This is the fastest mode and produces a bit-for-bit copy of the original codec. Use it when you want to keep the original quality and you do not need to land on an exact frame. - Re-encode (
-c:v libx264 -crf 23 -c:a aac) - ffmpeg decodes every frame, re-encodes it with H.264 video and AAC audio, and writes a clean MP4. The cut is frame-accurate, the output is usually smaller than stream-copy, but the trim takes longer because it is a full transcode. Use it when you need a precise cut, when you want to compress the result, or when the source is a format your downstream tool cannot read.
How the Cut Works Under the Hood
For a stream-copy trim the tool runs ffmpeg -ss <start> -to <end> -i input -c copy -avoid_negative_ts make_zero output. Placing -ss before -i tells ffmpeg to seek to the keyframe before the start timestamp very fast and then start copying packets. -avoid_negative_ts make_zero rewrites the timestamps so the first written packet is at zero, which keeps players that dislike negative offsets happy.
For a re-encode the tool keeps the same -ss/-to seek but switches to libx264 with a CRF of 23 and the fast preset, plus AAC audio at 128 kbps. CRF 23 is the FFmpeg default for visually lossless H.264 - it is a good general-purpose target that keeps file sizes modest while staying free of obvious compression artefacts.
Use Cases for the Free MP4 Trimmer
- Engineering teams - cut a 5-second bug repro out of a 5-minute screen recording before pasting the clip into a PR or ticket. The original capture stays on your laptop.
- Customer success and support - trim a Loom or Zoom export down to the relevant minute before sending it to a customer. No third-party processor sees the conversation.
- Designers and product - clip a single interaction out of a long usability session for a Figma comment or a stand-up.
- Educators and trainers - extract a lecture excerpt for a Moodle or Canvas drop-in without uploading the full session.
- Streamers and creators - cut a highlight from a long VOD for Twitter or Discord without re-uploading the whole stream to a converter.
- Journalists and researchers - shorten an interview file before sharing the relevant segment with an editor or transcriber, keeping the rest of the conversation off any external server.
Tips for a Clean Trim
- If the result starts a beat early, increase the start time by 0.5-1 second. Stream-copy snaps to keyframes, so a small offset is normal.
- If the cut needs to be frame-accurate (for example, the first visible word of a sentence), tick the re-encode option. The trim takes longer but lands on the frame you asked for.
- For very long sources, trim the rough range first with stream-copy and then run a second pass with re-encode if you need to fine-tune the boundaries.
- Audio-only sources can also be cut with this tool by saving the result as the same audio extension. For dedicated audio editing, the audio trimmer is faster.
- If the output container is unusual, ffmpeg may complain about the codec-container combination. Switch to re-encode mode in that case - the resulting MP4 is the safest container.
Privacy and Browser Support
The tool runs in cross-origin-isolated mode (COOP and COEP enabled site-wide) so the multithread build of ffmpeg.wasm can use SharedArrayBuffer. That means it works in recent versions of Chrome, Edge and Firefox on desktop, on Android Chrome, and on Safari 16.4 or later. Older Safari, embedded webviews and very old browsers may not enable cross-origin isolation - in that case the page surfaces a clear "Browser not supported" message rather than failing silently.
Your video bytes are loaded into memory through ArrayBuffer, written into ffmpeg's virtual filesystem, processed and then removed. The trimmed Blob and its blob: URL live only in this tab and are revoked when you reset the tool or navigate away. None of the data is sent to a server at any point.
Frequently Asked Questions
How do I trim a video online for free without uploading it?
Open this page, drop your video into the upload zone, set start and end times in the number fields, and click Trim video. The cut runs entirely in your browser using ffmpeg.wasm. There is no signup, no upload, no watermark and no daily limit. Open DevTools - Network while you trim and you will see only the page assets and ffmpeg core download.
What video formats can the trimmer cut?
Anything ffmpeg can read: MP4 (H.264, H.265), WebM (VP8, VP9, AV1), MOV, MKV, M4V, AVI and several others. For stream-copy mode the output container is the same as the input. If you need a different output format, run the file through the video converter first and then trim.
How big can my video be?
Up to 500 MB on a typical desktop browser. WebAssembly memory is bounded, so very large files may fail to load - in that case downscale or pre-trim the source. The Tier-3 backend coming with the monorepo refactor will lift this limit for power users.
Is stream-copy or re-encode better?
Stream-copy is faster and lossless but the cut snaps to the keyframe before your start time, so it is usually accurate to one or two seconds. Re-encode is frame-accurate and can shrink the file, but it transcodes the whole clip and takes longer. Use stream-copy unless you need a precise frame or smaller output.
Why is the start time slightly off?
In stream-copy mode ffmpeg has to start at a keyframe so it does not produce an unplayable file. Your start time is rounded down to the nearest keyframe, which on most encoders happens every 1-3 seconds. If that is not acceptable, enable the re-encode option and the trimmer will land on the exact frame you requested.
Can I cut multiple ranges at once?
This tool trims a single contiguous range. To produce multiple clips from one source, run the trimmer multiple times - the file you picked stays in the page, so you can adjust the range and trim again without re-uploading. A multi-range cutter is on the roadmap for a follow-up release.
Does the tool keep the original audio and video quality?
Yes in stream-copy mode. The source codec, bitrate and resolution are preserved exactly because no decode-encode cycle happens. In re-encode mode the video is re-coded with libx264 at CRF 23 (visually lossless for most content) and the audio is re-coded to AAC at 128 kbps, which is competitive with the original for normal music and speech.
Can I cancel a slow trim?
Yes. The Cancel button terminates the ffmpeg worker within about two seconds. The page returns to the file-selected state so you can adjust your range and try again without picking the file again.
Does this work on iPhone or Android?
It works on Android Chrome and on iOS Safari 16.4 or later, where cross-origin isolation is supported. On older mobile browsers the page surfaces a "Browser not supported" message rather than failing silently. For best mobile performance, keep the source under about 100 MB.
How does this compare to a desktop video editor?
For a single trim, this tool is roughly as fast as a stream-copy in a desktop editor and avoids the install. Desktop editors win for multi-clip projects, complex transitions and precise per-frame work. The browser trimmer is for quick "I need just this slice" moments where opening a full editor is overkill.