← Back

Video Mirror

Mirror flip a video horizontally or vertically

Processing happens locally in your browser. The first use needs to download a ~25-30MB processing core, so please keep your network connection stable.
Select a video file
Flip direction

About Video Mirror

The Video Mirror flips a video left-to-right (a mirror image) or upside down and exports the result as a new video file. People commonly use it to fix footage from a front-facing camera that came out reversed, or to swap which side of the frame a subject is on. It does that one job only: no cropping, no rotation by arbitrary angles, no resizing, and no flipping of just part of a clip. Flipping requires re-encoding the picture, so it is not lossless, and it is slower than a simple cut.

How to use it

  1. Click the dashed 'Click to upload video' box and pick a video file. The box then shows its name.
  2. Under 'Flip direction', choose 'Horizontal (mirror)' to swap left and right, or 'Vertical (flip)' to turn the picture upside down. Horizontal is the default.
  3. Click 'Start Flipping'. On the first use the button shows 'Loading processing core…' and then switches to 'Processing…'.
  4. When done, a video player appears. Preview the result, and if it looks right click 'Download Flipped Video'. The file name is the original with mirrored_ in front.

The two directions, and a usage scenario

'Horizontal (mirror)' uses ffmpeg's hflip filter and behaves like a mirror: whatever was on the left of the frame moves to the right. 'Vertical (flip)' uses vflip and turns the picture upside down, so people appear inverted. A typical scenario: you recorded a demo with a phone's front camera and the footage came out mirrored, or you want the subject to move from the left side of the frame to the right to suit a layout. Choose 'Horizontal (mirror)' and run it. Keep in mind that any text, captions, or watermarks in the frame are reversed too, so videos with on-screen text are usually poor candidates for mirroring. Since results depend on the particular video, we do not quote processing times or file sizes.

Supported input and known limits

  • The file picker only offers video files. Whether a file works depends on whether the bundled ffmpeg core understands its codec and container.
  • There are only two operations: horizontal mirror or vertical flip. To flip in both directions, run the result through the tool again with the other direction.
  • The picture is re-encoded with ffmpeg's default settings. There are no options for quality, bitrate, or resolution, so the output size and sharpness can differ from the original.
  • The audio is re-encoded as well rather than being kept as-is.
  • The output keeps the original file's extension (or .mp4 when there is none). You cannot convert to another container.
  • The whole file is read into browser memory with no size limit. Large or long videos can be very slow or fail from lack of memory, and ffmpeg in a browser is noticeably slower than the desktop version.
  • On failure the only message is 'Processing failed. Please try a different video file.' with no detail.
  • The first use needs a network connection to download a core of roughly 25-30MB.

FAQ: Will mirroring reduce the video quality?

Flipping means re-encoding every frame, and common video formats use lossy compression, so quality can change slightly and the file size may differ. The tool has no quality setting to adjust.

FAQ: Why is it slow?

The work is done in your browser by a WebAssembly build of ffmpeg, so speed depends on your device. Longer and higher-resolution videos take more time. Try a short clip first.

FAQ: The text is backwards after mirroring. Can that be fixed?

Not with this tool. The whole frame is flipped, including any text or graphics already burned into it. If text must read normally, mirror the footage first and add the text afterwards in another editor.

FAQ: What if it says processing failed?

Try another file, or convert the video to a common MP4 first. Because no error detail is shown, it is hard to say why; likely causes are an unrecognized file or running out of memory.

Privacy and processing

The video is written to a virtual file system inside your browser and flipped by a WebAssembly build of ffmpeg. The code has no step that uploads the video to a server. The only network request is the first-time download of the ffmpeg core from the public CDN unpkg.com, which does not include your file. The result is previewed and downloaded through a temporary local link that is released when you change files or leave the page.