How to Access Webcam Properties from C#

How to Access Webcam Properties from C#

My Logitech C920 Webcam required some settings adjustments like exposure, gain, focus, etc. to get good image quality. I uninstalled the "feature rich" Logitech software and now change the settings using the Windows webcam properties dialog. This job is right for me; Unfortunately, settings are not reliably maintained After a cold boot, or sometimes after starting an application using a webcam, I have to make adjustments again.

My Logitech C920 webcam requires some tweaking of settings like exposure, gain, focus, etc. to get good image quality. I uninstalled the “feature rich” Logitech software and now change the settings using the bare-bones Windows webcam properties dialog. This works well for me; unfortunately, the settings are not persisted reliably. After a cold-boot, or sometimes after simply starting an application that uses the webcam, I have to make the adjustments again.

That is why I became interested in what would it take to read and write the webcam properties and to open the properties dialog from C#. The result of a web search was a bit intimidating as I came across multimedia APIs that go way beyond what I intended to do. After all, I only wanted to access the properties, not write a full-blown video capture suite.

In the end I settled on DirectShow.Net, a C## wrapper around DirectShow under LPGL license. Even though DirectShow is an old API and the DirectShow.Net project seems to be no longer active, I found one very important reason to use it: A working sample that opened the webcam properties dialog.

This blog post starts with a guided tour through the sample, with the intended side-effect of making the sample easier to discover on the web. Additionally, I will describe how to access the properties from your code.

english .net visual studio video

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

ML.NET Model Builder is now a part of Visual Studio | .NET Blog

ML.NET is a cross-platform, machine learning framework for .NET developers. Model Builder is the UI tooling in Visual Studio that uses Automated Machine Learning (AutoML) to train and consume custom ML.NET models in your .NET apps. You can use ML.NET and Model Builder to create custom machine learning models without having prior machine learning experience and without leaving the .NET ecosystem.

.NET CLI Templates in Visual Studio

Visual Studio now has an option in preview to enable CLI-installed .NET Core templates to display as options in the New Project Dialog experience.

jQuery Ajax CRUD in ASP.NET Core MVC with Modal Popup

In this article, we’ll discuss how to use jQuery Ajax for ASP.NET Core MVC CRUD Operations using Bootstrap Modal. With jQuery Ajax, we can make HTTP request to controller action methods without reloading the entire page, like a single page application.

Help us improve Visual Studio project tooling for .NET Core | .NET Blog

We’re currently planning our next set of investments in Visual Studio project tooling for .NET. This tooling, called a project system, sits at the heart of nearly every major action you perform when writing .NET code in Visual Studio. What is the .NET project system?

[Guest post] Learn C# with Visual Studio, Visual Studio for Mac, and Unity

In this tutorial, I explains his approach to teaching C # with Visual Studio, Visual Studio for Mac by emphasizing exploration, fun, and games. We're announcing a fun coding challenge for beginners, with a chance to win a copy of the new edition of Head First C # book.