精易论坛

标题: Microsoft Media Foundation 采集卡 摄像头 捕捉 低消耗支持库 [打印本页]

作者: z13228604287    时间: 2024-9-23 21:35
标题: Microsoft Media Foundation 采集卡 摄像头 捕捉 低消耗支持库
本帖最后由 z13228604287 于 2024-9-23 21:36 编辑


  
窗口程序集名保 留  保 留备 注
程序集1   
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
属性接口媒体属性接口IMFAttributes 属性接口
属性数长整数型 
对象集媒体设备对象集 
对象数长整数型 
源接口媒体源接口 
源读取器源读取器接口 
类型接口媒体类型接口 
状态长整数型 
索引长整数型 
标志长整数型 
时间轴长整数型 
媒体样本媒体样本接口 
数据接口媒体数据接口 
图像数据指针长整数型 
图像数据长度长整数型 
图像数据当前长度长整数型 
设备名称文本型 
源类型文本型 
媒体类型文本型 
系统唯一标识文本型 
描述符接口媒体描述符接口 
流描述符数长整数型 
i整数型 
是否被选中逻辑型 
流描述符流描述符接口 
类型处理器接口媒体类型处理器接口 
媒体类型数长整数型 
j整数型 
获取类型接口媒体类型接口 
像素格式文本型 
长整数型 
长整数型 
分子长整数型 
分母长整数型 
' https://learn.microsoft.com/zh-cn/windows/win32/medfound/microsoft-media-foundation-sdk
状态 = 初始化COM ( #初始化_公寓线程模型 )
如果真 (状态 > 1)
调试输出 (“初始化 Media Foundation 失败!”)
返回 (-1)
状态 = 创建媒体属性 (属性接口)
如果真 (状态 ≠ 0)
释放COM ()
调试输出 (“创建[IMFAttributes]管理和操作属性集合失败!”)
返回 (-1)
状态 = 属性接口.设置视频捕获类型 ()
如果真 (状态 ≠ 0)
属性接口.释放 ()
释放COM ()
调试输出 (“设置源类型为视频捕获类失败!”)
返回 (-1)
状态 = 枚举设备源 (属性接口, 对象集, 对象数)
如果真 (状态 ≠ 0 对象数 = 0)
属性接口.释放 ()
释放COM ()
调试输出 (“没有找到视频捕获设备!”)
返回 (-1)

对象集.获取设备名称 (0, 设备名称)
对象集.获取源类型 (0, 源类型)
对象集.获取媒体类型 (0, 媒体类型)
对象集.获取符号链接 (0, 系统唯一标识)
调试输出 (设备名称, 源类型, 媒体类型, 系统唯一标识)
状态 = 对象集.激活对象 (0, 源接口)
如果真 (状态 ≠ 0)
对象集.释放 ()
属性接口.释放 ()
释放COM ()
调试输出 (“激活媒体源失败!”)
返回 (-1)

' --------------------获取支持信息---------------------------------
源接口.创建演示描述符 (描述符接口)
描述符接口.获取流描述符数 (流描述符数)
计次循环首 (流描述符数, i)
描述符接口.获取流描述符 (i - 1, 是否被选中, 流描述符)
流描述符.获取媒体类型处理器 (类型处理器接口)
类型处理器接口.获取媒体类型数量 (媒体类型数)
计次循环首 (媒体类型数, j)
类型处理器接口.获取媒体类型 (j - 1, 获取类型接口)
获取类型接口.获取子类型 (像素格式)
获取尺寸属性 (获取类型接口, 宽, 高)
获取帧率属性 (获取类型接口, 分子, 分母)
调试输出 (像素格式, 宽, 高, 分子, 分母)
获取类型接口.释放 ()
计次循环尾 ()
类型处理器接口.释放 ()
计次循环尾 ()
' --------------------获取支持信息失败---------------------------------
状态 = 创建源读取器 (源接口, 源读取器)
如果真 (状态 ≠ 0)
对象集.释放 ()
属性接口.释放 ()
释放COM ()
调试输出 (“创建源读取器失败!”)
返回 (-1)
状态 = 创建媒体类型 (类型接口)
如果真 (状态 ≠ 0)
源读取器.释放 ()
对象集.释放 ()
属性接口.释放 ()
释放COM ()
调试输出 (“创建媒体类型对象失败!”)
返回 (-1)
状态 = 类型接口.设置类型为视频 ()
如果真 (状态 ≠ 0)
类型接口.释放 ()
源读取器.释放 ()
对象集.释放 ()
属性接口.释放 ()
释放COM ()
调试输出 (“设置主类型为视频失败!”)
返回 (-1)
状态 = 类型接口.设置子类型为YUY2 ()
如果真 (状态 ≠ 0)
类型接口.释放 ()
源读取器.释放 ()
对象集.释放 ()
属性接口.释放 ()
释放COM ()
调试输出 (“设置子类型失败(像素格式)!”)
返回 (-1)
状态 = 设置比率属性 (类型接口, 480, 480)
如果真 (状态 ≠ 0)
类型接口.释放 ()
源读取器.释放 ()
对象集.释放 ()
属性接口.释放 ()
释放COM ()
调试输出 (“设置尺寸属性失败!”)
返回 (-1)
状态 = 设置帧率属性 (类型接口, 30, 1)
如果真 (状态 ≠ 0)
类型接口.释放 ()
源读取器.释放 ()
对象集.释放 ()
属性接口.释放 ()
释放COM ()
调试输出 (“设置帧率属性失败!”)
返回 (-1)
状态 = 源读取器.设置源读取器媒体类型 (类型接口)
如果真 (状态 ≠ 0)
类型接口.释放 ()
源读取器.释放 ()
对象集.释放 ()
属性接口.释放 ()
释放COM ()
调试输出 (“应用媒体类型失败!”)
返回 (-1)
类型接口.释放 ()  ' 释放不再需要的媒体类型
计次循环首 (100000, )
状态 = 源读取器.读取 (-4, 0, 索引, 标志, 时间轴, 媒体样本)
如果真 (状态 = 0 媒体样本.指针 ≠ 0)
状态 = 媒体样本.转换为连续缓冲区 (数据接口)
如果真 (状态 = 0)
数据接口.锁定 (图像数据指针, 图像数据长度, 图像数据当前长度)
调试输出 (图像数据指针, 图像数据长度, 图像数据当前长度)
' 这里写你对数据的处理  比如转入 OPENCV  或位图
数据接口.解锁 ()
数据接口.释放 ()

媒体样本.释放 ()

计次循环尾 ()
' 资源释放
类型接口.释放 ()
源读取器.释放 ()
对象集.释放 ()
属性接口.释放 ()
释放COM ()
调试输出 (“正常结束”, 对象数)
返回 (0)  ' 可以根据您的需要返回任意数值



i支持库列表   支持库注释   
MF(未知支持库)
spec特殊功能支持库

static.rar

206.31 KB, 阅读权限: 10, 下载次数: 73, 下载积分: 精币 -2 枚

Microsoft Media Foundation 支持库


作者: 算法艺术家    时间: 2024-9-26 11:36
这是大神
作者: 红桃じ简简箪箪    时间: 2024-9-28 21:42
  这是大神     
作者: qw1212ss    时间: 2024-9-30 03:51
感谢大佬,小白测试成功,另外 ,能否请楼主在源码中创建一个画面? 把画面显示出来?
作者: xinzhiyi    时间: 2024-10-6 00:39
感谢分享
作者: byronzhj    时间: 2024-10-7 20:24
666666666666666666666666666
作者: 华师大    时间: 2024-10-22 18:43
6666666666666
作者: xiehuazhang    时间: 2024-10-24 15:07
怎么把他转为字节集图片?
作者: xiaoxiaozhi    时间: 2024-10-29 11:32
感谢分享
作者: 三清丸    时间: 2024-12-4 12:31
可以把源代码打包发出来吗
作者: 小cai鸟学    时间: 2024-12-28 11:44

感谢分享
作者: wshihuxue1    时间: 2025-1-20 13:29
  感谢分享  感谢分享
作者: kevinjoe    时间: 2025-2-20 14:36
  感谢分享  感谢分享
作者: 黄杰    时间: 2025-3-3 17:39
感谢分享!!!!
作者: your0110    时间: 2025-3-21 15:23
谢谢,支持一下!
作者: your0110    时间: 2025-3-21 15:24
没有币了,要加点

作者: 涤尘    时间: 2025-4-25 16:54
感谢分享
作者: yanyuweimang    时间: 2025-5-2 21:05
11111111111111111111111111
作者: wangtxu    时间: 4 天前

11111111111111111111111111
作者: wangtxu    时间: 4 天前
111111111111111111




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4