Camera Tests camera mirror self-view

Camera Mirror Test

Free online camera mirror test: compare mirrored self-view vs natural preview before Zoom, Meet, or recordings. Live webcam flip in your browser.

Interactive tool

Run the test

Runs in your browser

Mirrored feels like a bathroom mirror (common in meeting self-view). Natural matches how most recordings and other people see you — better for readable text behind you.

Mode: Mirrored

Mirror vs natural

This flip is a local CSS preview only. Many meeting apps mirror your self-view while sending a natural feed to others. Your stream never leaves this device.

Start the camera, then switch Mirrored / Natural and raise your right hand to compare.

Permission status

Checked in your browser. DeviceHub does not store permission grants.

  • Camera Checking…

Live results

Metrics update as you run the test. Nothing is uploaded.

Loading

Waiting for interactive tool output…

Device information

Labels and capability details reported by your browser.

No device details yet.

Description

About Camera Mirror Test

Introduction

The DeviceHub Camera Mirror Test helps you compare mirrored self-view against a natural, unflipped camera preview so you understand which orientation you are actually seeing before a presentation, recording, or exam. Meeting applications frequently flip your own tile horizontally so raising your right hand feels like looking in a bathroom mirror, while participants on the other end often receive the unmirrored image that preserves true left-right relationships. Recording tools, exam proctoring software, and some browser capture APIs default the opposite way, which confuses speakers who rehearse with a mirrored preview then appear reversed on playback or in exported files. This free browser tool starts a live getUserMedia stream and lets you toggle a CSS-based horizontal mirror instantly without installing software or creating an account. Presenters practicing gestures, teachers checking whiteboard readability, makeup and lighting technicians, and anyone who needs legible text behind them benefit from knowing exactly which mode is active. Understanding mirror semantics prevents the common mistake of assuming what you see in self-view is what the audience sees on their screens. Streamers rehearsing on-camera pointing gestures use this page to align self-view comfort with how OBS or browser recorders capture the unmirrored MediaStreamTrack bitstream.

What this tool does

The page opens your selected camera through getUserMedia, renders a live HTMLVideoElement preview, and offers an explicit mirrored versus natural orientation control that you can flip at any time during an active stream. Mirrored mode applies a horizontal flip transform to the on-page preview container; it does not rewrite the underlying MediaStream bitstream or call applyConstraints on the track. That behavior mirrors how many conferencing UIs implement self-view comfort without changing what is encoded and transmitted to remote participants. You can switch videoinput devices if enumerateDevices lists multiple cameras and stop the stream when finished testing. Status text clarifies which mode is active so you are not guessing from muscle memory alone after switching between apps with different defaults. The tool's scope is orientation clarity and user education, not resolution measurement, FPS estimation, or permission diagnostics, those live in sibling camera tools on DeviceHub. Status copy clarifies that remote participants in typical meeting apps often receive the natural orientation even when your local tile appears mirrored for rehearsal comfort.

When to use it

Use this test when you are unsure whether a platform mirrors self-view only or the entire outbound feed, when practicing hand gestures and pointing for a talk or tutorial, when checking whether a whiteboard, poster, or slide behind you remains readable on camera, and when configuring OBS, browser recorders, or exam software that default to unmirrored capture. Makeup artists and lighting technicians often prefer mirrored preview because it matches a physical mirror; product demos that show logos or serial numbers need natural orientation so text does not appear backward in recordings. Run it after switching between phone front cameras, which native camera apps often mirror by default, and laptop webcams that typically do not. If your only question is whether the camera produces any image at all, use the Webcam Test first; come here when left-right semantics, rehearsal comfort, or readable background text matters for your session. Sign-language interpreters verifying hand orientation before a webinar benefit from rehearsing in the same mirrored or natural mode their platform will show to viewers.

How it works

navigator.mediaDevices.getUserMedia supplies a video MediaStream that is attached to a video element via srcObject assignment on the preview panel. Mirror state is implemented with a CSS transform such as scaleX(-1) on the preview wrapper element, which flips presentation pixels on the compositor without mutating encoded frames inside the MediaStreamTrack or invoking applyConstraints. Because the flip is purely presentational, screenshots of the page may look mirrored while a raw track forwarded to another peer through WebRTC might remain unflipped, exactly the dual behavior users notice in Zoom-style self-view versus remote participant view. MediaStreamTrack.getSettings() still reports unflipped capture dimensions and facingMode regardless of mirror toggle state, so resolution and aspect-ratio diagnostics remain unaffected. Stopping the test calls track.stop() on all video tracks to release hardware for other apps. The Permissions API governs whether getUserMedia can run at all; mirror toggling requires no additional permission beyond the initial camera grant. Secure HTTPS context is required for the capture pipeline in modern browsers, consistent with all DeviceHub camera diagnostics that rely on mediaDevices APIs. Because mirror toggling never calls applyConstraints, MediaStreamTrack.getSettings() dimensions stay constant while only the CSS presentation layer flips horizontally on the preview wrapper.

