2015-11-13 42 views
8

Chciałbym wziąć wideo z kamery internetowej, renderować tekst na ramkach i wykonać śledzenie ruchu i przekazać je na wirtualną kamerę internetową, aby można było łatwo przesyłać strumieniowo.Jak utworzyć wirtualną kamerę internetową w systemie Windows 10?

Znalazłem kilka odpowiedzi na stackoverflow sugerujących, że powinienem użyć DirectShow. Zgodnie z informacjami podanymi w dokumencie DirectShow documentation pakiet SDK DirectShow jest częścią pakietu Windows SDK. Zainstalowałem więc latest Windows SDK, ale wygląda na to, że nie obejmuje DirectShow, ponieważ nie ma próbek DirectShow pod numerem C:\Program Files (x86)\Microsoft SDKs\Windows. (Odpowiedzi na stackoverflow są również dość stare - datowane na 2010 rok)

Czy możesz zaproponować sposób na wykonanie pracy DirectShow (w tym przykłady pracujące w Visual Studio 2015) lub inną alternatywę dla DirectShow, które pomogłyby mi stworzyć wirtualną kamerę internetową ?

+0

Pobierz próbki z zestawu Windows SDK 7.x; kompilacja z najnowszym Visual Studio. Nie ma standardowej próbki kamery wirtualnej, masz do VCK Vivek google. –

+0

Pobrałem Windows SDK dla Windows 7. Kiedy uruchomiłem instalator i otrzymałem komunikat ostrzegawczy: http://imgur.com/AhYhhlR (mówiąc, że mam wstępne wydanie.NET Framework 4 i niektóre komponenty nie zostaną zainstalowane i powinienem zainstalować .NET Framework 4 z podanego linku). Mimo to kontynuowałem, ale po instalacji próbki nie znajdowały się w katalogu docelowym. Kiedy próbowałem zainstalować .NET Framework 4, instalator odmówił zainstalowania go, stwierdzając, że mam już zainstalowany .NET Framework. Domyślam się, że Windows 10 nie został zaprojektowany do obsługi tak starego SDK. –

+1

Możesz zainstalować go na starszej wersji Windows i skopiować pliki do Windows 10. – wimh

Odpowiedz

8

Wirtualna kamera internetowa to zazwyczaj implementacja oprogramowania, którą aplikacja odkrywa tak, jakby była urządzeniem z fizyczną reprezentacją. Wymienione aplikacje wykorzystują interfejsy API do pracy z kamerami internetowymi, a możliwość rozszerzenia interfejsów API i dodania własnego źródła wideo jest sposobem na utworzenie wirtualnej kamery internetowej.

W systemie Windows jest kilka interfejsów API do korzystania ze źródeł wideo: wideo dla Windows, DirectShow, Media Foundation (w porządku chronologicznym).

Wideo dla Windows nie jest tak naprawdę rozszerzalne i ma ograniczone możliwości ogólne. Zobaczy wirtualne urządzenie, jeśli podasz sterownik trybu jądra dla wirtualnej kamery.

DirectShow jest interfejsem API używanym przez większość aplikacji Windows obsługujących przechwytywanie wideo i jest obecny we wszystkich wersjach systemu Windows, w tym w systemie Windows 10 (z wyjątkiem Windows RT). Jest to całkowicie rozszerzalne iw większości przypadków termin "wirtualna kamera internetowa" odnosi się do wirtualnej kamery internetowej DirectShow. Metody tworzenia DirectShow wirtualną kamerę omówione w wielu StackOverflow pytania pozostają całkowicie poprawny dla Windows 10, dla aplikacji, które implementują przechwytywania wideo przy użyciu DirectShow:

próbki DirectShow zostały usunięte z systemu Windows SDK, ale nadal możesz je znaleźć w starszych wersjach:

Jeśli udostępnisz sterownik trybu jądra dla urządzenia kamery wideo (wirtualna kamera internetowa poprzez niestandardowy sterownik jądra), DirectShow będzie go również widział tak jak inne interfejsy API wideo.

Media Foundation to rzekomy następca DirectShow, ale możliwości przechwytywania wideo w części rozszerzalności po prostu nie istnieją. Microsoft zdecydował się nie zezwalać na to, by niestandardowe aplikacje do źródeł wideo były w stanie odkryć to samo, co kamery internetowe. Ze względu na złożoność Media Foundation, a także ogólne i ogólne nieprzyjazność, jest używana przez niewielką liczbę aplikacji. Aby ponownie zaimplementować wirtualną kamerę internetową do aplikacji Media Foundation, tak jak w przypadku Video for Windows, musisz zaimplementować sterownik trybu jądra.

+0

Czy możesz napisać przykładowy github open source C, C++, aby cała społeczność Windows-Struggler mogła śledzić twój kod i wnosić swój wkład? – YumYumYum

+0

@ YumYumYum: oryginalna próbka VCam jest tam, gdzie była hostowana przez wszystkie lata: http://tmhare.mvps.org/downloads.htm Z czasem opracowano wiele pochodnych i podobnych filtrów. –