Video & audio tools

Cut clips, pull the sound out of a video, mute one, turn a moment into a GIF, and convert between formats — on a build of ffmpeg that runs as WebAssembly in this tab.

7 tools · nothing uploaded · no sign-up

Copying beats re-encoding

A fast trim and a mute are copy operations: they never decode a frame. The packets are re-listed in a new container index and moved across untouched, so the picture is bit-identical to the source. The container is kept as it was — an MKV comes back an MKV — because rewrapping is where an unusual codec breaks.

The price is alignment. A copied cut can only begin on a keyframe, so the start snaps back to the nearest one and can land a beat early. Re-encoding puts it exactly where you asked, at the cost of a generation of quality and of time: this ffmpeg is compiled with threads switched off and works one core at a time.

The timeline needs another decoder

The trimmer and the GIF maker need a scrubbable preview, and take it from an ordinary video or audio element — your browser's own decoder, not the one doing the cutting. Their sliders appear only once that element reports a length, so a file ffmpeg would cut without complaint can still be untrimmable: the browser declines to play it. Neither the video converter nor the muter gates anything on that length: the converter reads it only for its progress bar, the muter not at all.

Screen recordings trip that gate differently. A file from a browser's own recorder reports its duration as infinity until something seeks past the end of its data, so both timeline tools do that on load and rewind before the sliders appear.

One engine, few encoders

That engine is a single 30 MB build, fetched the first time you press a button. The response is marked immutable for a year, so the next tool takes it from cache rather than the network. Your file sits in its WebAssembly heap beside the growing output: inputs stop at 500 MB, and a GIF beyond about 900 frames is refused rather than left to exhaust memory.

ffmpeg reads more formats than it can write here. Re-encoded video leaves as H.264 in an MP4 and nothing else: the pinned build carries no VP8 or VP9 encoder, so WebM output was removed. Audio can leave as MP3, AAC, Opus, FLAC or uncompressed WAV. Embedded cover art is discarded first: a music file stores it as a still video stream, and the Ogg and M4A muxers reject that.