跳转至主内容

 none
如何设置Microsoft Media Foundation读取摄像头的不同分辨率 RRS feed

  • 问题

  • 大家好!

    在使用Media Foundation SDK Samples中的MFCaptureD3D示例读取摄像头时,默认读取到的图像尺寸是1920*1080,我查询了我所使用的摄像头支持的分辨率,如下:

            wWidth( 0)                       2592
            wHeight( 0)                      1944
            wWidth( 1)                       2048
            wHeight( 1)                      1536
            wWidth( 2)                       1600
            wHeight( 2)                      1200
            wWidth( 3)                       1920
            wHeight( 3)                      1080
            wWidth( 4)                       1280
            wHeight( 4)                       960
            wWidth( 5)                       1280
            wHeight( 5)                       720
            wWidth( 6)                       1024
            wHeight( 6)                       768
            wWidth( 7)                        800
            wHeight( 7)                       600
            wWidth( 8)                        640
            wHeight( 8)                       480

    并且尝试设置了hr = MFSetAttributeSize(pType, MF_MT_FRAME_SIZE, 1024, 768);

    设置之后,DrawDevice的width和height变为1024, 768,但是由于一个参数,actual image stride,也就是从buffer中读取的图像的实际尺寸总是1920,所以即使设置了宽高,也并没有改变摄像头的分辨率,请问大家有什么意见吗,谢谢!

    我所使用的代码是MFCaptureD3D Sample,你可以在windows Dev Center中的Docs中搜索。

    2019年8月28日 2:47