For a while, I thought to myself: why use my laptop for job interviews or other occasions that require the use of a webcam, just because I need a video feed?

I find it annoying both because the quality is not that great (compared to current phone cameras, for instance), and because I’d rather stay on my desktop computer.

What we’re going to do?

I’ll quickly show the setup I found which works very well.

It relies on broadcasting the video feed from a device (our phone) over a local IP. We then use that feed as a virtual camera in OBS, which then gets recognized by our computer as an actual video device.

This has been tested with an Android phone and a Linux computer. It is not tested on Windows and macOS, but it should properly work as well.

Drawbacks?

I don’t find real drawbacks to that solution. The only issue that may arise is if you need a webcam for a long period of time. Your phone will probably get very hot after a while.

An other issue is finding a way to physically prop up your phone, as it is the case with any webcam setup.

Requirements

IP Webcam

You will need an Android phone with IP Webcam. It has a free (with ads) and paid version.

Anything that can create a video feed through a local IP will do the job. I didn’t yet find any OSS application which does that (and works with current Android versions).

You could of course use a laptop with a software that gets the current video feed of your webcam and broadcasts it over a local IP. But it kind of defeats the purpose?

OBS as a virtual camera

On your computer, you will need OBS installed. It will allow us to use a virtual camera.

Windows/macOS

For Windows and macOS, just installing OBS will be enough.

Linux

I recommend checking the Github instructions to see up-to-date information.

Virtual camera support

Virtual camera support requires the v4l2loopback kernel module (and kernel headers for some distros). Required packages for virtual camera support are usually listed as optional dependencies.

Browser source

Your OBS version should have support for the Browser source. Some builds come with that source out of the box, others do not.

For instance, on Arch Linux, I’m using the obs-studio-liberty package.

Setup

IP Webcam

On your phone

I didn’t really change anything. You could set up a username and password if you want more security. I’d recommend browsing the different settings and changing them depending on your preferences.

You can start the server through the three dots in the top right corner:

Screenshot of the menu to start the IP webcam server

You then get an IP address, which you can use as long as you are on the same local network. Take note of it.

Through the browser

You can open this local IP address on your computer through your browser of choice. You will get a web UI with several controls:

Screenshot of the web UI after starting IP webcam’s server

OBS

I won’t be explaining how to setup OBS from scratch, as there are a tons of guides already.

New source

You can add a new source, and select “Browser”:

Screenshot of the OBS menu to add a Browser source in OBS

Regarding the parameters to insert:

  • URL: you should use http://192.168.0.173:8080/browserfs.html
    • found by clicking on the “Fullscreen” button in the web UI
    • do change the local IP, it’s most likely not the same
    • this page provides only the video feed, and not the controls from the web UI
  • Width/Height: you most likely want to use the one provided by your phone’s camera

Virtual camera

If the required dependencies are properly installed, you should see a “Start Virtual Camera” button. Click on the gear icon:

Screenshot of the menu to set up the virtual camera in OBS

Just change the type of output to “Source”, and then select the source you just created.

Congrats! Now any software making use of a camera will see that whenever you start the virtual camera in OBS.

On Linux, your password will be required after each reboot, since OBS has to start the appropriate kernel modules for this to work.