《DirectShow实务精选》实例源代码说明

本文深入探讨DirectShow技术在音视频处理领域的应用,包括实时抓图、音视频采集、聊天、组播、TCP/UDP数据传输、VOD点播、视频抠像、字符叠加、网络数据接收等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

=======================================================================
Chapter02 |
----------
    FilterImageGrabber:即时抓图的Filter。这是一个Trans-In-Place Filter,Filter注册名为“HQ Image Grabber”,仅支持RGB32/24/565/555四种媒体类型,
将其接入到Filter链路之后,可以抓取任何一个经过该Filter的Sample。

    AVCap: 音视频采集演示程序。支持AGP/PCI/USB等各种接口的采集卡,支持
数码摄像机输入,实现即时抓图,边预览边采集,支持热插拔等等。

    打开AVCap目录下的AVCap.dsw文件可以同时浏览上述两个项目。


=======================================================================
Chapter03 |
----------
    AVChat: 音视频聊天演示程序。聊天双方一个作为服务器,一个作为客户机。
客户机呼叫服务器建立连接之后,即可进行音视频聊天——双方都可以看到对方
的图像,可以听到对方的声音。
    要求的系统配置:USB摄像头或数码摄像机,声卡,麦克风等。

    MulticastDemo:一个服务器程序,一个客户机程序,双方通过组播方式传输
数据。
    Bin\MulticastServer.exe是服务器程序。
    Bin\MulticastClient.exe是客户机程序。
    打开MulticastDemo目录下的WsClientServer.dsw文件,可以同时浏览该目录
下所有项目。

    TCPDemo: 一个服务器程序,一个客户机程序,双方通过TCP方式传输数据。
    Bin\TCPServer.exe是服务器程序。
    Bin\TCPClient.exe是客户机程序。
    打开TCPDemo目录下的WsClientServer.dsw文件,可以同时浏览该目录下所有
项目。

    UDPDemo: 一个服务器程序,一个客户机程序,双方通过UDP方式传输数据。
    Bin\UDPServer.exe是服务器程序。
    Bin\UDPClient.exe是客户机程序。
    打开UDPDemo目录下的WsClientServer.dsw文件,可以同时浏览该目录下所有
项目。

    VODDemo: 视频点播演示程序。一个服务器程序,一个客户机程序。服务器端
维持一个供点播的节目列表。客户机与服务器建立连接之后,可以得到服务器上
可供点播的节目列表,然后选择一个感兴趣的节目进行播放。目前支持点播的媒
体类型有MPEG1、MP3、MPEG2、AVI等。
    Bin\VODServer.exe是服务器程序。
    Bin\VODClient.exe是客户机程序。
    FilterNetReceiver是一个实现了网络数据接收的模式Source Filter。Filter
的注册名为“HQ Net Receiver”。
    打开VODDemo目录下的WsClientServer.dsw文件,可以同时浏览该目录下所有
项目。


=======================================================================
Chapter04 |
----------
    VideoKey: 视频抠像的演示。其中Ball是由SDK的一个例子修改而来,增加了
属性页,可以定制输出图像的尺寸,注意Filter的注册名改为“Bouncing Ball
plus”;FilterVideoKeyer是一个实现了抠像叠加的Filter,这个Filter有两个
输入Pin,一个输出Pin,Filter的注册名为“HQ Video Keyer”。

    TitleOverlay: 字符叠加的演示。其中FilterTitleOverlay是一个实现字符
叠加的Trans-In-Place Filter,注册名为“HQ Title Overlay Std.”。这个
Filter已经在《DirectShow开发指南》一书中详细介绍过,本书修正了一些问题。
SimplePlayer也是《DirectShow开发指南》一书介绍的一个简单的媒体文件播放
器,本书将其与字符叠加Filter集成,使媒体文件播放的同时能够进行字符叠加。
    打开SimplePlayer目录下的SimplePlayer.dsw文件,可以同时浏览字符叠加
Filter和播放器两个项目。


=======================================================================
Chapter05 |
---------- 
    Multicast: 实现MPEG2传输流的组播发送和接收。其中DSNetwork是SDK中实
现了组播发送和接收两个Filter的项目,FilterTSSource是模拟发送MPEG2传输流
的Source Filter实现。

    VMR-9: SDK中典型的VMR9应用例子。其中BitmapMix实现位图叠加,Ticker实
现字符叠加,Blender实现多个视频流的Alpha混合。

=======================================================================
Appendix_B |
-----------
    PidMpeg1: 插件的实现程序。该插件对Filter Graph Manager进行扩展,让它
支持IMPEG1Builder接口。使用该接口可以为MPEG1文件自动构建播放用的Filter
Graph(使用DirectShow集成的MPEG1相关的一系列Filter)。

    PIDTest:上述插件的使用演示程序。当用户选择一个要播放的媒体文件时,首
先判断它是不是MPEG1文件,如果是,则为它构建完整的播放用的Filter Graph,
然后就可以播放它。
    打开PIDTest目录下的PIDTest.dsw文件,可以同时浏览上述两个项目。


=======================================================================
Appendix_C |
-----------
    FilterTitleSource: 这是一个Source Filter,产生单一背景下的字符图片流。
这个Filter的注册名为“DES Ext Source”,实现了一个自动化接口,可以用在DES
中当作扩展的Source,结合抠像功能的过渡(Transition),可以实现在视频上叠
加静态/动态的字符串。视频编辑演示文件参见Demo_mytitle.xtl。


=======================================================================
Appendix_D |
-----------
    Dump: 用于生成自定义QQ文件的Renderer Filter,注册名为“Dump”。

    FilterQQSource: 用于支持QQ文件播放的Source Filter。这个Filter的注册名
为“QQ Source”,注册之后,QQ文件就能被Windows Media Player识别并正确播放
了。


=======================================================================

*** 技术支持网站:http://hqtech.nease.net

介绍:本书是“DirectShow专业著作”丛书的第二本,侧重介绍了DirectShow技术在当前主要的几个领域中的应用,包括音视频采集、视频聊天、视频点播、视频叠加、媒体播放等。在介绍各种应用的同时,辅助以大量详尽的实例源代码。这些实例,不仅具有很强的实用价值和指导意义,更让读者理论联系实践,使学习DirectShow技术变得轻松自如。本书的配套光盘提供了DirectShow SDK 9.0的安装程序及书中各章节涉及的所有实例源代码。 本书结构合理,内容丰富新颖、条理清晰,适合广大的流媒体应用开发人员、系统设计人员、以及对Windows平台上多媒体处理感兴趣的编程爱好者学习和参考。 目录: 第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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值