Media

Video Trimmer

Cut a section out of a video, or drop the dead time at either end — no upload, no re-encoding. The timeline shows the source keyframes, because a lossless copy can only begin on one; a re-encode mode covers cuts that land between them.

  • Lossless by default: the streams are copied, not re-encoded
  • Keyframes drawn on the timeline, so the real cut point is never a surprise

Drop a video file here

The file stays on your machine — it is never uploaded

Reads MP4, MOV, WebM, MKV, AVI, M4V, and most other formats FFmpeg understands.

No video selected yet

Choose a video file to begin. The trimming engine is only downloaded once you do.

Output

Overview

Cutting a video should not cost you a generation of quality or twenty minutes of encoding. This tool is built around the copy, and is honest about the one place a copy cannot go.

  1. 01

    Lossless cutting by default

    The selected span is copied packet for packet. Nothing is decoded, nothing is re-compressed, and the picture in the output is the same data that was in the source. Once the file is loaded, the copy itself is typically a matter of seconds.

  2. 02

    The keyframe map, on the timeline

    Video is stored as occasional complete frames with differences in between, and a copy can only begin on a complete one. Those positions are scanned out of the file and drawn as ticks under the timeline, so the cut points available to you are visible rather than guesswork. On very long recordings the ruler shows a sample of them.

  3. 03

    The adjustment is shown, not hidden

    In copy mode your start point stays exactly where you put it, and the panel states it next to the time the cut will really begin — the last keyframe before it. Other trimmers make the same adjustment silently and hand back a clip that is a second longer than requested.

  4. 04

    An exact mode when it matters

    When the cut has to land on a particular moment rather than a keyframe, re-encode mode decodes and rebuilds the selection so it starts on the time you set. The timeline moves one frame at a time when the source frame rate can be read. It is slower and the picture is rebuilt, so it is offered as a choice rather than forced on everyone.

  5. 05

    Cut points you can type

    The two fields take 12.5, 1:23.4, or 1:02:03.4, which is what you get when you copy a timestamp out of a player or a transcript. Dragging is fine for finding a moment; typing is better for hitting one you already know.

  6. 06

    Local processing

    FFmpeg is compiled to WebAssembly and runs in the tab. Nothing is uploaded, there is no server-imposed size cap, no queue, no watermark, and no account.

How to use

From a full recording to a trimmed clip in four steps.

  1. 01

    Drop a video onto the page, or use the file picker. The trimming engine starts downloading at this point — it is about 31 MB and only happens once — and the file is then scanned for its keyframe positions.

  2. 02

    Set the two cut points. Drag the handles, type the times in, or scrub the preview and press Start here and End here to take the current position.

  3. 03

    Leave the method on Copy for a lossless cut. The panel underneath states where the cut will actually begin; if that is not close enough, switch to Re-encode.

  4. 04

    Press Trim. The result plays in place with its requested and actual length side by side, so you can check it before downloading.

Details

Details that decide whether the clip you get is the clip you meant.

  • Lossless stream copy, with no decode and no quality generation lost
  • Keyframe positions scanned from the file and drawn on the timeline
  • In copy mode the real start moves back to a keyframe, and both times are shown
  • Exact re-encode mode for cuts that have to fall between keyframes
  • Two-handle timeline with a playhead and in-page playback of the selection
  • Cut points can be typed as seconds, m:ss.ddd, or h:mm:ss.ddd, down to the millisecond
  • Start here and End here take the current playback position
  • Audio is carried through, and files with no audio track are handled too
  • Requested and actual output length reported side by side
  • Original container kept for a copy; MP4 written for a re-encode
  • Real byte-level progress while the engine downloads, not a fake animated bar
  • A running trim can be cancelled

Use cases

The situations where cutting locally, and losslessly, is worth the difference.

  1. Trimming the dead air off a recording

    Almost every screen recording opens with a few seconds of finding the window and closes with a hunt for the stop button. Cutting both ends is the most common edit there is, and it is the one that least deserves a full re-encode.

  2. Pulling a clip out of a long session

    A two-hour meeting, stream, or gameplay capture usually contains one part worth sending on. Only the span you asked for is written out, and no frame of it is re-encoded — though the browser still has to load the whole recording and scan it for keyframes before you can choose that span.

  3. Recordings you should not upload

    A capture of an internal tool tends to contain customer names, ticket numbers, or staging URLs. Trimming in the tab means the footage is never handed to a converter site whose retention policy you have not read.

  4. Meeting a length limit

    Upload forms, ad platforms, and messaging apps all cap clip length, often at thirty or sixty seconds. Trimming to fit is quicker than arguing with a validator, and a copy will not quietly degrade the footage on the way.

  5. Preparing footage for something else

    Trim first, then convert. Handing a short clip to a transcription service, a GIF converter, or an editing timeline is faster and cheaper than handing over the whole recording and cutting later.

  6. Keeping only what matters from long footage

    Dashcam files, doorbell clips, and security exports are mostly nothing happening. Cutting out the minute that matters turns a file you cannot email into one you can, without touching its quality.

See also

A trimmed clip is usually on its way somewhere else. When the destination is a README, an issue, or a chat message, an animation often travels better than a video file — build one with Video to GIF. When it is the sound you are after and the picture can go, there is Audio Converter. And when a single frame would say as much as the clip, a still is far lighter — shrink one with Image Compressor. If it has to stay a video and is still too large to send, the size itself is the thing to solve — that is Video Compressor.

