Using Nikon D3100 As Webcam

An attempt to make a 2010 DSLR work as a webcam.

By Den Delimarsky in Hackery

February 4, 2021

Now Playing

Better Not (feat. Wafia) - Shaun Frank Remix
Louis The Child, Wafia, Shaun Frank

Better Not (Remixes) (2019)

Back in 2010, Nikon built a nice 14.2MP entry-level DSLR camera - the D3100, which I was using for some time now. It’s a nice camera, and for 99.9% of cases it works perfectly well. It takes nice shots, supports interchangeable lenses, can film decent quality (by that I mean 1080p) video, and has some extensibility points. With all the hype around home setups, and everyone and all their friends, neighbors, pets, and colleagues jumping on the “DSLR as a webcam” bandwagon, I started asking myself if I could use my D3100 as one too.

A Nikon D3100

It’s an older camera, sure, and it was most definitely not designed to be used as a webcam, but it does have a Type C Mini-HDMI - could be a clue for how I can go about connecting my camera to the PC?

A Nikon D3100, showing the Mini-HDMI port

Also, I am lucky enough to be alive in 2021, when we have this magical device - the Elgato Cam Link:

An Elgato Cam Link device connected to USB and HDMI

The great thing about Cam Link is that it creates just another webcam on my computer when you push an HDMI input to it. So, at least in theory, I should be able to grab the image from the Nikon camera and send it to my computer. In theory, theory and practice are the same. In practice, they are not. Or so the saying goes, at least. Nikon D3100 does have a live view - for video recording. But it does not have a “webcam mode.” Allow me to demonstrate.

If I search online for the scenario that I am trying to accomplish, I get a lot of answers like the one on the Photography StackExchange, basically saying that it’s not possible. Also, most answers are from 2013 - kind of tells you that it’s unclear why I even bother trying to experiment with an older camera.

For me, this experiment is more of a “can I do it” and not “should I do it,” because I probably shouldn’t do it - there are better ways, and the Logitech C920 I use as the main camera can produce 1080p video, and has a whopping 15 megapixels (compared to 14.2 megapixels in D3100). So if you were reading this, and on the second monitor had your favorite shopping site open to find a D3100 - don’t do it. There are better ways that don’t require a brick hanging over your monitors at all times.

When I initially plug in the camera into the Cam Link, I am able to get this view on the PC:

Camera info view in the Windows camera app

This is just me taking the HDMI output from the camera and pushing it to Cam Link, using the standalone Windows camera app. Encouraging so far. What happens if I switch to the live view?

Nikon D3100 live view, seen in the Windows camera app

Yikes. There is a lot of stuff on the screen that is not the image itself. Now, of course, if I would be filming a video from this camera, it would make sense to have it all there, but I don’t need it when it’s a webcam. There is another slight problem with the D3100 - it does not have a clean HDMI output. But can I minimize the amount of stuff shown on the screen? The answer is yes - I can use the Info button on the device to cycle through different views:

Info button on Nikon D3100 DSLR

With a couple of presses, I got this:

Nikon D3100 live view, seen in the Windows camera app

Yeah, minimal effect - I just removed the video quality indicator, but that’s about as good as we’re going to get from this camera. Thankfully all other information is captured outside the picture frame when connected to a HDMI “monitor”, so there is more to work with. But I still don’t want to embarrass myself with all this photography info on the screen, so what can I do? OBS Studio to the rescue!

First, I am going to add a new Video Capture Device:

Adding a capture device in OBS Studio

I gave it a descriptive name, just so I remember what it is later:

Specifying a name for a capture device in OBS Studio

I selected Cam Link in the list of devices, and got the by now familiar HDMI output:

Seeing the camera output in OBS Studio

Cool! Almost there. Now I need to jump into the live view, and try to crop out what I can from the output. To do that, I can use Filters:

Filters button in OBS Studio

From there, I can add a Crop/Pad effect:

Adding a crop effect in OBS Studio

I ended up playing with some values that I thought would work best, to see if I can crop out most of the unnecessary info:

Adding a crop effect in OBS Studio

Looks much better! There is still the time counter for video recording, but that’s about it. I can now see the full frame in OBS!

Cropped camera view in OBS Studio

And there you have it - I can now use an OBS plug-in, like OBS Virtualcam to create a virtual camera that I can use with Microsoft Teams, Skype, Google Meet, or any other tool that needs a video feed.

Is the video received from the Nikon laggy? Yes. Is the quality lower than what you get from modern webcams? Yes. Was it fun to explore how to make an older DSLR into a webcam? You bet.

Want to get more notes like the above? Subscribe to The Den!

A monthly newsletter about product management, engineering, and tinkering with code.

Feedback

Have any thoughts? Let me know on Twitter!