请教前辈们:
我用ISampleGrabber 获取驱动摄像头,设置如下: AM_MEDIA_TYPE mt; 
ZeroMemory(&mt, sizeof(AM_MEDIA_TYPE));
mt.majortype = MEDIATYPE_Video;
mt.subtype = MEDIASUBTYPE_RGB24; 能正常显示数据,视频大小是 640*480,我想调整一下捕获视频的分辨率,用IAMStreamConfig 的 SetFormat 设置总是失败,调用如下:VIDEOINFOHEADER* pviImageCapture  = 
(VIDEOINFOHEADER *)mt.pbFormat;
pviImageCapture->bmiHeader.biWidth  = 160;
pviImageCapture->bmiHeader.biHeight = 120;
pviImageCapture->bmiHeader.biSizeImage = 160*120*3;
hr = pConfig->SetFormat(&mt);已经知道我的摄像头只支持 YUY2格式,不支持RGB24格式请问:出错的原因是什么?ISampleGrabber 捕获的视频大小是不是都是 640*480的,还是和摄像头本身有关系?

解决方案 »

  1.   

    谢谢楼上的兄弟,那么分辨率无法设置,也是因为摄像头不支持了?
    另外:如果想使用摄像头不支持的分辨率,是不是只能自己在采集到图像以后进行缩放?DirectShow有没有提供相关的Filter?刚接触视频,问的问题有些弱,见谅 ^_^
      

  2.   

    现在普通免驱动的摄像头大都不支持 RGB24 格式了吧?我测试了4、5个都是YUY2格式。 看到网上关于视频采集传输的资料,大部分都是以 RGB24格式做样板的