Search code examples
windowsvideodirectshowms-media-foundation

Virtual Driver Cam not recognized by browser


I'm playing with the "Capture Source Filter" from http://tmhare.mvps.org/downloads.htm. After registering the ax driver, I'm trying to understand its compatibility across applications that use video sources.

For example, Skype recognize it while browsers (Edge, Chrome) don't.

I wonder if it's a limitation of the used approach (DirectShow filter) or it's just a matter of configuration. The purpose of the question is to understand if that approach is still useful or it's better to move on Media Foundation.


Solution

  • I described this here: Applicability of Virtual DirectShow Sources

    Your virtual camera and the applications capable to recognize and pick it up are highlighted with green on the figure below.

    Applicability of Virtual DirectShow Sources

    ... if that approach is still useful or it's better to move on Media Foundation.

    Media Foundation does not even have a concept of virtual video source. It does not have a compatibility layer to connect to DirectShow video sources. Obviously, in other direction DirectShow applications won't be able to see virtual Media Foundation streams (well, again, because they do not exist in compatible concept in first place).

    If you want to expose your video source to all applications, you need a driver for this (see red box on the figure above). Applciations exist out there that implement such concept, even though writing a new one from the ground up is not something compatibly easy with the DirectShow virtual source you referenced in your question.

    Further reading on MSDN on Media Foundation: How to register a live media source - media foundation

    Though it is technically possible to write a virtual driver that shows up as a capture device, policies will probably prevent this. In Media Foundation, a device must have a certificate to appear as a capture device, and so far only actual hardware devices through the USB video class driver have been certified. Supporting a scheme through a scheme handler, or a file type with a byte stream handler, is the way to expose a new source to applications.