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; 

  • 相关阅读:
    python学习之ajax和可视化管理工具
    操作系统-保护模式中的特权级下
    redis 分布式锁的 5个坑,真是又大又深
    数据库之数据表控制语句
    【NoSQL】Consul中服务注册的两种方式
    netstat命令使用方法以及详解
    Dockerfile与Dockerfile实战
    Spring boot+redis实现消息发布与订阅
    怎么寻回位置不可用移动硬盘的数据
    python字符前面u,r,f等含义
  • 原文地址:https://www.cnblogs.com/mfryf/p/2352654.html
Copyright © 2011-2022 走看看