2017-03-21 1 views
1

Je joue avec le "Capture Source Filter" de http://tmhare.mvps.org/downloads.htm. Après avoir enregistré le pilote ax, j'essaie de comprendre sa compatibilité entre les applications qui utilisent des sources vidéo. Par exemple, Skype le reconnaît, contrairement aux navigateurs (Edge, Chrome).Caméra de pilote virtuel non reconnue par le navigateur

Je me demande si c'est une limitation de l'approche utilisée (filtre DirectShow) ou si c'est juste une question de configuration. Le but de la question est de comprendre si cette approche est toujours utile ou s'il vaut mieux passer à Media Foundation.

Répondre

2

Je décrit ce ici: Applicability of Virtual DirectShow Sources

Votre caméra virtuelle et les applications capables de reconnaître et de le ramasser sont mis en évidence en vert sur la figure ci-dessous.

Applicability of Virtual DirectShow Sources

... si cette approche est toujours utile ou il vaut mieux passer à autre chose Media Foundation.

Media Foundation n'a même pas de concept de source vidéo virtuelle. Il n'a pas de couche de compatibilité pour se connecter aux sources vidéo DirectShow. Évidemment, dans d'autres directions, les applications DirectShow ne pourront pas voir les flux virtuels de Media Foundation (enfin, parce qu'ils n'existent pas dans le concept compatible en premier lieu).

Si vous souhaitez exposer votre source vidéo à toutes les applications, vous avez besoin d'un pilote pour cela (voir la boîte rouge sur la figure ci-dessus). Il existe des applications qui implémentent un tel concept, même si l'écriture d'un nouveau concept n'est pas quelque chose de facilement compatible avec la source virtuelle DirectShow que vous avez référencée dans votre question.

Pour en savoir plus sur MSDN sur Media Foundation: How to register a live media source - media foundation

Bien qu'il soit techniquement possible d'écrire un pilote virtuel qui apparaît comme un dispositif de capture, les politiques empêchera probablement cela. Dans Media Foundation, un périphérique doit disposer d'un certificat pour apparaître en tant que périphérique de capture, et jusqu'à présent, seuls les périphériques matériels réels via le pilote de classe vidéo USB ont été certifiés. La prise en charge d'un schéma via un gestionnaire de schéma ou un type de fichier avec un gestionnaire de flux d'octets permet d'exposer une nouvelle source aux applications.

+0

Très bonne explication! Juste une clarification: pourquoi une application 64 bits ne peut pas utiliser une API DirectShow 32 bits? Je pensais que l'inverse n'est pas autorisé. Quoi qu'il en soit, ce n'est pas un gros problème: je fournirais des binaires de 32 et 64 bits. – Mark

+2

Parce que les processus peuvent charger des DLL de même poids uniquement. Vous êtes seul pour mettre en œuvre une communication interprocessus pour combler le vide. –