zoukankan      html  css  js  c++  java
  • 修改捕获图像的大小 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; 

  • 相关阅读:
    【转】ORACLE Dataguard安装
    win7 配置微软的深度学习caffe
    深度学习-开源方案
    Python之包管理工具
    C#调用Python脚本的简单示例
    转Python 和C#的交互
    转-使用 CefSharp 在 C# App 中嵌入 Chrome 浏览器
    转-在Mac OS上搭建Python的开发环境
    Weex入门与进阶指南
    A couple of notes about .NET Framework 4.6 setup behaviors
  • 原文地址:https://www.cnblogs.com/mfryf/p/2352654.html
Copyright © 2011-2022 走看看