akvirtualcamera icon indicating copy to clipboard operation
akvirtualcamera copied to clipboard

Media Foundation virtual camera not working in Windows 11

Open huxinhai opened this issue 2 months ago • 3 comments

video is my own usage experience. Every time I run it, it runs the AKVCamAssistantMF process, but it automatically exits after a while. After this process exits automatically, the virtual camera is no longer recognized. However, if I run the AKVCamAssistantMF process directly, the virtual camera will appear. But when I use "Testing the virtual camera," the virtual camera has no image. The same operation works fine on my Windows 10 computer. When I select the virtual camera, colorful blocks appear. Is there something wrong with my operation?

huxinhai avatar Oct 31 '25 15:10 huxinhai

Nothing wrong in your side, its simply impossible to make the Media Foundation virtual camera to make it work, I have copied the exact same boot process of VCamSample, with the exact same results.

Log of akvirtualcamera

[windows/mf/VirtualCamera/src/classfactory.cpp (60)] debug: virtual HRESULT AkVCam::ClassFactory::CreateInstance(IUnknown*, const IID&, void**)
[windows/mf/VirtualCamera/src/classfactory.cpp (61)] debug: Outer: 0000000000000000
[windows/mf/VirtualCamera/src/classfactory.cpp (62)] debug: IID: IMFActivate
[windows/mf/MediaSource/src/activate.h (39)] debug: virtual HRESULT AkVCam::Activate::SetUINT32(const GUID&, UINT32)
[windows/mf/MediaSource/src/activate.h (39)] debug: GUID: MF_VIRTUALCAMERA_PROVIDE_ASSOCIATED_CAMERA_SOURCES
[windows/mf/MediaSource/src/activate.h (39)] debug: Value: 1
[windows/mf/MediaSource/src/activate.h (39)] debug: virtual HRESULT AkVCam::Activate::SetGUID(const GUID&, const GUID&)
[windows/mf/MediaSource/src/activate.h (39)] debug: GUID: MFT_TRANSFORM_CLSID_Attribute
[windows/mf/MediaSource/src/activate.h (39)] debug: Value: {40E27B1D-758B-B417-1E32-5C7D95D99CBF}
[windows/mf/MediaSource/src/mediasource.cpp (129)] debug: AkVCam::MediaSource::MediaSource(const GUID&, IMFActivate*)
[windows/mf/MediaSource/src/mediasource.cpp (132)] debug: CLSID: {40E27B1D-758B-B417-1E32-5C7D95D99CBF}
[windows/mf/MediaSource/src/activate.h (39)] debug: virtual HRESULT AkVCam::Activate::CopyAllItems(IMFAttributes*)
[windows/mf/MediaSource/src/mediasource.h (53)] debug: virtual HRESULT AkVCam::MediaSource::DeleteAllItems()
[windows/mf/MediaSource/src/mediasource.h (53)] debug: virtual HRESULT AkVCam::MediaSource::SetItem(const GUID&, const PROPVARIANT&)
[windows/mf/MediaSource/src/mediasource.h (53)] debug: GUID: MFT_TRANSFORM_CLSID_Attribute
[windows/mf/MediaSource/src/mediasource.h (53)] debug: virtual HRESULT AkVCam::MediaSource::SetItem(const GUID&, const PROPVARIANT&)
[windows/mf/MediaSource/src/mediasource.h (53)] debug: GUID: MF_VIRTUALCAMERA_PROVIDE_ASSOCIATED_CAMERA_SOURCES
[windows/mf/MediaSource/src/mediasource.cpp (750)] debug: void AkVCam::MediaSourcePrivate::configureSensorProfile()
[windows/mf/MediaSource/src/mediasource.h (53)] debug: virtual HRESULT AkVCam::MediaSource::SetUnknown(const GUID&, IUnknown*)
[windows/mf/MediaSource/src/mediasource.h (53)] debug: GUID: MF_DEVICEMFT_SENSORPROFILE_COLLECTION
[windows/mf/MediaSource/src/mediasource.h (53)] debug: Value: 0x0000021529178880
[windows/mf/MediaSource/src/mediasource.cpp (818)] debug: Sensor profile set
[windows/mf/MediaSource/src/mediasource.cpp (827)] debug: void AkVCam::MediaSourcePrivate::configureWinRTSupport()
[windows/mf/MediaSource/src/mediasource.cpp (144)] debug: Camera index: 0
[windows/mf/MediaSource/src/mediasource.cpp (150)] debug: Virtual camera formats:
[windows/mf/MediaSource/src/mediasource.cpp (166)] debug:     VideoFormat(RGB24 640x480 30/1)
[windows/mf/MediaSource/src/mediastream.h (56)] debug: virtual HRESULT AkVCam::MediaStream::SetGUID(const GUID&, const GUID&)
[windows/mf/MediaSource/src/mediastream.h (56)] debug: GUID: MF_DEVICESTREAM_STREAM_CATEGORY
[windows/mf/MediaSource/src/mediastream.h (56)] debug: Value: PINNAME_VIDEO_CAPTURE
[windows/mf/MediaSource/src/mediastream.h (56)] debug: virtual HRESULT AkVCam::MediaStream::SetUINT32(const GUID&, UINT32)
[windows/mf/MediaSource/src/mediastream.h (56)] debug: GUID: MF_DEVICESTREAM_STREAM_ID
[windows/mf/MediaSource/src/mediastream.h (56)] debug: Value: 0
[windows/mf/MediaSource/src/mediastream.h (56)] debug: virtual HRESULT AkVCam::MediaStream::SetUINT32(const GUID&, UINT32)
[windows/mf/MediaSource/src/mediastream.h (56)] debug: GUID: MF_DEVICESTREAM_FRAMESERVER_SHARED
[windows/mf/MediaSource/src/mediastream.h (56)] debug: Value: 1
[windows/mf/MediaSource/src/mediastream.h (56)] debug: virtual HRESULT AkVCam::MediaStream::SetUINT32(const GUID&, UINT32)
[windows/mf/MediaSource/src/mediastream.h (56)] debug: GUID: MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES
[windows/mf/MediaSource/src/mediastream.h (56)] debug: Value: 1
[windows/mf/MediaSource/src/mediasource.cpp (375)] debug: virtual HRESULT AkVCam::MediaSource::Get(LONG, LONG*, LONG*)
[windows/mf/MediaSource/src/mediasource.cpp (375)] debug: virtual HRESULT AkVCam::MediaSource::Get(LONG, LONG*, LONG*)
[windows/mf/MediaSource/src/mediasource.cpp (375)] debug: virtual HRESULT AkVCam::MediaSource::Get(LONG, LONG*, LONG*)
[windows/mf/MediaSource/src/mediasource.cpp (375)] debug: virtual HRESULT AkVCam::MediaSource::Get(LONG, LONG*, LONG*)
[windows/mf/MediaSource/src/mediasource.cpp (375)] debug: virtual HRESULT AkVCam::MediaSource::Get(LONG, LONG*, LONG*)
[windows/mf/MediaSource/src/mediasource.cpp (375)] debug: virtual HRESULT AkVCam::MediaSource::Get(LONG, LONG*, LONG*)
[windows/mf/MediaSource/src/mediastream.cpp (242)] debug: void AkVCam::MediaStream::setControls(const std::map<std::__cxx11::basic_string<char>, int>&)
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: aspect_ratio: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: hflip: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: scaling: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: swap_rgb: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: vflip: 0
[windows/mf/MediaSource/src/activate.cpp (47)] debug: Created Activate for CLSID: {40E27B1D-758B-B417-1E32-5C7D95D99CBF}
[windows/mf/MediaSource/src/activate.cpp (60)] debug: virtual HRESULT AkVCam::Activate::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/activate.cpp (61)] debug: IID: IMFActivate
[windows/mf/MediaSource/src/activate.cpp (93)] debug: virtual ULONG AkVCam::Activate::AddRef()
[windows/mf/MediaSource/src/activate.cpp (100)] debug: virtual ULONG AkVCam::Activate::Release()
[windows/mf/MediaSource/src/activate.cpp (93)] debug: virtual ULONG AkVCam::Activate::AddRef()
[windows/mf/MediaSource/src/activate.cpp (100)] debug: virtual ULONG AkVCam::Activate::Release()
[windows/mf/MediaSource/src/activate.cpp (60)] debug: virtual HRESULT AkVCam::Activate::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/activate.cpp (61)] debug: IID: IMFActivate
[windows/mf/MediaSource/src/activate.cpp (93)] debug: virtual ULONG AkVCam::Activate::AddRef()
[windows/mf/MediaSource/src/activate.cpp (100)] debug: virtual ULONG AkVCam::Activate::Release()
[windows/mf/MediaSource/src/activate.h (39)] debug: virtual HRESULT AkVCam::Activate::GetItemType(const GUID&, MF_ATTRIBUTE_TYPE*)
[windows/mf/MediaSource/src/activate.h (39)] debug: GUID: MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME
[windows/mf/MediaSource/src/activate.h (39)] error: GetItemType failed: 0xc00d36e6
[windows/mf/MediaSource/src/activate.h (39)] debug: virtual HRESULT AkVCam::Activate::SetItem(const GUID&, const PROPVARIANT&)
[windows/mf/MediaSource/src/activate.h (39)] debug: GUID: MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME
[windows/mf/MediaSource/src/activate.h (39)] debug: virtual HRESULT AkVCam::Activate::GetUINT32(const GUID&, UINT32*)
[windows/mf/MediaSource/src/activate.h (39)] debug: GUID: MF_VIRTUALCAMERA_PROVIDE_ASSOCIATED_CAMERA_SOURCES
[windows/mf/MediaSource/src/activate.h (39)] debug: Value: 1
[windows/mf/MediaSource/src/activate.cpp (111)] debug: virtual HRESULT AkVCam::Activate::ActivateObject(const IID&, void**)
[windows/mf/MediaSource/src/activate.cpp (112)] info: Activating for IID: IMFMediaSourceEx
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IMFMediaSourceEx
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IUnknown
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (674)] debug: virtual HRESULT AkVCam::MediaSource::GetSourceAttributes(IMFAttributes**)
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.h (53)] debug: virtual HRESULT AkVCam::MediaSource::GetAllocatedString(const GUID&, WCHAR**, UINT32*)
[windows/mf/MediaSource/src/mediasource.h (53)] debug: GUID: MF_VIRTUALCAMERA_CONFIGURATION_APP_PACKAGE_FAMILY_NAME
[windows/mf/MediaSource/src/mediasource.h (53)] error: GetAllocatedString failed: 0xc00d36e6
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IMFMediaSource
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (888)] debug: static void AkVCam::MediaSourcePrivate::setControls(void*, const std::string&, const std::map<std::__cxx11::basic_string<char>, int>&)
[windows/mf/MediaSource/src/mediastream.cpp (242)] debug: void AkVCam::MediaStream::setControls(const std::map<std::__cxx11::basic_string<char>, int>&)
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: aspect_ratio: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: hflip: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: scaling: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: swap_rgb: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: vflip: 0
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IMFMediaSourceEx
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IMFGetService
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (464)] debug: virtual HRESULT AkVCam::MediaSource::CreatePresentationDescriptor(IMFPresentationDescriptor**)
[windows/mf/MediaSource/src/mediasource.cpp (692)] debug: virtual HRESULT AkVCam::MediaSource::GetStreamAttributes(DWORD, IMFAttributes**)
[windows/mf/MediaSource/src/mediasource.cpp (693)] debug: Stream 0
[windows/mf/MediaSource/src/mediastream.cpp (403)] debug: virtual ULONG AkVCam::MediaStream::AddRef()
[windows/mf/MediaSource/src/mediastream.h (56)] debug: virtual HRESULT AkVCam::MediaStream::GetCount(UINT32*)
[windows/mf/MediaSource/src/mediastream.h (56)] debug: Value: 4
[windows/mf/MediaSource/src/mediastream.h (56)] debug: virtual HRESULT AkVCam::MediaStream::CopyAllItems(IMFAttributes*)
[windows/mf/MediaSource/src/mediastream.cpp (410)] debug: virtual ULONG AkVCam::MediaStream::Release()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IMFMediaSourceEx
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (674)] debug: virtual HRESULT AkVCam::MediaSource::GetSourceAttributes(IMFAttributes**)
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.h (53)] debug: virtual HRESULT AkVCam::MediaSource::GetUnknown(const GUID&, const IID&, void**)
[windows/mf/MediaSource/src/mediasource.h (53)] debug: GUID: MF_DEVICEMFT_SENSORPROFILE_COLLECTION
[windows/mf/MediaSource/src/mediasource.h (53)] debug: REFIID: {9A9DAAAA-9774-4732-848E-8739655F2BA3}
[windows/mf/MediaSource/src/mediasource.h (53)] debug: Value: 0x0000021529178880
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IMFCollection
[windows/mf/MediaSource/src/mediasource.cpp (282)] debug: Interface not found
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IMFMediaSource
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IMFMediaSourceEx
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (674)] debug: virtual HRESULT AkVCam::MediaSource::GetSourceAttributes(IMFAttributes**)
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.h (53)] debug: virtual HRESULT AkVCam::MediaSource::CopyAllItems(IMFAttributes*)
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IUnknown
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IMFGetService
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IKsControl
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (404)] debug: virtual HRESULT AkVCam::MediaSource::KsProperty(PKSPROPERTY, ULONG, LPVOID, ULONG, ULONG*)
[windows/mf/MediaSource/src/mediasource.cpp (438)] debug: virtual HRESULT AkVCam::MediaSource::KsEvent(PKSEVENT, ULONG, LPVOID, ULONG, ULONG*)
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/activate.cpp (100)] debug: virtual ULONG AkVCam::Activate::Release()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (245)] debug: virtual HRESULT AkVCam::MediaSource::QueryInterface(const IID&, void**)
[windows/mf/MediaSource/src/mediasource.cpp (246)] debug: IID: IMFMediaSource
[windows/mf/MediaSource/src/mediasource.cpp (289)] debug: virtual ULONG AkVCam::MediaSource::AddRef()
[windows/mf/MediaSource/src/mediasource.cpp (650)] debug: virtual HRESULT AkVCam::MediaSource::Shutdown()
[windows/mf/MediaSource/src/mediastream.cpp (320)] debug: HRESULT AkVCam::MediaStream::stop()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (296)] debug: virtual ULONG AkVCam::MediaSource::Release()
[windows/mf/MediaSource/src/mediasource.cpp (220)] debug: AkVCam::MediaSource::~MediaSource()
[windows/mf/MediaSource/src/mediasource.cpp (888)] debug: static void AkVCam::MediaSourcePrivate::setControls(void*, const std::string&, const std::map<std::__cxx11::basic_string<char>, int>&)
[windows/mf/MediaSource/src/mediastream.cpp (242)] debug: void AkVCam::MediaStream::setControls(const std::map<std::__cxx11::basic_string<char>, int>&)
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: aspect_ratio: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: hflip: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: scaling: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: swap_rgb: 0
[windows/mf/MediaSource/src/mediastream.cpp (248)] debug: vflip: 0
[windows/mf/MediaSource/src/mediastream.cpp (410)] debug: virtual ULONG AkVCam::MediaStream::Release()

