Video Trimmer – Cut MP4, MOV, WebM and MKV Clips in Your Browser
This video trimmer cuts one part out of a video on your device. Open an MP4, MOV, M4V, WebM, MKV or MPEG-TS file, drag the two handles on the filmstrip timeline, play the selection and download the clip. Reading, cutting and writing all happen in the browser tab, so the video is never uploaded, there is no watermark and there is no file size limit: the file is read in small slices as needed, so even a multi-gigabyte phone recording opens in a moment.
Keyframes, delta frames and GOPs
Compressed video doesn't store every picture in full. A few keyframes (I-frames) can be decoded on their own. The frames between them are delta frames: P-frames describe what changed since an earlier frame, and B-frames borrow from frames on both sides. A keyframe plus the frames that depend on it is a group of pictures (GOP). Phone cameras usually place a keyframe every one or two seconds, screen recordings and streams often much less often, and all-intra formats such as ProRes make every frame a keyframe. The trimmer measures this for each file and marks every keyframe on the timeline.
Fast mode: a lossless cut
Fast (no re-encode) copies the compressed video and audio packets straight into a new file without decoding them. The picture is bit-for-bit the original, and the cut takes seconds because the only work is reading and writing. The catch is the start: a clip made of copied packets must begin on a keyframe, or the first frames have nothing to decode from. So the start moves to the keyframe at or before your mark (or, if you prefer, the first one after it), and the tool shows exactly how far, for example starts 0.500 s before your mark. The end is exact. Audio packets are only 20 to 40 ms long and all independent, so audio is cut at packet precision.
Precise mode: a frame-exact cut
Precise (re-encode video) decodes the video and encodes it again with the browser's own hardware encoder through WebCodecs, so the clip starts on the exact frame on screen at your mark. The resolution and frame-rate timing stay as the source, and the audio is still copied wherever the container allows. Re-encoding takes longer and costs a little quality, known as generation loss, because every lossy encode throws away some detail again. Choose Very high quality to keep it small.
HDR footage, such as Dolby Vision or HLG clips from recent iPhones, needs extra care. Most browsers encode standard dynamic range only, so a re-encoded HDR clip may look washed out or shifted in colour. Fast mode keeps HDR, 10-bit, HEVC, ProRes and AV1 video untouched.
Containers versus codecs
A container (MP4, MOV, MKV, WebM) is the file format that holds the tracks and their timing. A codec (H.264, HEVC, VP9, AV1, AAC, Opus) is how each track is compressed. A lossless cut can change the container but never the codec, so the trimmer only offers outputs that can hold your streams as they are: WebM, for example, holds only VP8, VP9 or AV1 video with Opus or Vorbis audio, so an H.264 file can be saved as MP4, MOV or MKV but not WebM. Subtitle, chapter and timecode tracks aren't copied, and any audio track that won't fit is listed with the reason before you export.
Privacy and metadata
Videos from phones often carry the GPS location where they were filmed. With Remove location on (the default), location tags such as QuickTime's ©xyz and com.apple.quicktime.location.ISO6709 are left out of the clip. You can also drop every metadata tag, remove the sound, or leave out extra audio tracks such as a commentary.
Big files and saving
Most browsers build the clip in memory, so the output is limited to about 1 GB. In Chrome and Edge on a computer, Save directly to a file streams the clip straight to disk instead, with no size limit. Your mode, snap direction, preferred container and privacy choices are remembered on this device; file names, times and video never are.
Credits
Reading and writing the containers is done by Mediabunny, an open-source TypeScript media toolkit released under the MPL-2.0 licence (source on GitHub), which hands encoding and decoding to the browser's built-in codecs.