Video · 59 tools · nothing uploads

Reverse video

Play a video backwards: every frame is decoded, reordered and re-encoded in reverse, and its audio track is reversed sample by sample too. In the browser only, like video-convert, because decoding and re-encoding both need WebCodecs, which Node has no equivalent of. Always outputs MP4. Nothing is uploaded.

Input

Reverse video plays a clip backwards by decoding every frame, putting them in reverse order, and encoding a fresh MP4, while its audio reverses sample by sample too. That full decode and re-encode needs WebCodecs, so the page runs in the browser only. A file carrying no audio track still reverses, producing a silent result.

Questions

Does it reverse the audio too?

Yes, sample by sample, alongside the frame reversal. A video with no audio track, or an audio codec the browser cannot decode, still produces a reversed video with no sound.

Why is this browser only?

Because every frame has to be decoded, held in memory, and re-encoded in reverse order through WebCodecs, which Node has no equivalent of.

Does reversing lose quality?

Yes. This is a full decode and re-encode at medium quality, so expect one generation of quality loss compared with the source.

What format do I get back?

Always MP4, named after your input with -reversed.mp4 on the end, whatever container the source used.

How large a video can this handle?

Every decoded frame is held in memory at once before encoding begins, so a long clip can use a large amount of memory in the tab; a short clip is unremarkable.

Related Video tools

n→nConvert videoChange videos between MP4 and WebM, in the browser only. It encodes with WebCodecs, which Node has no equivalent of, so the CLI and MCP surfaces refuse it. Nothing is uploaded. AVI, WMV and FLV files use a 32MB ffmpeg fallback engine instead, once you consent.Runs on each file you dropn→nCompress videoShrink a video by re-encoding it at a lower quality, in the browser only, like video-convert, because mediabunny encodes through WebCodecs, which Node has no equivalent of. Always outputs MP4.Runs on each file you dropn→nTrim / cut videoCut a video down to a start-to-end range without decoding a single frame. Packets are copied straight from the source into a new MP4, so this runs in Node, the CLI and MCP as well as the browser. The cut snaps back to the nearest keyframe before the start you asked for, the same trade-off ffmpeg -c copy makes.Runs on each file you dropn→1Merge videosConcatenate two or more videos, one after another, into a single MP4. A packet-level copy with no decoding, so this runs in Node, the CLI and MCP as well. Every input must share the same video codec (and audio codec, if present); mixed-codec inputs need re-encoding first, which this tool deliberately does not do.Combines the files you dropn→nResize / crop videoResize and/or crop a video, in the browser only, like video-convert, because mediabunny decodes and re-encodes through WebCodecs, which Node has no equivalent of. Always outputs MP4.Runs on each file you dropn→nRotate videoRotate a video by a multiple of 90° by writing rotation metadata into the container, the same trick phones use for orientation, rather than re-encoding every frame. A packet-level copy, no decoding, so this runs in Node, the CLI and MCP as well as the browser. Most players honour this metadata; a player that ignores it will show the original orientation.Runs on each file you dropn→nChange video speedSpeed a video up or down by rescaling the timestamp on every packet. A packet-level copy, no decoding, so this runs in Node, the CLI and MCP as well as the browser. Audio speeds up with the video and its pitch shifts along with it, the same trade-off most simple speed-change tools make; correcting pitch back to normal needs decoding and resampling the audio, which this tool deliberately does not do.Runs on each file you dropn→nVideo metadataRead a video container apart without decoding a frame: format, duration, every stream's codec, resolution, frame rate, bitrate and language, plus rotation and creation time where the file carries them. Runs in Node, the CLI and MCP as well as the browser.Runs on each file you drop