I’m not sure what I did last week, but gst-device-monitor-1.0.exe is not finding any video.
I can bring up the cameras (laptop webcam, USB camera) with Windows, but not with gstreamer.
I deleted my registry.x86_64-msvc.bin file hoping that would clear it up, but now I get these blacklisted files;
gst-inspect-1.0.exe -b
Blacklisted files:
gstadaptivedemux2.dll
gstsoup.dll
Currently using gstreamer from conda-forge
# Name Version Build Channel
gst-plugins-bad 1.26.9 h296f754_0 conda-forge
gst-plugins-base 1.26.9 hf40947b_0 conda-forge
gst-plugins-good 1.26.9 h88ad7c1_0 conda-forge
gst-plugins-ugly 1.26.9 hef89aec_0 conda-forge
gst-python 1.26.9 py312hb640804_0 conda-forge
gstreamer 1.26.9 h54009fa_0 conda-forge
gstreamer-orc 0.4.41 h1f81b68_0 conda-forge
However, I have the same problem using my gvsbuild version of gstreamer.
A bit more information. I ran
gst-device-monitor-1.0.exe --gst-debug=4 --gst-debug-color-mode off Video
and saved it to a file.
(And it looks like I can’t attach a txt file
)
Here’s what I think may be the relevant snippet:
I’ve never had this issue before.
0:00:00.087517000 19768 0000013189A95ED0 INFO GST_DEVICE_PROVIDER_FACTORY gstdeviceproviderfactory.c:271:gst_device_provider_factory_get: getting device provider "ksdeviceprovider"
0:00:00.175124900 19768 0000013189A95ED0 INFO d3d11device gstd3d11device.cpp:1147:gst_d3d11_device_new_internal: Failed to create d3d11 device for adapter index 1 with flags 0x800, hr: 0x887a0004
0:00:00.175916200 19768 000001318BD44840 INFO mftransform gstmftransform.cpp:483:gst_mf_transform_thread_func:<mftransform0> Enumerating MFT for adapter-luid 69568
0:00:00.340836900 19768 000001318BD44840 INFO mftransform gstmftransform.cpp:534:gst_mf_transform_thread_func:<mftransform0> Open device Intel® Quick Sync Video H.264 Encoder MFT
0:00:00.525519800 19768 00000131960DA4E0 INFO mftransform gstmftransform.cpp:534:gst_mf_transform_thread_func:<mftransform1> Open device H264 Encoder MFT
0:00:00.529347100 19768 00000131960DA4E0 INFO mftransform gstmftransform.cpp:483:gst_mf_transform_thread_func:<mftransform2> Enumerating MFT for adapter-luid 69568
0:00:00.549348700 19768 00000131960DA4E0 INFO mftransform gstmftransform.cpp:534:gst_mf_transform_thread_func:<mftransform2> Open device Intel® Hardware H265 Encoder MFT
0:00:00.873474400 19768 00000131960DA210 INFO mftransform gstmftransform.cpp:534:gst_mf_transform_thread_func:<mftransform3> Open device HEVCVideoExtensionEncoder
0:00:01.255190300 19768 00000131960DA210 WARN mftransform gstmftransform.cpp:872:gst_mf_transform_open_internal: MediaFoundation call failed: 0xc00db3b3, License check for app failed.
0:00:01.255269200 19768 00000131960DA210 WARN mftransform gstmftransform.cpp:873:gst_mf_transform_open_internal:<mftransform3> Couldn't open MFT
I don’t have admin rights on this machine.
I had a coworker log in to my laptop. After his Windows profile finally got created, I created a conda environment for him with gst-plugins-good, gst-plugins-bad (along with their dependencies.)
gst-device-monitor-1.0.exe Video worked just fine for him, and could even do a
gst-launch-1.0.exe ksvideosrc ! queue ! autovideosink.
I then tried to create for myself a fresh conda environment, but no such luck.
Any Windows gurus out there that can give me a clue as to where to look? It must have something to do with my Windows account.
I went to IT and am getting a new Windows profile. Once my old conda environments are copied over from my old profile, I’ll test this again. 
Comparing output of
gst-device-monitor-1.0.exe --gst-debug="mf*:5" --gst-debug-no-color Video
between my non-working Windows profile and another user on the same machine.
- The non-working profile has a missing line:
(working)
gst-device-monitor-1.0.exe : 0:00:00.656582900 4668 000001D0865819E0 INFO mftransform
gstmftransform.cpp:483:gst_mf_transform_thread_func:<mftransform0> Enumerating MFT for adapter-luid 74408
(non-working)
gst-device-monitor-1.0.exe : 0:00:00.609049200 19164 00000205AC870940 INFO mftransform gstmftransform.cpp:483:gst_mf_transform_thread_func:<mftransform0> Enumerating MFT for adapter-luid 74408
Also, after Probing devices...
(working)
0:00:04.918709500 4668 000001D086E3FC40 DEBUG mf gstmfdevice.cpp:370:gst_mf_device_provider_start_win32:<mfdeviceprovider0> Starting Win32 watcher
0:00:04.929894200 4668 000001D093CC1B40 DEBUG mfsourceobject gstmfsourcereader.cpp:799:gst_mf_source_reader_thread_func:<mfsourcereader0> device 0, name: "Integrated Webcam", path: "\\?\usb#vid_1bcf&pid_28c9&mi_00#6&2d060e10&0&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\global"
0:00:04.930034000 4668 000001D093CC1B40 DEBUG mfsourceobject gstmfsourcereader.cpp:806:gst_mf_source_reader_thread_func:<mfsourcereader0> Requested device index: 0, name: "(NULL)", path "(NULL)"
0:00:05.285908700 4668 000001D093CC1B40 DEBUG mfsourceobject gstmfsourcereader.cpp:232:gst_mf_enum_media_type_from_source_reader: StreamIndex -4, MediaTypeIndex 0, video/x-raw, format=(string)NV12, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1, colorimetry=(string)1:4:0:1
(non-working)
0:00:02.469179100 19164 00000205B66489A0 DEBUG mf gstmfdevice.cpp:370:gst_mf_device_provider_start_win32:<mfdeviceprovider0> Starting Win32 watcher
0:00:02.474946500 19164 00000205B9F685C0 DEBUG mfsourceobject gstmfsourcereader.cpp:799:gst_mf_source_reader_thread_func:<mfsourcereader0> device 0, name: "Integrated Webcam", path: "\\?\usb#vid_1bcf&pid_28c9&mi_00#6&2d060e10&0&0000#{e5323777-f976-4f5b-9b55-b94699c46e44}\global"
0:00:02.475017200 19164 00000205B9F685C0 DEBUG mfsourceobject gstmfsourcereader.cpp:806:gst_mf_source_reader_thread_func:<mfsourcereader0> Requested device index: 0, name: "(NULL)", path "(NULL)"
0:00:02.507604600 19164 00000205B9F685C0 WARN mfsourceobject gstmfsourcereader.cpp:293:gst_mf_source_reader_open: MediaFoundation call failed: 0x80070005, Access is denied.
Not sure why I’m getting Access is denied.
Found the problem thanks to IT. I had “Let desktop apps access your camera set to Off”
