修改捕获图像的大小 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; 

本文转自博客园知识天地的博客,原文链接:修改捕获图像的大小 directshow ,如需转载请自行联系原博主。

相关文章
|
4月前
|
C++ 计算机视觉
[Qt5] 各种方式的图像读取,支持中文路径(Halcon)
[Qt5] 各种方式的图像读取,支持中文路径(Halcon)
87 0
[Qt5] 各种方式的图像读取,支持中文路径(Halcon)
|
编解码 关系型数据库 计算机视觉
【OpenCV图像处理1】图像&视频的加载与显示(上)
【OpenCV图像处理1】图像&视频的加载与显示(上)
240 0
|
计算机视觉
【OpenCV图像处理1】图像&视频的加载与显示(下)
【OpenCV图像处理1】图像&视频的加载与显示(下)
86 0
|
Java API 计算机视觉
常用的视频帧提取工具和方法总结
视频理解任务最基础也是最主要的预处理任务是图像帧的提取。因为在视频理解任务中,视频可以看作是由一系列连续的图像帧组成的。因此,要对视频进行理解和分析,首先需要从视频中提取出每一帧的图像。
508 0
|
数据可视化 vr&ar C#
Unity学习3,如何显示与隐藏平面检测
首先搭建好基本环境,在AR Session Origin下添加一个AR Plane Manager对象,并添加一个预制体AR Default Plane到AR Plane Manager对象的Plane Prefab属性下(这一部分在Unity配置Android开发环境下有介绍不再记录)Unity配置Android开发环境与第一个Demo
279 0
Unity学习3,如何显示与隐藏平面检测
|
缓存 算法 计算机视觉
项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)
项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)
项目实战:Qt+OpenCV大家来找茬(Qt抓图,穿透应用,识别左右图区别,框选区别,微调位置)
|
Linux
linux下使用QT调用FFMPEG读取摄像头一帧数据显示到标签控件上
linux下使用QT调用FFMPEG读取摄像头一帧数据显示到标签控件上
635 0
linux下使用QT调用FFMPEG读取摄像头一帧数据显示到标签控件上
|
Shell API 内存技术
FFmpeg原始帧处理-滤镜API用法详解
在 FFmpeg 中,滤镜(filter)处理的是未压缩的原始音视频数据(RGB/YUV视频帧,PCM音频帧等)。一个滤镜的输出可以连接到另一个滤镜的输入,多个滤镜可以连接起来,构成滤镜链/滤镜图,各种滤镜的组合为 FFmpeg 提供了丰富的音视频处理功能。
677 0
FFmpeg原始帧处理-滤镜API用法详解
|
图形学
Unity射线检测的用法总结
RayCast 射线检测 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分...
2760 0