You can rotate a video online without uploading it: open a browser-based rotator, add the clip, click Rotate left or Rotate right until it looks upright, then export an MP4. The file is processed locally with FFmpeg in WebAssembly, so it never leaves your device.
Rotation here means 90 degree steps, either clockwise or counter-clockwise, plus a horizontal or vertical mirror, and the buttons stack so 180 or 270 degrees is two or three clicks. The preview updates instantly because it is a CSS transform, while the export re-encodes the video for real, so the final frame can differ slightly from what you see. Expect two honest costs: a rotation changes every pixel, so the clip must be re-encoded rather than copied, and the first session downloads the FFmpeg engine, around 30 MB, after which the tool works offline.
A sideways clip is one of the most common video problems there is, and it is also one of the easiest to fix, as long as you know that the fix has to re-encode the file. This guide covers where sideways footage comes from, what each button does, how the preview relates to the exported result, and the cases where a rotation is not the answer.
Video Rotator
Rotate 90, 180 or 270 degrees, flip horizontally or vertically, and export an MP4. The clip never leaves your device.
Why a video ends up sideways
A sideways video almost never means the camera was held the wrong way on purpose. Phone cameras keep their image sensor in a fixed orientation and record how the device was tilted as a small metadata tag, often called a rotation flag, rather than turning the pixels. The frame that actually gets stored stays landscape.
Players that honour the tag show the clip upright, which is why the same file can look correct on your phone and sideways on a laptop. Viewers that ignore the flag, including a number of desktop players, editors and upload pipelines, draw the raw landscape frame instead. Nothing is broken; two systems simply disagree about how to read the same file.
| How it happened | What the file really holds | Where it looks sideways |
|---|---|---|
| Recorded in portrait | Landscape frame plus a rotation flag | Desktop players and editors that skip the flag |
| Recorded upside down | Upright frame with a 180 degree flag | The same viewers, shown inverted |
| Handled by a tool that drops metadata | Landscape frame with no flag left | Everywhere, from that point on |
Why rewriting the pixels settles the argument
A rotation changes the frame itself, so the corrected orientation no longer depends on any player reading a tag. This rotator exports H.264 frames already turned the right way up and leaves no rotation flag behind, which is what makes the result look the same in every player, editor and social platform.
What happens to the frame size
Turning a clip a quarter turn swaps its width and height. A 1920 by 1080 landscape clip becomes 1080 by 1920, and the picture fills the new frame from edge to edge. That is a genuine change of proportions rather than a crop, so nothing is cut away. A flip is different again: it mirrors the frame without changing its shape at all.
How to rotate a video without uploading it
The whole job is four steps, and none of them send the video anywhere. The tool is FFmpeg compiled to WebAssembly, so the encoding runs inside the browser tab on your own machine, with no account and no queue.
- Add your video. Drop the clip into the rotator or click to browse. MP4, WebM, MKV, MOV and AVI are accepted. The file is read from your disk into page memory, and nothing is uploaded. The drop zone suggests clips under 500 MB and a few minutes long, which is roughly what a browser tab handles comfortably.
- Rotate or flip until the preview looks right. Each click on Rotate left or Rotate right adds a quarter turn, while Flip horizontal and Flip vertical mirror the frame. The buttons stack, so a rotation can be combined with one or both flips, and Reset transform clears the lot.
- Read the status chips. Two chips above the buttons show the current state, for example Rotation: 90 degrees and Flip: none, or Flip: Horizontal + Vertical. They are the quickest way to confirm what is queued before you spend time on an encode.
- Export and download. Click Apply rotation and wait. The first run downloads the FFmpeg engine, roughly 30 MB, and later runs reuse the cached copy. The result appears in the right hand panel with its file size, and the download is named after your source file with a -rotated.mp4 suffix.
If no transform is selected, the tool refuses to run and asks you to rotate or flip first. That guard is useful: it stops an accidental pass-through export that would produce a file identical to the one you started with.
Rotate or flip: what each button does
The controls are deliberately few, and each one does exactly the same thing to the preview and to the final encode.
| Button | What it does to the frame | When to use it |
|---|---|---|
| Rotate left | Turns the picture a quarter turn counter-clockwise | A clip that is rotated 90 degrees the wrong way |
| Rotate right | Turns it a quarter turn clockwise | The usual fix for portrait footage stored as landscape |
| Flip horizontal | Mirrors left and right, shape unchanged | A selfie where text or logos read backwards |
| Flip vertical | Mirrors top and bottom, shape unchanged | Footage that is inverted, or a reflection effect |
| Reset transform | Clears the rotation and both flips | Starting over after experimenting |
How the clicks combine
Clicks accumulate. Two clicks on Rotate right give 180 degrees and three give 270, and the angle chip updates as you go. Flips are toggles, so pressing Flip horizontal a second time switches it off. Internally the export applies the flips first and the rotation second, in that fixed order, and the preview simulates the same order. Fixing the sequence is what keeps the two in agreement when you stack several operations on one clip.
Preview versus export
The preview and the export are two different mechanisms, and the tool says so in plain language under the buttons. The preview is a CSS transform applied to the video element, which is why it responds the instant you click. The export runs a real FFmpeg filter chain and re-encodes every frame, which is why it takes measurable time.
| Preview | Export | |
|---|---|---|
| Mechanism | CSS transform on the video element | FFmpeg filter chain plus an H.264 encode |
| Speed | Instant | Seconds to minutes, depending on length and CPU |
| What changes | Nothing on disk, display only | Every pixel, written into a new MP4 |
| Frame shape | Fitted into the preview box | Width and height genuinely swapped |
| Accuracy | Close approximation | The final result |
| Audio | Untouched | Re-encoded to AAC at 128 kbps |
In practice the two agree on direction, because both apply the flips first and the rotation second. They can still differ in small ways. At 90 and 270 degrees the preview adds a fit scale so the turned picture stays inside its box, while the exported file simply carries the swapped dimensions. Treat the preview as a way to confirm the direction, not as pixel-exact proof of the output.
That distinction matters most for long clips, where an unnecessary export costs real time. Confirming in the preview first is much cheaper than discovering the wrong direction after a long encode has finished.
What this tool cannot do
These are the constraints worth knowing before you start, because several of them send you to a different tool.
- Rotation is in 90 degree steps. There is no free angle control and no automatic horizon straightening. A clip that is tilted by a few degrees out of level needs an editor with an arbitrary rotation, not this rotator.
- A rotation always re-encodes. The picture cannot be copied through untouched, because every pixel moves. That costs time and one generation of quality, and there is no way around it inside a browser.
- The preview is a simulation. The preview is CSS and the export is FFmpeg, so they match on orientation and can differ in fine detail.
- It changes the aspect, it does not crop. A quarter turn swaps width and height. If you need a clip to fill one exact frame, such as a vertical 9:16 slot, that is a crop job and a different tool.
- Audio is re-encoded to AAC at 128 kbps. It is not copied as it was, and there is no bitrate control to change that.
- The first run downloads about 30 MB. That is the FFmpeg engine, cached afterwards. It is the price of doing the work locally instead of on someone else's server.
- Long or large files are limited by your device. The browser tab holds the clip in memory, which is why the drop zone suggests clips under 500 MB and a few minutes long. There is no server to fall back on if your machine runs out of room.
- It fixes orientation, nothing else. There is no trimming, no compression and no format menu in this tool, and no way to rotate only part of a clip.
Rotate, crop or trim: which job you actually have
Rotating fixes orientation and nothing more. Three problems that look similar need three different tools, and picking the wrong one wastes time on an encode that has to be redone.
If the clip runs too long, the length is the problem, so cut it first with the video trimmer and rotate the shorter result afterwards. If the rotated file is simply too big to share, the video compressor takes the size down without changing the orientation. If you need a different container for another device, the video converter handles format changes.
What none of them do is crop. Turning a landscape clip into a vertical one swaps its shape, which is fine when you want the whole picture rotated, and wrong when you need the picture to fill a specific ratio without empty space. That combination of rotate plus fill is a crop job, and it belongs in an editor that can trim the frame edges as well.