在 Windows 10 build 10.1607.14393.10(又称周年纪念版)上,我无法再获取 MJPG 捕获流。曾经是 MJPG 和 YUY2 分辨率,现在我在 DirectShow(内核流)和 Media Foundation MJPG 中仅获得 YUY2,然后在 IBaseFilter 源连接到任何内容之前将媒体类型转换为 NV12。尝试使用不同相机的多个系统。有什么想法可能是错的吗?
640x480 @30 YUY2
...
640x480 @30 MJPG <- gone
...
DirectShow:
com_t<IAMStreamConfig> sc;
if_failed_return_result(camera_output_pin->QueryInterface(&sc));
int number_of_capabilities = 0;
int capability_size = 0;
if_failed_return(sc->GetNumberOfCapabilities(&number_of_capabilities, &capability_size), -1);
for (int i = 0; i < number_of_capabilities && k < count; i++) {
VIDEO_STREAM_CONFIG_CAPS scc;
assert(sizeof(scc) == capability_size);
AM_MEDIA_TYPE* mt = null;
if_failed_return(sc->GetStreamCaps(i, &mt, (BYTE*)&scc), -1);
...
Run Code Online (Sandbox Code Playgroud)
在MMF中:
640x480 @30 YUY2
...
640x480 @30 …
Run Code Online (Sandbox Code Playgroud) webcam directshow video-capture ms-media-foundation windows-10