Troubleshooting

Webcam Not Working in the Browser on Linux? Step-by-Step Fixes

Updated · 5 min read

Webcam not working in your browser on Linux? Find out where it stops: whether Linux sees the camera at all, whether your user can open it, and whether the browser, especially a Flatpak or Snap one, is allowed to reach it. Two terminal commands and a camera app answer the first two questions in a minute.

The steps below go from the system up to the browser, with commands for Ubuntu and Debian, Fedora and Arch. Other distributions are similar, and you can stop as soon as the camera works.

Four quick checks first

  • Is the page HTTPS? Browsers only offer the camera to secure pages.
  • Is another program using the camera? On Linux a webcam often works with one program at a time. Close OBS, video call apps and camera apps.
  • Did you block the site? Look for a crossed-out camera icon in the address bar.
  • Is it a USB webcam? Unplug it, wait a few seconds and plug it into a different port.

On a Chromebook running ChromeOS, these steps don't apply; follow the Chromebook camera fixes instead.

Step 1: Check that Linux sees the webcam

Open a terminal and run ls /dev/video*. Entries such as /dev/video0 mean the kernel has found a camera. One webcam often shows up twice (video0 and video1) because one node carries the picture and the other carries extra data. That's normal.

To see camera names, install v4l-utils and list the devices:

DistributionInstall the toolsThen run
Ubuntu, Debian, Linux Mintsudo apt install v4l-utilsv4l2-ctl --list-devices
Fedorasudo dnf install v4l-utilsv4l2-ctl --list-devices
Arch, Manjarosudo pacman -S v4l-utilsv4l2-ctl --list-devices

No video devices at all? For a USB webcam, run lsusb and look for the camera's brand. If it's listed but has no video device, run sudo dmesg | tail -n 30 right after plugging it in and look for errors. If it isn't listed, try another port and cable; webcam not detected has more USB fixes.

Some recent laptops use newer built-in cameras (often called MIPI cameras, for example on Intel IPU6 chips) that need extra drivers and may not appear as a normal video device on every distribution. If that's your laptop, check your distribution's documentation for your model.

Step 2: Test the camera outside the browser

Before touching browser settings, see whether any program can show a picture.

  • GNOME: open the Camera app (Snapshot on newer versions, Cheese on older ones).
  • KDE and other desktops: guvcview, available in most repositories, works well.
  • Terminal: if ffmpeg is installed, ffplay /dev/video0 opens a preview window.

If the camera works there, Linux and the hardware are fine, so skip to step 4. If the app says the device is busy, another program has it open. Run lsof /dev/video0 to see which one, close it, and try again.

Step 3: Fix permissions with the video group

Run ls -l /dev/video0. The device usually belongs to the video group. Most desktop distributions give the logged-in user access automatically, but minimal installs, unusual login setups and remote sessions may need you to be in that group.

  1. Check your groups with groups.
  2. If video isn't listed, add yourself: sudo usermod -aG video $USER
  3. Log out and back in, or restart, so the change takes effect.

If a camera app already shows a picture for your user, permissions aren't the problem and you can skip this step.

Step 4: Flatpak browser camera permission (and Snap)

Browsers installed as Flatpaks or Snaps run in a sandbox and can only reach the camera if the sandbox allows it. A camera that works in a regular app but never shows up in the browser is the classic sign.

Flatpak

  1. Find the browser's app ID with flatpak list --app (for example org.mozilla.firefox or com.google.Chrome).
  2. Give it device access for your user: flatpak override --user --device=all org.mozilla.firefox, using your browser's ID.
  3. Quit the browser completely and open it again.

Prefer a graphical tool? Flatseal shows each Flatpak's permissions; turn on device access for your browser there.

Snap

Run snap connections firefox (or chromium) and look at the camera line. If it isn't connected, run sudo snap connect firefox:camera and restart the browser.

Step 5: Allow and choose the camera in Firefox or Chrome

  • Firefox: click the camera or permissions icon in the address bar and remove any block, or open about:preferences#privacy → Permissions → Camera → Settings and remove the site. Firefox lets you pick a camera in its permission prompt. More in camera not working in Firefox.
  • Chrome and Chromium: open chrome://settings/content/camera, remove the site from the blocked list, and choose the right camera in the dropdown at the top.
  • Several cameras listed? OBS virtual cameras (v4l2loopback) and the infrared cameras on some laptops appear as extra devices. Pick your real webcam.

Newer desktops can route cameras through PipeWire and a camera portal that asks permission per app. Some browsers offer this as an option: an experimental flag in Chrome-based browsers, an about:config setting in Firefox. If you turned it on and the camera vanished, turn it off to test, since support still varies between versions.

If one site still misbehaves, reset that site's permissions or data. On Omlet, reset permissions only, so a purchased country filter isn't lost.

Linux webcam symptoms and fixes

SymptomLikely causeFix
No /dev/video devicesNot detected, or a camera that needs extra driversCheck lsusb and dmesg, try another port (step 1)
Camera app says the device is busyAnother program has it openFind it with lsof and close it (step 2)
Permission denied opening the deviceYour user can't access itJoin the video group (step 3)
Works in a camera app, not in the browserFlatpak or Snap sandbox, or site blockedSteps 4 and 5
Black or grainy gray pictureBrowser picked a virtual or infrared cameraChoose the real camera in browser settings
Camera vanished after an updatePipeWire option or driver changeToggle the PipeWire option and check your distribution's forums

Once the browser shows your picture, our guide to random video chat on Linux covers the rest of the setup. If the camera stays stubborn, you can still talk on Omlet by text with the camera off while you sort it out.

Meet someone new right now — free, no sign-up, 18+

Start chatting

Frequently asked questions

Why does my webcam show up as /dev/video0 and /dev/video1?

Many webcams expose two device nodes: one for the picture and one for metadata. Only one gives video, usually the lower number. Browsers handle this for you; if a tool asks which to open, try /dev/video0 first, then the next one.

Do I need to add my user to the video group?

Usually not. Most desktop distributions give the logged-in user camera access automatically. You mainly need the video group on minimal installs, unusual login setups or remote sessions. If a camera app already shows a picture for your user, skip it.

Why does my webcam work in Cheese but not in Firefox?

The camera and system permissions are fine, so the block is in the browser. If Firefox is a Flatpak or Snap, its sandbox may lack camera access. Otherwise check the site permission in the address bar, and make sure Firefox isn't picking a virtual or infrared camera.

Does Omlet work on Linux?

Yes. Omlet runs in modern browsers such as Firefox and Chrome on Linux, with nothing to install. Open the site, allow the camera and microphone, confirm you're 18 or older and press Start. If the camera won't cooperate, you can still chat by text.