Step-by-step instructions

  1. Open the Camera Mirror Test page on DeviceHub and click Start to invoke navigator.mediaDevices.getUserMedia, then allow camera permission when the browser presents the standard site access dialog for video capture on this origin.
  2. Wait until the HTMLVideoElement preview shows continuous motion from your selected videoinput device, confirming the MediaStreamTrack is live and decoding before you evaluate orientation changes through the mirror toggle.
  3. Hold up your right hand in natural unmirrored mode and observe which side of the screen your hand appears on, establishing a baseline for left-right mapping in the feed as encoded by the camera pipeline.
  4. Enable mirrored mode using the on-page control and repeat the gesture, confirming the preview now behaves like a bathroom mirror where raising your right hand appears on the right side of the self-view image.
  5. Place readable printed text, a whiteboard marker line, or a phone screen with words behind you and note which mode keeps letters legible without appearing reversed for your specific recording, rehearsal, or exam proctoring goal.
  6. Click Stop when you finish comparing orientations so track.stop() releases the camera hardware, the OS indicator light turns off, and conferencing applications can access the sensor without NotReadableError conflicts.

Common problems

People often assume the flipped self-view tile in meeting apps is what remote participants see, when in many products only local preview is mirrored while outbound encoding stays in natural orientation. If text looks wrong in exported recordings, you likely rehearsed in mirrored mode while the recorder captured unmirrored frames, or the reverse orientation mismatch between tools. Virtual camera filters and OS studio effects may apply their own horizontal flip on top of the page CSS transform, doubling or canceling the effect unexpectedly on some machines. Some mobile browsers remember last-used facingMode from getUserMedia constraints but do not persist mirror preference across sites or browser sessions. If the toggle appears to do nothing, restart the stream after ensuring only one active preview element binds the MediaStream, because duplicate elements can show inconsistent transform inheritance from parent containers. Meeting apps with separate mirror-my-video toggles may still differ from this page, use DeviceHub to learn concepts, then align the vendor setting to your recording goal.

Privacy explanation

Preview frames remain entirely inside your browser during mirror comparison without transmission to DeviceHub servers. DeviceHub does not upload, transcode, or store your mirrored or natural video on remote infrastructure at any stage of the test you initiate locally. Camera access through getUserMedia is used only for the orientation comparison displayed in your tab. Stop the stream to turn off the camera indicator and release the sensor for other applications. Revoke permission for this origin through browser site settings whenever you prefer not to retain grant after finishing. Mirror state exists only in page CSS during your session and is not written to localStorage or synced across devices. No mirror preference is stored server-side; toggling orientation affects only the current preview session until you stop tracks or leave the page entirely.

Runtime principles

Built for the browser

What happens when you run this test — without downloads or accounts.

  1. 01

    Runs in your browser

    Camera Mirror Test uses standard web APIs — no install, extension, or desktop app required.

  2. 02

    You control permissions

    Your browser asks before camera or microphone access. You can revoke access anytime in site settings.

  3. 03

    Media stays local

    Preview and level checks are processed in this tab. DeviceHub does not upload your live media streams.

Compatibility

Supported browsers

Expected support for modern engines. Individual APIs may still vary by device.

  • Chrome

    supported

    Latest stable

  • Firefox

    supported

    Latest stable

  • Safari

    supported

    Latest stable

  • Edge

    supported

    Latest stable

Devices

Supported devices

Hardware and form factors this browser test is designed to exercise.

  • Built-in webcams

    Laptop and all-in-one front cameras via getUserMedia.

  • USB webcams

    External cameras enumerated after permission is granted.

  • Mobile cameras

    Phone and tablet browsers with camera permission.

  • Permission note

    Requires camera permission in the browser site settings.

Privacy

Your data stays with you

Camera Mirror Test is built privacy-first. Diagnostics run in your browser session whenever web APIs allow.

Read our privacy policy

Troubleshooting

Common problems

Quick fixes before you dig into FAQs.

Text behind me looks reversed in one mode
That is expected in mirrored self-view. Switch to natural (unmirrored) mode when you need readable text or true left/right for recording.
Meeting app still looks different
Many apps mirror only your self-view while others see the unmirrored feed. Use this tool to learn the difference, then match the app’s self-view toggle.
Toggle does nothing
Ensure the stream is live first. Mirror mode is a preview transform; start the camera, then flip between mirrored and natural views.

FAQ

Frequently asked questions

Structured answers for users and FAQ rich results.

Browse FAQs
What is a camera mirror test?
A camera mirror test compares mirrored self-view (like a bathroom mirror) with a natural, unflipped preview so you know which orientation you are seeing before a meeting, recording, or exam.
Does mirror mode change what other people see?
Not in this tool, the flip is a local preview transform. Many meeting apps also mirror only your self-view while sending an unmirrored feed to others.
When should I use natural (unmirrored) view?
Use natural view when text behind you must stay readable, when left/right direction matters for demos, or when matching typical recording defaults.
Is mirroring done with getUserMedia constraints?
Usually no. DeviceHub flips the preview with CSS (for example scaleX(-1)) so the underlying MediaStream stays unchanged.
Why does my meeting app look different from this page?
Each app chooses its own self-view default. Use this test to learn mirrored vs natural, then match the toggle inside your meeting software.
Can I test mirror mode on a phone?
Yes on modern mobile browsers. Front cameras in native apps are often mirrored; this page lets you compare both orientations explicitly.
Is my preview stored?
No. Frames stay in your browser session for the comparison and are not uploaded to DeviceHub.

Newsletter

Updates coming soon

A lightweight email digest for new tools and release notes is planned. No signup form is live yet — check Release Notes for product updates.

Release notes

Need another diagnostic after Camera Mirror Test?

Explore related DeviceHub tools that pair well with this test.