摘 要
个人电脑和各种网络电子产品(手提电脑、智能手机、MP4等)的空前繁荣伴随着因特网的普及,使得流媒体在网络上的广泛应用,于是流媒体处理的复杂性和技术性使怎样处理流媒体变得简单而富有成效逐渐成为了焦点问题。选择一种合适的应用方案处理媒体流,事半功倍。微软的DirectShow给了我们一个不错的选择。DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布。
DirectX是一套基于Windows平台的编程接口,它能出色的完成高速的实时动画渲染、交互式音乐和环境音效、高效多媒体数据处理等一般API很难完成的任务。
DirectShow为在Windows平台上处理各种格式的媒体文件的回放、音视频采集等高性能要求的多媒体应用,提供了完整的解决方案。
多媒体应用开发所面临的众多挑战:需要高效的处理巨大的数据量,音频和视频时刻保持同步,还需用简单的方法处理复杂的媒体源问题,还需处理各种各样不同的媒体格式,支持系统中不可预知的硬件等。
Directshow的设计初衷就是尽量要让应用程序开发人员从复杂的数据传输、硬件差异、同步性等工作中解脱出来,总体应用框架和底层工作由Directshow来完成,这样,基于Directshow框架开发多媒体应用程序就会变得非常简单。
关键词 DirectShow; 流媒体; 音视频; API
目录
摘 要 I
Abstract II
前 言 1
1 DirectShow简介 2
1.1 COM基础 2
1.1.1 COM组件标准 2
1.1.2 COM组件类型 3
1.2 DirectShow体系结构 3
1.3 DirectShow的 Filter 4
1.3.1 注册Filter 5
1.3.2Filter的媒体类型 5
1.3.3 连接Fliter 6
1.3.4 Filter重组 6
1.3.5 数据传输 8
1.4关于Filter Graph Manager 10
1.5 GraphEdit的使用 10
2 音视频编码标准 13
2.1 MPEG系列编码 13
2.1.1 MPEG-2 13
2.1.2 MPEG-4 14
3 网络传输协议 18
3.1网络协议 18
3.1.1TCP/IP协议 18
3.1.2 UDP协议 19
3.1.3 UDP协议的特性 20
3.1.4 TCP协议和UDP协议的区别 21
3.2 Socket介绍 22
3.2.1常用的Socket类型 22
4 音视频系统开发 23
4.1 Filter组件的开发 23
4.1.1VC环境设置 23
4.1.2 创建工程以及Filter的入口函数 24
4.1.3 实现Filter 的类厂对象 26
4.1.4 实现自己的 Filter 28
4.1.5 开发Filter需要的条件 30
4.2 DirectShow应用开发 32
4.2.1 开发环境的配置 32
4.2.2 Filter Graph Manager接口 32
4.2.3创建 Filter Graph Manager接口 33
4.2.4创建 Filter Graph 34
4.2.5使用 DirectShow的事件响应机制 34
4.3音视频系统开发 35
4.3.1实现原理 35
4.3.2开发网络发送、接收Filter 38
4.3.3设备自检 40
4.3.4角色控制 40
5总结 42
致 谢 43
参考文献 44