GET IN TOUCH

A Virtual Camera Driver for Using One Webcam in Multiple Applications Simultaneously

Kernel and driver development System software development Telecom Windows driver development

To make a video call most of us will use a front camera on our laptop or tablet and a video chatting app like Skype. But what if you need to make an online business presentation, conduct a video conference, or use a smart intercom to communicate with people using different software? The webcam on Windows devices can be used for such scenarios if it is combined with the right software.

Request

A US company headquartered in New York that creates smart intercoms needed a solution similar to ManyCam to allow people to use their webcams on various applications whilst simultaneously live streaming or using video chat. 

In fact, the customer already had an out-of-the-box solution based on DirectShow filters provided by Microsoft. It allowed for streaming and performing other operations with the users` videos, however, it produced a high load on the CPU. Thus, our task was to build a custom driver for the virtual camera that could run on a low-performance CPU.

Solution

Our team at Integra Sources developed a reliable high-performance driver for a virtual camera for Windows that allows for displaying webcam data to the screen. The main requirements for the driver’s functionality included:

  • 10 apps must use the camera simultaneously
  • The CPU load must not exceed 50%
  • The virtual camera driver must provide support for Windows OS 7, 8, 10

Technologies used:

  • The driver is written in C/C++.
  • We used Microsoft Visual Studio and Windows Driver Kit (WDK) to implement the driver.

Scope of work

  • Implemented software development for the driver compatible with Windows 7, 8, 10.
  • Added simultaneous support for multiple resolutions: some apps can have high resolution 1280*800 digital images and others can have a resolution of 960*540 pixels.
  • Reduced the CPU load. When five video sources with different resolutions are connected, the CPU load is less than 20%.
  • Added a possibility to upload a custom image that shows up if the driver isn't connected.

Result

We wrote a high-performance virtual camera driver that doesn't overload the CPU and is compatible with three versions of Windows OS. All you need to do to enable broadcast to multiple channels simultaneously is install a driver, configure settings, and then you can add up to 10 video sources to your live stream.

The client was happy with the work done so they returned to our team to develop additional features for the driver. We upgraded the driver interface, added a custom splash screen and support for streams with different resolutions. In the first version of the driver, the resolution was the same for all clients.

Support for Windows OS

7, 8, 10

Channels connected simultaneously

10

CPU load

<20%