Wie erstelle ich eine virtuelle Webcam in Windows 10?

8

Ich möchte Videos von einer Webcam aufnehmen, etwas Text auf den Frames rendern und Motion-Tracking durchführen und es an eine virtuelle Webcam weitergeben, damit es leicht gestreamt werden kann.

Ich habe einige Antworten auf Stackoverflow gefunden, was darauf hindeutet, dass ich DirectShow verwenden sollte. Laut Informationen in DirectShow-Dokumentation , die DirectShow SDK ist Teil von Windows SDK. Also habe ich das neueste Windows SDK installiert , aber es scheint, dass es DirectShow nicht enthält, weil Es gibt keine DirectShow-Beispiele unter C:\Program Files (x86)\Microsoft SDKs\Windows . (Die Stackoverflow-Antworten sind ebenfalls ziemlich alt - um 2010 herum).

Können Sie einen Weg vorschlagen, wie DirectShow funktionieren kann (einschließlich Samples, die mit Visual Studio 2015 arbeiten) oder eine andere Alternative zu DirectShow, mit der ich eine virtuelle Webcam erstellen kann?

    
Lukáš Neoproud 13.11.2015, 12:49
quelle

1 Antwort

8

Virtuelle Webcam ist in der Regel eine reine Software-Implementierung, die von der Anwendung erkannt wird, als ob es sich um ein Gerät mit physischer Darstellung handelt. Die genannten Anwendungen verwenden APIs, um mit Webkameras zu arbeiten, und die Möglichkeit, die APIs zu erweitern und eine eigene Videoquelle hinzuzufügen, ist die Methode, um eine virtuelle Webkamera zu erstellen.

In Windows gibt es ein paar APIs, um Videoquellen zu nutzen: Video für Windows, DirectShow, Media Foundation (in chronologischer Reihenfolge).

Video für Windows ist nicht wirklich erweiterbar und insgesamt eingeschränkt. Es wird ein virtuelles Gerät angezeigt, wenn Sie einen Kernelmodustreiber für eine virtuelle Kamera bereitstellen.

DirectShow ist die API, die von den meisten Windows-Anwendungen zur Videoaufnahme verwendet wird und in allen Windows-Versionen einschließlich Windows 10 (außer Windows RT) vorhanden ist. Dann ist es perfekt erweiterbar und in den meisten Fällen bezieht sich der Begriff "virtuelle Webcam" auf die virtuelle Webcam von DirectShow. Die in vielen StackOverflow-Fragen besprochenen Methoden zum Erstellen einer virtuellen DirectShow-Webcam bleiben für Windows 10, für Anwendungen, die die Videoaufnahme mit DirectShow implementieren, uneingeschränkt gültig:

DirectShow-Beispiele wurden aus Windows SDK entfernt, aber Sie können sie immer noch in älteren Versionen finden:

Wenn Sie einen Kernel-Modus-Treiber für ein Videokameragerät bereitstellen (Ihre virtuelle Webcam über einen benutzerdefinierten Kernel-Treiber), würde DirectShow es genauso sehen wie andere Video-APIs.

Media Foundation ist ein angeblicher Nachfolger von DirectShow, aber seine Video-Capture-Funktionen im Bereich der Erweiterbarkeit existieren einfach nicht. Microsoft entschied sich, keine benutzerdefinierte Videoquellenanwendung zuzulassen, die auf dieselbe Weise wie Webkameras erkannt werden kann. Aufgrund der Komplexität von Media Foundation und Overhead und insgesamt Unfreundlichkeit wird es von einer bescheidenen Anzahl von Anwendungen genutzt. Um eine virtuelle Webcam für die Media Foundation-Anwendung zu implementieren, müssen Sie, wie im Falle von Video für Windows, einen Kernel-Modus-Treiber implementieren.

    
Roman R. 11.03.2016, 08:41
quelle