在用directshow开发时可能需要修改视频的分辨率便于网络传输,可以用如下方法:
IAMStreamConfig *pSC=NULL;
VIDEOINFOHEADER *vinfo=0;
hr= pBuilder2->FindInterface(&PIN_CATEGORY_CAPTURE,
&MEDIATYPE_Video,pSrc, IID_IAMStreamConfig,(void **)&pSC);
if (FAILED(hr))
{
AfxMessageBox("fail");
}
AM_MEDIA_TYPE * mmt=NULL;
pSC->GetFormat(&mmt); //取得默认参数
VIDEOINFOHEADER * pvih = (VIDEOINFOHEADER*)mmt->pbFormat;
pvih->bmiHeader.biHeight=240; //修改采集视频的高为240
pvih->bmiHeader.biWidth=320; //修改采集视频的宽为320
mmt->pbFormat = (unsigned char *) pvih;
pSC->SetFormat(mmt); //重新设置参数
但分辨率必须的摄像头支持的,可以用graphedit查看摄像头支持的分辨率大小。