2008-10-24 5 views
4

Y at-il un appel d'API générique que je peux faire pour obtenir un traitement de l'image ou du flux vidéo provenant d'une webcam et le remplacer par une image ou une vidéo pour que les applications interagissent avec la caméra (par exemple MSN/Skype/Yahoo IM) verra mon image à la place de ce que la caméra capture?Comment puis-je intercepter des flux de vidéos ou d'images à partir d'une webcam et les modifier?

Idéalement, j'essaie de résoudre ce problème de manière générique indépendamment du fournisseur de l'appareil ou de l'interface (via une pile de webcam standard que toutes ces applications utilisent, si une telle chose existe).

Il s'agit d'une application de sécurité qui doit être capable de désactiver les webcams sur des clients autres qu'à des fins spécifiques. Je peux arrêter et démarrer les dispositifs de capture d'image par le code, mais idéalement, je préférerais laisser l'appareil activé et remplacer l'image capturée par un graphique qui indique à l'utilisateur la raison pour laquelle il ne peut pas utiliser sa caméra.

Répondre

3

La plupart des webcams modernes conçues pour fonctionner de manière générique seront généralement implémentées en tant que périphérique WDM, puis exposées en tant que filtre de noyau DirectShow. Les applications peuvent ensuite utiliser DirectShow pour travailler avec le flux vidéo en direct. Il serait possible d'écrire un filtre personnalisé avec un mérite élevé qui pourrait essayer de s'insérer dans n'importe quel graphique pertinent, puis modifier le flux vidéo à la volée. Cependant, cette technique n'est certainement pas infaillible et pourrait être facilement manipulée. Il existe également d'autres technologies de capture vidéo qui ne seraient pas affectées par cette méthode. En bref, il n'y a pas de moyen fiable de faire ce que vous voulez pour tous les appareils ou en toute sécurité. Si vous souhaitez simplement utiliser une webcam standard et modifier par programmation le flux vidéo d'une manière non sécurisée, la technique ci-dessus fonctionnera.

Regardez here pour obtenir des informations générales sur DirectShow et here pour obtenir des informations sur la capture vidéo. Les échantillons AmCap et EZRGB24 seraient également un bon point de départ.

Questions connexes