• 修改捕获图像的大小 directshow


    ok,谢谢陆兄的指点,我也是这么做的,见代码,其中pAsfConfig是从asfwriter指针获取的. 
    IWMProfile *ppProfile; 
    pAsfConfig->GetCurrentProfile (&ppProfile); 

    IWMStreamConfig* ppConfig; 
    ppProfile->GetStream(0,&ppConfig); //获取视频流的 
    /////设置视频流的属性 
    IWMMediaProps *pMediaProps; 
    ppConfig->QueryInterface(IID_IWMMediaProps,(void**)(&pMediaProps)); 
    WM_MEDIA_TYPE mediaType; 
    DWORD bufsize; 
    pMediaProps->GetMediaType(NULL,&bufsize); 
    pMediaProps->GetMediaType(&mediaType,&bufsize); 
    //////////////////////// 
    VIDEOINFOHEADER *pVih = reinterpret_cast<VIDEOINFOHEADER*>(mediaType.pbFormat); 
    在这里重新设置视频流的属性 
    ......... 
    ////////////////////////// 
    pMediaProps->SetMediaType(&mediaType); 


    我想通过pVih指针设置视频的大小,VIDEOINFOHEADER结构如下: 

    typedef struct tagVIDEOINFOHEADER { 
    RECT rcSource, 
    RECT rcTarget; 
    DWORD dwBitRate; 
    DWORD dwBitErrorRate; 
    REFERENCE_TIME AvgTimePerFrame; 
    BITMAPINFOHEADER bmiHeader; 
    } VIDEOINFOHEADER; 

    因为我看到BITMAPINFOHEADER 结构有两个成员 
    LONG biWidth; 
    LONG biHeight; 
    不知道是否通过这bmiHeader的两个变量来设置视频的宽度和高度,??? 
    另:我通过查看GetMediaType返回的媒体类型,发现biWidth和 biHeight都是零?怎么解释啊? 
    还请陆兄再次指教 



    附:BITMAPINFOHEADER结构 
    typedef struct tagBITMAPINFOHEADER { 
    DWORD biSize; 
    LONG biWidth; 
    LONG biHeight; 
    WORD biPlanes; 
    WORD biBitCount; 
    DWORD biCompression; 
    DWORD biSizeImage; 
    LONG biXPelsPerMeter; 
    LONG biYPelsPerMeter; 
    DWORD biClrUsed; 
    DWORD biClrImportant; 
    } BITMAPINFOHEADER; 

  • 相关阅读:
    ios NSString format 保留小数点 float double
    IOS中延时执行的几种方式的比较和汇总
    ioss使用xcode常用快捷键
    iphone 6plus 下app里的状态栏和界面会被放大的问题//以及设置APP闪屏页/APP图标流程
    iostbleView刷新后显示指定cell
    iOS-打包成ipa的4种方法
    iosttableViewCell右侧的箭头,圆形等
    Linux学习之CentOS(二十)------vi/vim 按键说明
    gzip
    bzip2
  • 原文地址:https://www.cnblogs.com/mfryf/p/2352654.html
Copyright © 2020-2023  润新知