piapia123
en

Video Trim (MP4 export)

Media

Everything runs locally in your browser — nothing is uploaded

Drop a video here, or click to choose

MP4 / MOV / WebM · up to 200 MB per file

Cut a video from one timestamp to another and export a real MP4 (H.264 picture with AAC sound) that chat apps, editors and older devices all accept. One thing to be clear about: this re-encodes, it does not cut losslessly. A lossless cut can only break at keyframes, and doing that means opening the MP4 container to recompute timestamps and byte offsets — WebCodecs, which is what browsers offer, does encoding and decoding but not demuxing. So this goes frame by frame: decode, re-encode, remux. The upside is that the cut points are exact regardless of where keyframes sit; the cost is that the whole clip is encoded again (a few seconds for a ten-second segment) with one generation of quality loss. The progress bar shows where it is.

Features

  • Cut any time range, accurate to 0.1 seconds
  • Export a real MP4 (H.264 + AAC), not WebM — chat apps and editors accept it
  • Frame rate of 24, 30 or 60 fps, with three quality levels
  • Audio is kept by default and can be dropped (useful when you only want the picture)
  • Resolution matches the source; nothing is resampled
  • Frames are taken by seeking, which makes the result deterministic — a busy machine changes nothing
  • The H.264 profile is chosen from highest to lowest according to what the browser supports
  • When there is no AAC encoder it says outright that the output has picture only, rather than dropping the sound quietly
  • When WebCodecs is missing it says which browser versions are needed
  • Everything runs locally in the browser; the video is never uploaded

How to use

  1. Drop the video in
  2. Fill in start and end (scrub the preview first to find them)
  3. Adjust frame rate and quality if you need to
  4. Press Start, wait for the progress bar, and download the MP4

FAQ

Why re-encode instead of cutting losslessly?
A lossless cut requires breaking only at keyframes: the compressed data in between is copied verbatim. Doing that means opening the MP4 container — parsing the sample table, recomputing timestamps and byte offsets — which is a full demuxer, and WebCodecs in browsers encodes and decodes but does not demux. So what a browser can do is decode every frame, re-encode and remux. The cost is time and one generation of quality loss; the benefit is that the cut points are exact (with a lossless cut, your 7.3-second mark may snap back to 6 seconds because that is where the nearest keyframe sits). For lossless work, use a local tool like ffmpeg.
Why is it so slow?
Because it re-encodes: frames are taken one at a time by seeking (each seek waits for the browser to decode that frame), then encoded and remuxed. Ten seconds at 30 fps is 300 frames; even at a dozen milliseconds each that adds up to seconds. The time scales with the duration and frame rate, not the file size. The progress bar shows which frame it is on.
The export is bigger than the original?
That is common and reasonable: the original may have been compressed hard by a platform, while this re-encodes at a bits-per-pixel-per-frame figure that is looser even at the low setting. To go smaller, pick the low quality and drop to 24 fps — those two make the biggest difference. Conversely, if the source was already high bitrate, re-encoding here can come out smaller.
Can the audio go missing?
It is kept by default. There are two cases where it will not be there, and both are stated outright: the browser has no AAC encoder (rare), or the source audio track cannot be decoded (unsupported codec). Both are written into the result, rather than letting you find out later that the file is silent.
Which browsers work?
Those with WebCodecs: Chrome / Edge 94+, Safari 16.4+, Firefox 130+. Without it the tool says so plainly rather than producing a downgraded file (a WebM, say, exported behind your back). That is deliberate — a file that appears to export and then will not open is worse than a clear failure.

Related tools