windows下视频采集

前奏

这包含第一天和最后一天先前被辨析了。 Windows 下 WebRtc 的密码,因而有些时间还没写完。。让本人谈谈瞄准的Windows 下的视频采集。

现时上网查找 Windows 相关性技术并非易事。可以在百度上找到的教训大致是 2014 一年前的文字,可以布告两年 Windows 使悄悄转动有多可惜。Google 无法运用,它让居民无泪发呜咽声。

荒谬的保守地说,让本人直入主题地说吧。。

Windows下视频采集的方法

在 Windows 搜集视频有两种次要方法 一是经过 Media Foundation,另一是经过 DirectShow。

Meida Foundation 是 Windows 从 vista 在突出一套新的 多培养液的SDK,复杂方便的,从 Win 7 开端完备。

另类的是 DirectShow,次要用于 Win 7 先前的视频珍藏。运用 DirectShow 波湾阴谋密码更烦劳,次要是由于 Windows 安排或处置辩论逻辑电路想法方法设计。 DirectsShow 生长相互作用,绍介了什么 filter, PIN理念。这些老年人现时用计算机计算少许某人能懂。,除非你因为这个时分,哈哈。

这也解说了为什么现时少许某人课题。 Windows 顺序已生长,这是由于本人不克不及赶上时期。你看人 Android/iOS做视频采集多复杂,你尤指不期而遇烦劳了,谁喜欢做课题!

Media 根底的专有的理念

DirectShow 本人在晚年的的辨析中求婚的以图表画出,瞄准本人次要谈谈它 MediaFoundation 方式举行视频采集。

参加广播网闲聊前,让本人从稍许的根本理念开端。。这些理念可以从培养液中看出。 Foundation Programming Guide 找到。上面的译文大致是被翻译的 Windows 的权力文档。

MF(MealAf响铃)的总体和解如次:

MF 开价了两种区分的程序构成者。。第一点钟是上图的左半部。,经过端到端管道运送培养液信息。功用顺序率先设定初值管道,话说回来调动符合的的方法来把持程序图连线正中鹄的程序。。次要的类,作为上述的合适的的一半的,功用可以因为 Source 讲读者得逞信息,也可以有指导意义的事物 Sink Writer 推信息。该构成者对处置信息很效用。。

Primitives 和 Platfrom

图的底 Primitives 它是稍许的附带API:

Attributes: 相当于一 Map, 由 key/value 结合。

Media Type: 培养液信息流的体式。

Media Buffers: 贮存器一节培养液信息。

Media Samples: 寄存 Media Buffers 的拧紧,相当于一 Buffter List。

MF Platform 开价稍许的地核功用的API。诸如,异步调动、任务队列。

Media Pipeline

Media Pipeline 包含三类物体:Media Sources、MFTS(培养液) Foundation Transfors)、Media Sink。

Media Sources: 将信息引入管道。信息可以因为本地复制,广播网流或缠住五金器具成功者。

MFTs: 处置流信息。在 MFTs 波湾阴谋码器是用它成功的。。

Media Sink: 消耗信息。向显示器荧光屏显示视频,参加比赛乐器等被奏响或向培养液文件读到信息。

Media Session 经过管道把持信息流。如美质把持,音视频同时存在的,体式变动。

Source Reader 和 Sink Writer

Source Reader 和 Sink 作者开价了运用 Media Foundation 另类的方法(与之相形) media source, transforms, media 漂浮)。

Source Reader 把持着 media source 和 多解码器。

Sink Writer 把持着 media sink 和 多编码器。

你可以用它 Source Reader 从 media source 获取紧缩或未紧缩信息,运用 Sinker Writer 编码信息接着发生送到 media sink。

让本人看待一看 MF 方式采集视频信息。

采集视频信息

经过过去的绍介,本人根本可以确信 MF 采取 从源头搜集信息,编解码,输入扩大该架构来处置多培养液的。这种方法不费力地懂。,运用起来很方便的。。

MF捕获视频的根本变化

MF运用体系和解正中鹄的次要的程序构成者来搜集信息。,变化如次:

设定初值 COM 部件。

获取视频成功者列表。

致活视频成功者,获取成功者 Media Source。

辩论需求命令和 Media Source 发觉 Source Reader。

为 Source Reader 设置 Media Type。

经过 Source Reader 从成功者读取 Media Type 视频信息体式。

过去的是相等的的 MF 从视频成功者采集数字的根本变化,让本人分表现每一点钟变化。。

分辨析

由于每一步的密码都很复杂,我在这里没过于的全挂在脸上阐明。,经过上面的密码和它的ANNO,你可以不费力地地懂每一步。。

1. 设定初值 COM 部件与启动 MF

…CoInitializeEx(NULL, COINIT_APARTMENTTHREAD | COINIT_DISABLE_OLEDDE)MFStartup(MF_VERSION)…

2. 获取缠住视频成功者

3. 致活视频成功者

IMFMediaSource *mediaSource = 失效的的;。。。/致活第一点钟视频成功者,并为该设置生利逻辑培养液源(培养液) 源)视频成功者〔0〕

4. 发觉 Source Reader

5. 设置 Media Type

6. 读取信息

经过专有的复杂的变化,您可以容易的地从视频成功者获取视频信息。。MF绝对 DirectShow要复杂得多。。

这是为了同时存在的运用MF来搜集视频信息。,MF还开价了一种更高效的异步方法来获取视频信息。,有兴趣的助手可以以本篇文字为根底去课题它的异步方法。

小结

瞄准本人要和你们谈谈。 Windows下的运用 MF 方式采集视频。经过以下 6 变化可以结束:

离题话, MF 收买以图表画出只符合的 Win 7 晚年的的零碎,在流行中的先前的零碎,必然要运用它。 DirectShow 打算。我也会通知你方式在反面运用它。 DirectShow 采集视频。

我要求这篇文字能扶助一切的。,请一切的多加理睬。谢谢你!

发表评论

电子邮件地址不会被公开。 必填项已用*标注