Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Virtual Webcam in C++

I want to write a new virtual webcam driver, which for example will take an AVI or live stream for example for screen and stream it as webcam source.

I'll not have webcam really, I want to add a virtual webcam which streams desktop screen.

I should write a webcam in kernel mode to do so ? If so, could you guide me to a sample webcam driver?

If I should do it in DirectShow, how can I add a webcam device to list in webcams list in Control panel, so for example in Yahoo messenger, I can choose that device as webcam and stream my desktop as webcam images.

How can I get started?

like image 984
Franklin Avatar asked Oct 20 '09 18:10

Franklin


2 Answers

You need to write a DirectShow source filter. The Windows SDK contains a library called baseclasses which helps you developing such a filter. See CSourceStream for a good starting point.

To get the device to show up under the other Video Streaming Devices, you have to register your filter with the DirectShow API under the CLSID_VideoInputCategory. You don't need to/shouldn't write a kernel driver.

like image 130
Christopher Avatar answered Oct 10 '22 16:10

Christopher


You can get start with the sample "amcap" under DirectShow package, it is a excellent sample for beginner. If you want to list webcam devices, go to ChooseDevices() method.

like image 2
Susie Shu Avatar answered Oct 10 '22 14:10

Susie Shu