Best practices

Habits that keep the cut clean and the quality where it started.

  • Reach for Copy first and only switch to Re-encode when the keyframe the cut falls back to is genuinely too early — most cuts do not need that precision
  • Set the start slightly before the moment you want; a copy will move it back to a keyframe anyway, and a little run-up is easier to watch than a clipped first word
  • Read the ticks: widely spaced keyframes mean a copy has coarse cut points, which is a property of the recording rather than something the tool can fix
  • Type the times when you already know them, and drag when you are still looking for the moment
  • Trim before you convert — every later step gets faster when it is handed thirty seconds instead of two hours
  • Check the actual length against the requested one before downloading; that line is where a surprise would show up
  • Cut long or high-resolution footage on a desktop browser, since a phone gives a tab far less memory to hold the file in

Limitations

What this tool deliberately does not do, and where it will struggle.

  • It does not change the resolution and it does not compress. A copy keeps the source data exactly; a re-encode rebuilds it at a near-transparent setting rather than to a size target.
  • It cuts one continuous span. Removing a section from the middle and joining what is left, or joining several clips together, is a different job and is not offered here.
  • A lossless copy can only begin on a keyframe. If the recording places them far apart, the available start points are correspondingly coarse.
  • Re-encode mode writes MP4 with H.264 video, so a WebM or MKV source changes container on the way through. Audio is copied when it is already AAC or MP3, and converted to AAC otherwise.
  • Only the first video and the first audio track are carried over. Subtitle tracks, extra audio languages, and attachments are dropped.
  • The engine is about 31 MB on first use. It is cached afterwards, but the first trim in a fresh browser profile carries that download.
  • WebAssembly is 32-bit and the whole source file is held in memory while it is read, so videos beyond roughly a quarter of a gigabyte become unreliable.
  • Some containers that FFmpeg reads fine, such as MKV with HEVC, will not play in the browser preview. Cutting still works from the timeline and the typed times; only the moving preview is missing.
  • DRM-protected files cannot be read, in this tool or any other that does not break the protection.

FAQ

Questions that come up when cutting video in a browser.

How do I cut a section out of a video?

Drop the file onto the page, drag the two handles to the span you want to keep, and press Trim. The default method copies the streams without re-encoding, so the clip comes out at the original quality and is usually ready within seconds. You can also type the two times instead of dragging.

Does trimming reduce the quality?

Not in Copy mode. The selected packets are moved into a new container without ever being decoded, so the output holds the same picture data the source did — there is no second generation of compression. Re-encode mode does decode and rebuild the video, which is why it is the second option rather than the default.

Why does my cut start earlier than the time I asked for?

Because a lossless copy has to begin on a keyframe. Much of a video records changes relative to earlier frames, so starting the copy elsewhere can leave its first packets referring to frames that are not in the new file. This tool reads the keyframe positions out of your file, moves the cut back to the last one before your start point, and shows you both times. Switch to Re-encode if the cut has to land on the time you set.

Is my video uploaded anywhere?

No. The engine is FFmpeg compiled to WebAssembly and it runs inside your browser tab. The file is read from disk into the tab's memory and the result is written back out as a download. Nothing about the file crosses the network, which you can confirm by watching the network panel while a trim runs.

What is a keyframe, and why does it decide where I can cut?

A keyframe gives a decoder a self-contained place to start. Many of the frames between keyframes record changes relative to earlier frames, which is what keeps video files small. A stream copy moves packets into a new file without rebuilding them, so beginning between keyframes could leave those first packets without the reference frames they need. Starting at a keyframe keeps the needed run of packets together. Recordings often place one every one to ten seconds; the ticks under the timeline show the positions in your file.

How do I remove the beginning or the end of a video?

Removing the start is the same as keeping everything after a point: drag the left handle to where the real content begins, or scrub to it and press Start here. Removing the end is the mirror image with the right handle. Both are single continuous spans, which is exactly what a lossless copy handles best.

Copy or Re-encode — which should I pick?

Copy, unless you have a reason not to. It preserves quality exactly, finishes in seconds, and keeps the original container. Re-encode earns its cost in two cases: the cut must land on a particular moment, or the keyframe before your start pulls in seconds of footage you cannot include. Re-encoding is slower on long or high-resolution clips because it runs on a single thread here.

How long does a trim take?

A copy is close to the time it takes to write the file, because no frame is ever decoded — usually seconds even for a long selection. A re-encode has to decode and compress every frame, so it scales with resolution and length; a short 720p clip is quick, while a few minutes of 4K will keep you waiting.

Can I cut a section out of the middle and join the rest back together?

Not here. Joining two spans means either re-encoding both or splicing at keyframe boundaries, and the failure modes are unpleasant enough that a trimmer should not pretend to handle it in passing. This tool keeps one continuous span, which covers trimming the ends and lifting a clip out of a longer recording.

Which formats can I trim, and does the file stay the same type?

It reads MP4, MOV, WebM, MKV, AVI, M4V and most other things FFmpeg understands. A copy keeps the source container, so an MP4 stays an MP4 and a WebM stays a WebM. A re-encode always writes MP4, because H.264 video does not belong in a WebM file. Files with no audio track are handled as they are.

Related tools

More local, browser-only tools for working with media and images.