Rotate or flip a video without re-encoding it

Turn a sideways or upside-down clip the right way up in milliseconds by rewriting its rotation flag, or re-encode the pixels for players that ignore flags. Flip horizontally or vertically. Nothing is uploaded.

Processed on your device. Your video is never uploaded. How we know

Drop a video to rotate or flip it

Drop a video here, paste it with Ctrl+V, or choose one from your device.

MP4MOVWebMMKV· up to ~2 GB on this device

ClipHeron runs in your browser. We don’t receive your videos, their names or anything in them. Ads on this page load separately and are not given your files. What happens to your video

How to use it

How to rotate a video that plays sideways or upside down

A video plays sideways for one of two reasons. Either the phone recorded it with a rotation flag that the player you are using ignores (old versions of Windows Media Player, some TVs, a few editors), or the flag is simply wrong because the phone was turned at the moment recording started. Both are fixed by the same tool, and in most cases without touching a single frame.

MP4 and MOV files store the picture the way the sensor saw it and carry a small transformation matrix in the track header that tells the player how to display it. Changing that matrix is a 36-byte edit. ClipHeron makes that edit by default, which is why a lossless rotate finishes in milliseconds, and offers a real re-encode when you need the pixels themselves turned. The iPhone guide covers the related Windows problems, and the formats guide explains what a container like MP4 actually holds.

  1. 1

    Add the video

    Drop or choose an MP4, MOV, WebM or MKV. The file card shows whether it already carries a rotation flag; the preview shows it the way a player does.

  2. 2

    Choose the turn

    Pick 90° clockwise, 180° or 90° anticlockwise, tick a flip if you want one, and watch the preview change. Leave “Lossless” selected unless you know your player ignores rotation flags.

  3. 3

    Rotate and download

    Press Rotate. A lossless rotate is done almost at once; a pixel rotate shows a progress bar with time left. Check the result in the player on the result card, then download the MP4.

What this tool does

  • Rotate 90° clockwise, 180° or 90° anticlockwise, and flip horizontally (mirror) or vertically
  • Lossless by default: the MP4 rotation flag (the track header matrix) is rewritten and every frame is left byte for byte as it was
  • Instant: a lossless rotate of a 2 GB file takes about as long as reading it, with no decoding at all
  • “Rotate the pixels instead” re-encodes to H.264 with swapped dimensions for the few players that ignore the flag
  • Live preview turned and flipped exactly as the output will be, before you click
  • Existing rotation flags are read first, so an iPhone portrait clip shows upright and your turn is added to it
  • H.264/AAC WebM and MKV are copied losslessly into an MP4 so they can carry the flag too
  • Output is MP4; audio is copied unchanged on every path that can
Worked example

The same sideways clip, three ways

What you chooseWhat happensTime for a 3-minute 1080p clipOutput
90° clockwise, lossless (default)The track header matrix is rewritten. Every video and audio sample is byte for byte the source.Under a secondSame size as the input, flagged to display at 1080×1920
90° clockwise, rotate the pixelsEach frame is decoded, turned and encoded to H.264 at 1080×1920; AAC audio copied.About 1 to 2 minutes with a hardware encoder, longer in softwareA new 1080×1920 MP4 with no flag, upright in every player
Flip horizontallyFlips have no flag, so the pixels are mirrored and re-encoded.As above1920×1080 MP4, mirrored

Rotating a clip that already carries a flag adds to it: an iPhone portrait clip (flag 90°) turned another 90° ends up flagged 180°, and the preview shows exactly that before you click.

Lossless or not

The rotation flag, and when to rotate the pixels instead

Every MP4 and MOV has a tkhd (track header) box per track containing a 3×3 matrix. Players multiply each pixel’s position by it before drawing, so a matrix of {0, 1, −1, 0} shows the frame turned 90° clockwise; phones have written these since the first iPhone, which is why portrait footage from a phone is really a landscape stream with a flag. Rewriting the matrix changes how the file is displayed without changing what is stored, so it is lossless, it is instant, and the output is the same size as the input.