Log of VCamSample

DllMain DLL_PROCESS_ATTACH 'regsvr32  /s VCamSampleSource.dll'
DllRegisterServer 'D:\a\VCamTest\VCamTest\VCamSampleSource.dll'
DllMain DLL_PROCESS_DETACH 'regsvr32  /s VCamSampleSource.dll'
DllMain DLL_PROCESS_ATTACH 'D:\a\VCamTest\VCamTest\VCamSample.exe'
DllGetClassObject rclsid:CLSID_VCam riid:IClassFactory
Activator::Initialize()
MediaStreamAtts:SetGUID 'MF_DEVICESTREAM_STREAM_CATEGORY' value:'PINNAME_VIDEO_CAPTURE'
MediaStreamAtts:SetUINT32 'MF_DEVICESTREAM_STREAM_ID' value:0
MediaStreamAtts:SetUINT32 'MF_DEVICESTREAM_FRAMESERVER_SHARED' value:1
MediaStreamAtts:SetUINT32 'MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES' value:1
MediaTypeHandler:000001C387EB4E88 has 0 properties
ActivatorAtts:SetUINT32 'MF_VIRTUALCAMERA_PROVIDE_ASSOCIATED_CAMERA_SOURCES' value:1
ActivatorAtts:SetGUID 'MFT_TRANSFORM_CLSID_Attribute' value:'CLSID_VCam'
ActivatorAtts:CopyAllItems
MediaSourceAtts:DeleteAllItems
MediaSourceAtts:SetItem 'MFT_TRANSFORM_CLSID_Attribute' value:VT_CLSID(0x00000048) `CLSID_VCam`
MediaSourceAtts:SetItem 'MF_VIRTUALCAMERA_PROVIDE_ASSOCIATED_CAMERA_SOURCES' value:VT_UI4(0x00000013) `1`
MediaSourceAtts:SetUnknown 'MF_DEVICEMFT_SENSORPROFILE_COLLECTION' value:000001C387EA5010
MediaSource::Initialize no AppX
MediaStream::GetStreamDescriptor
Activator::Initialize()
ActivatorAtts:GetItemType 'MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME' type:0 hr:0xC00D36E6
ActivatorAtts:SetItem 'MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME' value:VT_LPWSTR(0x0000001F) `VCamSample`
ActivatorAtts:GetUINT32 'MF_VIRTUALCAMERA_PROVIDE_ASSOCIATED_CAMERA_SOURCES' hr:0x00000000 value:1/0x00000001
Activator::ActivateObject()
Activator::ActivateObject 'IMFMediaSourceEx'
ActivatorAtts:GetUINT32 'MF_FRAMESERVER_CLIENTCONTEXT_CLIENTPID' hr:0xC00D36E6 value:0/0x00000000
Activator::ActivateObject()
MediaSource::GetSourceAttributes
MediaSourceAtts:GetAllocatedString hr:0xC00D36E6 'MF_VIRTUALCAMERA_CONFIGURATION_APP_PACKAGE_FAMILY_NAME' len:0 value:''
MediaSource::CreatePresentationDescriptor
MediaSource::GetStreamAttributes dwStreamIdentifier:0
MediaStreamAtts:GetCount 4 hr:0x00000000
MediaStreamAtts:CopyAllItems
MediaSource::GetSourceAttributes
MediaSourceAtts:GetUnknown hr:0x00000000 'MF_DEVICEMFT_SENSORPROFILE_COLLECTION' riid:'IUndocumented1' 000001C387EA5010
MediaSource::GetSourceAttributes
MediaSourceAtts:CopyAllItems
MediaSource::GetService siid 'GUID_NULL' iid '{B91EBFEE-CA03-4AF4-8A82-A31752F4A0FC}' failed
D:\a\VCamTest\VCamTest\VCamSampleSource\MediaSource.cpp(312)\VCamSampleSource.dll!00007FFEE388E6C3: (caller: 00007FFEDE3FD79E) ReturnHr(1) tid(560) C00D36BA The object does not support the specified service.    [MediaSource::GetService(MF_E_UNSUPPORTED_SERVICE)]
MediaSource::KsProperty len:24 data:00000001C66FDD90 dataLength:40
MediaSource::KsProperty prop:PROPSETID_VIDCAP_CAMERACONTROL KSPROPERTY_CAMERACONTROL_PRIVACY KSPROPERTY_TYPE_GET
MediaSource::KsEvent evt:00000001C66FDD78 len:24 data:00000001C66FDDC0 dataLength:32
MediaSource::KsEvent event:PROPSETID_VIDCAP_CAMERACONTROL KSPROPERTY_CAMERACONTROL_PRIVACY KSPROPERTY_TYPE_BASICSUPPORT
MediaSource::Shutdown
DllMain DLL_PROCESS_ATTACH 'regsvr32  /s VCamSampleSource.dll'
DllRegisterServer 'D:\a\VCamTest\VCamTest\VCamSampleSource.dll'
DllMain DLL_PROCESS_DETACH 'regsvr32  /s VCamSampleSource.dll'
DllMain DLL_PROCESS_ATTACH 'D:\a\VCamTest\VCamTest\VCamSample.exe'
DllGetClassObject rclsid:CLSID_VCam riid:IClassFactory
Activator::Initialize()
MediaStreamAtts:SetGUID 'MF_DEVICESTREAM_STREAM_CATEGORY' value:'PINNAME_VIDEO_CAPTURE'
MediaStreamAtts:SetUINT32 'MF_DEVICESTREAM_STREAM_ID' value:0
MediaStreamAtts:SetUINT32 'MF_DEVICESTREAM_FRAMESERVER_SHARED' value:1
MediaStreamAtts:SetUINT32 'MF_DEVICESTREAM_ATTRIBUTE_FRAMESOURCE_TYPES' value:1
MediaTypeHandler:000001C387EB4E88 has 0 properties
ActivatorAtts:SetUINT32 'MF_VIRTUALCAMERA_PROVIDE_ASSOCIATED_CAMERA_SOURCES' value:1
ActivatorAtts:SetGUID 'MFT_TRANSFORM_CLSID_Attribute' value:'CLSID_VCam'
ActivatorAtts:CopyAllItems
MediaSourceAtts:DeleteAllItems
MediaSourceAtts:SetItem 'MFT_TRANSFORM_CLSID_Attribute' value:VT_CLSID(0x00000048) `CLSID_VCam`
MediaSourceAtts:SetItem 'MF_VIRTUALCAMERA_PROVIDE_ASSOCIATED_CAMERA_SOURCES' value:VT_UI4(0x00000013) `1`
MediaSourceAtts:SetUnknown 'MF_DEVICEMFT_SENSORPROFILE_COLLECTION' value:000001C387EA5010
MediaSource::Initialize no AppX
MediaStream::GetStreamDescriptor
Activator::Initialize()
ActivatorAtts:GetItemType 'MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME' type:0 hr:0xC00D36E6
ActivatorAtts:SetItem 'MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME' value:VT_LPWSTR(0x0000001F) `VCamSample`
ActivatorAtts:GetUINT32 'MF_VIRTUALCAMERA_PROVIDE_ASSOCIATED_CAMERA_SOURCES' hr:0x00000000 value:1/0x00000001
Activator::ActivateObject()
Activator::ActivateObject 'IMFMediaSourceEx'
ActivatorAtts:GetUINT32 'MF_FRAMESERVER_CLIENTCONTEXT_CLIENTPID' hr:0xC00D36E6 value:0/0x00000000
Activator::ActivateObject()
MediaSource::GetSourceAttributes
MediaSourceAtts:GetAllocatedString hr:0xC00D36E6 'MF_VIRTUALCAMERA_CONFIGURATION_APP_PACKAGE_FAMILY_NAME' len:0 value:''
MediaSource::CreatePresentationDescriptor
MediaSource::GetStreamAttributes dwStreamIdentifier:0
MediaStreamAtts:GetCount 4 hr:0x00000000
MediaStreamAtts:CopyAllItems
MediaSource::GetSourceAttributes
MediaSourceAtts:GetUnknown hr:0x00000000 'MF_DEVICEMFT_SENSORPROFILE_COLLECTION' riid:'IUndocumented1' 000001C387EA5010
MediaSource::GetSourceAttributes
MediaSourceAtts:CopyAllItems
MediaSource::GetService siid 'GUID_NULL' iid '{B91EBFEE-CA03-4AF4-8A82-A31752F4A0FC}' failed
D:\a\VCamTest\VCamTest\VCamSampleSource\MediaSource.cpp(312)\VCamSampleSource.dll!00007FFEE388E6C3: (caller: 00007FFEDE3FD79E) ReturnHr(1) tid(560) C00D36BA The object does not support the specified service.    [MediaSource::GetService(MF_E_UNSUPPORTED_SERVICE)]
MediaSource::KsProperty len:24 data:00000001C66FDD90 dataLength:40
MediaSource::KsProperty prop:PROPSETID_VIDCAP_CAMERACONTROL KSPROPERTY_CAMERACONTROL_PRIVACY KSPROPERTY_TYPE_GET
MediaSource::KsEvent evt:00000001C66FDD78 len:24 data:00000001C66FDDC0 dataLength:32
MediaSource::KsEvent event:PROPSETID_VIDCAP_CAMERACONTROL KSPROPERTY_CAMERACONTROL_PRIVACY KSPROPERTY_TYPE_BASICSUPPORT
MediaSource::Shutdown

