- 6
- 0
- 约9.63千字
- 约 11页
- 2017-02-08 发布于重庆
- 举报
Directshow音视频采集
音视频采集
主要内容:
Directshow的概述和系统组成
Directshow中的音视频同步机制
Directshow应用程序开发流程
Directshow实现音视频的采集程序
Fliter的开发(RTP实时传输和H.264编解码)
整个系统的设计:
Directshow概述和系统组成
DirectShow介绍
DirectShow是一个windows平台上的流媒体框架,提供了高质量的多媒体流采集和回放功能。它支持多种多样的媒体文件格式,包括ASF、MPEG、AVI、MP3和WAV文件,同时支持使用WDM驱动或早期的VFW驱动来进行多媒体流的采集。DirectShow整合了其它的DirectX技术,能自动地侦测并使用可利用的音视频硬件加速,也能支持没有硬件加速的系统。
DirectShow是建立在组件对象模型(COM)上的,因此编写DirectShow应用时,必须具备COM客户端程序编写的知识。对于大部分的应用,需要实现自己的COM对象,DirectShow提供了大部分你需要的DirectShow组件,但是假如需要编写自己的DirectShow组件(RTP传输Fliter以及H.264编解码Fliter),还需要具备编写COM组件的知识。
DirectShow系统组成
如图所示,最大一块就是DirectShow系统,虚线以下是Ring 0(内核模式)特权级别的硬件设备,虚线以上是Ring 3(用户模式)特权级别的应用层。Dshow系统位于应用层中。它使用一种叫做Fliter Graph的模型来管理整个数据流的处理过程;参与数据处理的各个功能模块叫做Fliter,一组Fliter按一定的顺序连接成一条“流水线”协同工作,就组成一个Fliter Graph。
Fliter Graph和Fliter
每个与一个或多个其它的相连,其中的连接点也是一个COM对象,称作Pin,使用Pin将数据从一个转移到另一个,图中的箭头指示了数据流动的方向。在DirectShow中,这一系列连接在一起的称作raph(可看作是Fliter的容器,Fliter完成最基本的功能)。Fliter 一般分为下面几种类型。 源过滤器(source ):源过滤器引入数据到过滤器图表中,数据来源可以是文件、网络、照相机等。不同的源过滤器处理不同类型的数据源。 变换过滤器(transform ):变换过滤器的工作是获取输入流,处理数据,并生成输出流。变换过滤器对数据的处理包括编解码、格式转换、压缩解压缩等。提交过滤器(render):提交过滤器在过滤器图表里处于最后一级,它们接收数据并把数据提交给外设。关于Fliter Graph Manager Fliter Graph Manager也是一个COM对象,用来控制Fliter graph中的所有的,主要有以下功能:用来协调之间的状态改变,从而使graph 中的所有的的状态的改变应该一致。 建立一个参考时钟。 将 的消息返回给应用程序提供方法用来建立 graph。
因为Directshow是基于COM组件的,就需要有一种方式来描述Fliter graph每一个点的数据格式,媒体类型是一种很普遍的,可以扩展的用来描述数字媒体格式的方法,当两个Fliter连接的时候,他们会就采用某一种媒体类型达成一致的协议。媒体类型定义了处于源头的Fliter将要给下游的Fliter发送什么样的数据,以及数据的physical layout。如果两个Fliter不能够支持同一种的媒体类型,那么他们就没法连接起来。 媒体类型是通过AM_MEDIA_TYPE结构定义的,原始定义
媒体样本Samples和分配器Allocators
Fliter通过Pin与Pin之间的连接来递交数据,数据从一个Fliter的输出Pin转移到另一个Fliter的输入Pin,除了个别情况,实现这种功能通常的方法是调用输入Pin上的IMemInputPin::Receive方法。依靠Fliter,媒体数据的内存空间可以通过多个途径来分配:在堆上、在DirectDraw表面(surface)、在共享GDI内存或使用其它的分配机制。这个负责分配内存空间的对象称为分配器(Allocator),是一个暴露IMemAllocator接口的COM对象。当两个Pin相连时,其中的一个Pin必须提供一个分配器。DirectShow定义了一个方法调用序列来决定到底由哪个Pin来提供分配器。Pin还负责协商分配器创建的缓冲数和每个缓冲的尺寸。在数据流开始之前,分配器创建了一个缓冲池。在数据流动过程中,上游Fliter在缓冲中填入数据并递送给下游Fliter,但是,上游Fliter递送给下游Fliter的并不是原始的缓冲区指针,而是一个称为媒体样本(Media
您可能关注的文档
- arcgis操作实例1图解数据统计图制作.doc
- ARCGIS校园图矢量处理报告书.doc
- ArcGIS缓存切片学习报告.doc
- arm9s440处理器的定时器原理.doc
- ASTER数据简介.doc
- AQ2012-2007石油天然气安全规程.doc
- AutoCAD2000命令详解.doc
- AutoCAD常用字体及文字样式.doc
- AutoCAD中特殊符号的输入.doc
- AWM操作手册.doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
最近下载
- 四川省2025年中考数学真题试卷十五套附答案.pdf VIP
- 《数据库原理与应用》课程标准.pdf VIP
- 本科论文毕设-基于JAVA酒店管理系统毕业设计论文.doc VIP
- 2025年德州职业技术学院单招笔试数学试题库含答案解析.docx VIP
- 氟化物微纳复合玻璃与透明陶瓷:设计原理、制备工艺与性能研究.docx VIP
- 2025海上风电系统智能运维的数字孪生技术(英文).pdf VIP
- 2025年德州职业技术学院单招《数学》真题(重点)附答案详解.docx VIP
- 牵引供电变电所-分区所-AT所.pdf VIP
- 投标产品质量、供货、售后服务、残次品退换承诺方案.docx VIP
- 子宫肌瘤的诊治中国专家共识解读.docx VIP
原创力文档

文档评论(0)