The catch is that honouring the flag is the player’s job. Chrome, Firefox, Safari, VLC, Windows Photos, QuickTime, iOS and Android all do. Some older desktop players, some TVs and set-top boxes, and a few editing and upload pipelines ignore it, and those show the original orientation. If the rotated file still looks wrong where you need it, come back, choose Rotate the pixels instead, and the frames are decoded, turned and re-encoded to H.264 so that no flag is needed. That path costs a real encode and a small quality loss, which is why it is not the default.

Mirroring

Flips always re-encode

The matrix can describe a mirror as well as a turn, but players disagree about mirrored matrices far more than about rotations, and several draw a mirrored file as unmirrored. Rather than ship a file that looks right in one player and wrong in the next, ClipHeron always re-encodes flips. A horizontal flip is the common one: front-camera footage that was recorded mirrored, text that reads backwards, or a second camera angle that should face the other way.

Formats

WebM and MKV

Matroska has no rotation flag that players honour, so a lossless rotate of a WebM or MKV first copies its streams into an MP4 and then sets the flag there, which is still lossless when the video is H.264 and the audio is AAC (or absent). WebM with VP8 or VP9 cannot be copied into an MP4, so those files take the pixel path and come out as H.264, the same as the WebM to MP4 converter would produce, just rotated.

Limits

Good to know

  • A lossless rotate keeps everything, including an HDR or 4K stream that a re-encode would have to convert or cap. Try it first.
  • The player on the result card honours flags, so it shows what Chrome, Safari and phones will show. It cannot show you what an old player that ignores flags would do.
  • Rotating does not change the file size on the lossless path. The pixel path re-encodes at the Best preset for the output size, so the size changes as it would in the compressor.
  • Protected (DRM) files are refused, and the first video track is the one rotated; extra tracks are listed as not carried over.
Keep going

Related tools and guides

FAQ

Questions people ask

Why does my rotated video still play sideways in one program?

That program ignores rotation flags. Run the file through again and choose “Rotate the pixels instead”, which re-encodes the frames turned, so no flag is needed. Everything modern honours the flag, which is why the lossless path is the default.

Does rotating lose quality?

Not on the lossless path: the frames are not touched, only 36 bytes in the header. The pixel path re-encodes to H.264 at the Best preset, which is a small loss you will rarely see, and flips always take that path.

Which way is “90° clockwise”?

The top of the picture moves to the right-hand side, the way you would turn a photo on a table clockwise. The preview shows the result before you commit, so if it looks wrong, pick the other one.

My phone video already shows upright on my computer. Why does the card say it has a rotation flag?

Because that is how phones store portrait video: a landscape stream plus a flag, and your player honours the flag. The turn you choose is added to the existing one, so you do not need to think about it.

Can I rotate just part of a video?

No: a rotation applies to the whole track, in the flag and in the pixels. Trim the part you want first and rotate the result.

Why is a lossless rotate so fast?

Because nothing is decoded or encoded. The engine reads the file, finds the video track’s header and rewrites the matrix. A 2 GB file takes about as long as reading it from disk.

Is my video uploaded?

No. The rotation happens in your browser and we never receive the file or its name. The how it works page explains how to check this with your browser’s network log.

Privacy

What happens to your video

Processed on your device. Your video is never uploaded. ClipHeron runs in your browser. We don’t receive your videos, their names or anything in them. Ads on this page load separately and are not given your files.

On the lossless path nothing is decoded: the engine reads the file in a background worker, rewrites a few header bytes and hands the result to the download. On the pixel path, frames go from the decoder to a canvas to the encoder in memory, a few at a time. Nothing about the file, its name or its frames is sent anywhere or remembered.

The page does load advertising and analytics scripts, separate from the tool and described in our privacy policy. They are never given your files.

Review

Sources and review