I even have checked the official Microsoft sample, my implenmentation is 1:1 with it but it dos not work, and there are not any other implementations anywhere. It's simply impossible. Just remove the AkVirtualCameraMF.dll file and use only the DirectShow filter for the moment.

hipersayanX avatar Oct 31 '25 20:10 hipersayanX

I've encountered an issue with Windows 10 and Windows 11 in this latest build. Specifically, in Windows 10, following the steps outlined on Wikipedia: 1. AkVCamManager add-device "Virtual Camera" 2. AkVCamManager add-format AkVCamVideoDevice0 YUY2 640 480 30 3. AkVCamManager update. When I directly run AkVCamTest.exe, it pops up an error message saying only RGB32 and RGB24 are supported. In Windows 11, even without selecting Media Foundation (MF), it seems to still execute the MF file. Returning the supportsMediaFoundationVCam method to false in your source code prevents the MF file from being executed. However, in the latest build, the same error message appears (only RGB32 and RGB24 are supported) as in Windows 10. Furthermore, using the virtual camera doesn't display any image in either Windows 10 or Windows 11. This is the latest build. However, switching the branch to the previous official version 9.3.2 resolves this issue. Furthermore, even when using the akvirtualcamera-windows installer version 9.3.2 on Windows 11 without selecting Media Foundation, the same problem occurred when performing the steps outlined in the wiki. My solution was to change the supportsMediaFoundationVCam method in the source code to return false, and then the virtual camera worked on Windows 11. I hope my discovery today has been helpful! And thank you again for your project. O(∩_∩)O

