DirectShow开发指南(已经出版)

定价:38.00元
作者: 陆其明

 
DirectShow实务精选(1CD)(到货)

定价:59.00元
作者: 陆其明
出版日期:2004年07月中旬
 

章节下载:第1章下载 DirectShow概述下载
 
作者简介:

陆其明,毕业于南京大学电子工程系电子学与信息系统专业,祖籍江苏武进,现居上海,任上海某外资软件公司部门经理。凭借着多年的工作经验,以及锲而不舍、孜孜以求的研究精神,他在多媒体技术开发和应用方面颇有心得。自2001年起,他相继在《程序员》、《CSDN开发高手》、《中文信息--程序春秋》等技术期刊上发表文章,总计21篇。2003年底出版《DirectShow开发指南》一书,颇受好评。
 
前 言:

笔者的前一本拙作《DirectShow开发指南》(清华大学出版社,2003年)自问世以来,颇受业内人士的关注。有褒扬的、有批评的,更多的则是对笔者提出了新的建议。首先,笔者要衷心地感谢这些热心的朋友,正是这些热心读者的关心和支持,使笔者深受鼓舞,才决定要再编写一本书。
《DirectShow开发指南》比较详尽地介绍了DirectShow系统框架,以及DirectShow技术应用的方方面面。但是,有些读者仍然反馈道:"书的内容讲得细致入微,我都看懂了。但在实际工作中,碰到问题后还是不知道从何处下手解决","看了这本书,基本上学会了怎么开发Filter,但是在应用程序中使用自己开发的Filter时,碰到了很多问题……","这本书比较偏重于Filter的开发,能不能再写一本书,专门介绍DirectShow技术的实际应用呢?"看到这些读者的反馈后,笔者心里十分感激,笔者首先要对他们说的是:实践出真知,要勇于实践。学习一门新技术,贵在理论联系实践。只有把从书本上学到的东西放到实践中去检验,才能加深对已学知识的理解。反复实践,善于在实践中思考、总结,对于提高自身的技术水平,以及分析问题、解决问题的能力是至关重要的。之后,笔者也对《DirectShow开发指南》一书的内容进行了一番反思:在这方面,笔者是不是也有做得不够的地方呢?或许,一些读者已经学会了如何制砖,但是,他们还不知道如何使用这些砖头来造房子。考虑许久之后,笔者决定编写本书(专门介绍如何造房子,造各式各样的房子)。
本着"实用第一"的原则,笔者开始写作本书。为了避免与前一本书在内容上的重叠,本书侧重介绍了DirectShow技术在当前主要的几个领域中的应用,包括音视频采集、视频聊天、视频点播、视频叠加、媒体播放等。在介绍各种应用的同时,辅助以大量详尽的实例源代码。这些实例,都是经过笔者精心设计的,不仅具有很强的实用价值和指导意义,更能促使读者理论联系实践,真正地提高对DirectShow技术的实际应用能力。读完本书之后,读者如果能够从容面对当前市面上绝大部分的DirectShow相关的应用开发,那么,这本书的价值也就得到了体现。
本书是集体智慧的结晶。衷心感谢出版社的夏非彼老师、编辑李才应等人,如果没有这些朋友的帮助,就不会有这本书的问世。本书在写作过程中,得到了敏递软件(上海)有限公司的总经理祝开景博士的关心和支持,还有金邦飞、卞劲松、马涛、季劲松等人的帮助,衷心感谢他们:"你们是我碰到过的最好的同事!"本书的封面照旧由我的爱人谭洁红设计,书中各章的插图也出自于她的创意。正是她出色的工作,使本书增色不少!由于时间短,任务重,再加之笔者的水平有限,书中的错误以及疏漏之处在所难免,望各位专家、同行批评指正。
注:本书的配套光盘提供了书中各章节涉及的所有实例源代码。这些实例均在Windows 2000操作系统、DirectX SDK 9.0、VC 6.0开发环境下编译、测试通过。

声明:本书提供的实例源代码仅限于学习参考,若用于商业用途,本人不对源代码的安全性和稳定性、以及因此可能导致的任何损失负责。请读者自行斟酌。

陆其明
2004年6月于上海

 
DirectShow简介:

为什么需要DirectShow?DirectShow到底能够做什么?带着这两个问题,我们先一起来看多媒体应用开发所面临的挑战:
(1)多媒体数据量巨大,应如何保证数据处理的高效性;
(2)如何让音频和视频时刻保持同步;
(3)如何用简单的方法处理复杂的媒体源问题,包括本地文件、计算机网络、广播电视以及其他一些数码产品等;
(4)如何处理各种各样的媒体格式问题,包括AVI、ASF、MPEG、DV、MOV等;
(5)如何支持目标系统中不可预知的硬件。
DirectShow的设计初衷就是尽量要让应用程序开发人员从复杂的数据传输、硬件差异、同步性等工作中解脱出来,总体应用框架和底层工作由DirectShow来完成,这样,基于DirectShow框架开发多媒体应用程序就会变得非常简单!
 
DirectX大家族:

