dshow实现流程记录

1.初始化com组件

2.枚举设备信息:
创建枚举器组件
指定某一种类型设备,参数 CLSID,通过 ICreateDevEnum::CreateClassEnumerator 获取某一种类的枚举器
IEnumMoniker::Next 枚举每一个 moniker
通过下面的函数 IMoniker::BindToStorage 设备的名称

3.根据 CLSID 向 graph 中添加 filter
利用IMoniker::BindToObject生成绑定道设备上的filter
IFilterGraph::AddFilter 添加 Capture Filter

4.枚举 Graph 图中的对象(filter,pin)
Filter 图表管理器 IFilterGraph::EnumFilters 方法,枚举 graph 图中的所有的 filter
Filter 使用 IBaseFilter::EnumPins 方法,枚举 filter 所有的 pin
pin 支持一个 IPin::EnumMediaTypes 方法,来枚举 pin 支持的媒体类型

5.通过 pin 连接两个 filter
ICaptureGraphBuilder2::RenderStream 选择预览音视频 ( preview pin)
AVI Mux filter 收从 capture pin 过来的音、视频流,然后将其打包成 AVI 流,File writer 将 AVI 流写入到文件中 (captrue pin)

标题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值