huxinhai avatar Nov 03 '25 13:11 huxinhai

When I directly run AkVCamTest.exe, it pops up an error message saying only RGB32 and RGB24 are supported.

The error is clear, you are not defining any RGB32 or RGB24, you are only defining a YUY2 format only 👉

AkVCamVideoDevice0 YUY2 640 480 30

In Windows 11, even without selecting Media Foundation (MF), it seems to still execute the MF file.

AkVCamTest and AkVCamTestMF works because they load the filters straight DS MF, in the case of Windows 11, without any intervention of the frame server, but the MF vcam can't be detected by the real programs.

Returning the supportsMediaFoundationVCam method to false in your source code prevents the MF file from being executed.

supportsMediaFoundationVCam() returns true in Windows 11 and false in Windows 10 as it should, is not preventing nothing.

Furthermore, using the virtual camera doesn't display any image in either Windows 10 or Windows 11.

The DirectShow vcam (Windows 10) works perfectly fine in programs implementing DirectShow capture, the Media Foundation vcam is the one that have problem being detected.

even when using the akvirtualcamera-windows installer version 9.3.2 on Windows 11 without selecting Media Foundation, the same problem occurred when performing the steps outlined in the wiki.

That is not possible, when you disable the Media Foundation support, it won't install any MF related files.

My solution was to change the supportsMediaFoundationVCam method in the source code to return false, and then the virtual camera worked on Windows 11

By returning false you are forcing the vcam to use the DirectShow filter, that's the reason why it's working. The other way of disabling the MF support is just deleting the MF assistant or the plugin, that is what the installer does as explained before.

The mystery is still why my implementation of the MF vcam can't be detected, but the VCamSample implementation does? again being a 1:1 implementation.

hipersayanX avatar Nov 04 '25 03:11 hipersayanX