DirectX软件开发包是微软公司提供的一套在Windows操作平台上开发高性能图形、声音、输入、输出和网络游戏的编程接口。微软将DirectX定义为"硬件设备无关性",即使用DirectX可以用与设备无关的方法提供设备相关的(高)性能。
事实上,DirectX已经成为一种标准,它可以为应用程序(特别是游戏)开发人员和硬件厂商之间的关系"解耦"。DirectX标准的建立,可以为硬件开发提供策略,硬件厂商不得不按照这一标准进行产品改进;同时,通过使用DirectX所提供的接口,开发人员可以尽情地利用硬件可能带来的高性能,而无需关心硬件的具体执行细节。
另外,DirectX采用了组件对象模型(COM)标准,因此不同对象的版本可以有不同的接口,这使用DirectX开发的程序即使在未来也能得到完全的兼容和支持。
DirectX是一项卓越的技术。那么,它为什么称为DirectX呢?其实也不难理解,Direct是直接的意思,X可以代表很多东西,合在一起就是具有共性的一组东西(这个共性就是直接)。DirectX是一个大家族,并且随着DirectX版本的不断更新,家族成员也在不断地发展壮大。
下面是DirectX 9.0家族的所有成员:
※ DirectX Graphics:集成了以前的DirectDraw和Direct3D技术。DirectDraw主要负责2D加速,以实现对显卡内存和系统内存的直接操作;Direct3D主要提供三维绘图硬件接口,它是开发三维DirectX游戏的基础。
※ DirectInput:主要支持输入服务(包括鼠标、键盘、游戏杆等),同时支持输出设备。
※ DirectPlay:主要提供多人网络游戏的通信、组织功能。
※ DirectSetup:主要提供自动安装DirectX组件的API功能。
※ DirectMusic:主要支持MIDI音乐合成和播放功能。
※ DirectSound:主要提供音频捕捉、回放、音效处理、硬件加速、直接设备访问等功能。
※ DirectShow:为在Windows平台上处理各种格式的媒体文件的回放、音视频采集等高性能要求的多媒体应用,提供了完整的解决方案。
※ DirectX Media Objects:DirectShow Filter的简化模型,提供更方便的流数据处理方案。
其实,DirectShow开始并不是DirectX家族中的一员,它是经过DirectX 6.0中的DirectX Media发展而来的。DirectShow集成了DirectX家族中其他成员(如DirectDraw、DirectSound等)的技术,可以说是DirectX中的一位"集大成者"。经过几个版本的发展,DirectShow架构日趋成熟。而DirectX Media Objects是从DirectX 8.1的DirectShow中分离出来的,成为了另一种高效率的流数据处理解决方案
 
目录:

第1章 DirectShow系统 1
1.1 系统概述 1
1.2 使用GraphEdit 3
1.3 最后的话 6
第2章 音视频采集 9
2.1 功能介绍 9
2.2 通用采集 13
2.2.1 采集设备枚举 13
2.2.2 采集设备创建 25
2.2.3 开始视频预览 29
2.2.4 使用高效的VMR 45
2.2.5 选择输入端子 55
2.2.6 采集参数设置 64
2.2.7 支持数码摄像机 76
2.2.8 支持热插拔 82
2.2.9 支持即时抓图 93
2.2.10 采集到AVI文件 114
2.2.11 视频的压缩方案 118
2.3 电视接收 121
2.3.1 预备工作 121
2.3.2 电视选台 124
2.3.3 支持VBI 125
2.4 程序导读 130
2.4.1 一种不错的设计模式 130
2.4.2 程序结构 137
2.4.3 流程概要 141
第3章 网络应用 144
3.1 网络编程基础 144
3.1.1 TCP传输 145
3.1.2 UDP传输 166
3.1.3 IP组播技术 176
3.2 视频聊天 185
3.2.1 功能介绍 185
3.2.2 实现原理 187
3.2.3 采集设备自检 190
3.2.4 角色控制实现 204
3.2.5 开发网络发送Filter 223
3.2.6 开发网络接收Filter 230
3.2.7 程序导读 240
3.3 视频点播 244
3.3.1 功能介绍 244
3.3.2 实现原理 247
3.3.3 开发网络接收Filter 250
3.3.4 支持MPEG1、MP3 261
3.3.5 支持MPEG2 268
3.3.6 支持AVI 270
3.3.7 程序导读 275
第4章 视频叠加 311
4.1 视频抠像 311
4.1.1 抠像原理 311
4.1.2 抠像算法实现 312
4.1.3 MMX算法优化 318
4.1.4 开发抠像Filter 321
4.1.5 模拟实时源 339
4.1.6 应用演示 348
4.2 字符叠加 350
4.2.1 开发字符叠加Filter 350
4.2.2 与媒体播放集成 353
第5章 SDK源码赏析 361
5.1 DSNetwork例子 361
5.1.1 程序结构分析 361
5.1.2 模拟MPEG2-TS源 372
5.1.3 应用演示 380
5.2 VMR-9典型应用 385
5.2.1 位图叠加例子BitmapMix 385
5.2.2 字符叠加例子Ticker 396
5.2.3 流混合例子Blender 405

附录A DirectShow常见问题解答 411
A.1 一般性问题 411
A.2 编程问题 413
附录B PID扩展插件开发 420
B.1 PID应用原理 420
B.2 PID插件开发 421
B.3 PID插件的使用 429
附录C DES扩展Source(实现字符叠加) 432
C.1 自动化基础 433
C.2 字符叠加基础 433
C.3 Source Filter的开发 436
C.4 Source Filter的调试 448
C.5 DES应用举例 449
附录D 让Windows Media Player播放自定义格式文件 452
D.1 播放媒体文件的Filter Graph构建过程 452
D.2 两种解决方案 454
D.3 自定义格式文件的生成 455
D.4 Source Filter的开发 457
D.5 体验QQ文件的播放 471

 
Copyright ©1998~2004 华储网. All rights reserved。
To comment on this site,E-mail :
webmaster@huachu.com.cn