第1部分 Windows Media概论 3
第1章 流媒体来了 3
1.1 什么是流媒体 3
目录 3
1.2 流媒体技术 4
1.3 Windows Media 6
第2章 了解SDK系统 9
2.1 SDK系统概述 9
2.2.1 输入、输出、流 11
2.2 SDK基本概念 11
2.2.2 数据格式 14
2.2.3 媒体类型 17
2.2.4 Sample数据包 22
2.2.5 时间戳 25
2.2.6 比特率 27
2.2.7 内容缓冲 28
2.2.8 网络协议 30
2.2.9 媒体内容发布 34
2.3.1 开发环境配置 35
2.3 SDK编程梗概 35
2.3.2 实用的宏定义 37
2.3.3 COM库的初始化 39
2.3.4 COM接口扩展方案 40
2.3.5 回调接口的实现 41
2.3.6 异步函数调用的同步 45
2.3.7 接口函数的两遍调用 47
2.3.8 宽字符与ANSI字符 48
2.3.9 奇妙的do-while循环 49
3.1 ASF文件结构 52
第3章 ASF文件格式 52
3.1.1 头对象 54
3.1.2 数据对象 56
3.1.3 索引对象 57
3.2 ASF系统特性 57
3.2.1 流编号 57
3.2.2 流类型 58
3.2.3 流互斥 60
3.2.4 流优先级 61
3.2.5 带宽共享 61
3.2.7 SMPTE时间码 62
3.2.6 数据单元扩展 62
3.2.8 标记 63
3.2.9 元数据 63
3.3 ASF与Windows Media 64
第4章 Windows Media编解码器 66
4.1 编解码器概述 66
4.1.1 枚举系统中的编解码器 66
4.1.2 实例程序:ListWMCodecs 68
4.2.2 VBR编码 69
4.2.1 CBR编码 69
4.2 编解码基本概念 69
4.2.3 两遍编码 70
4.2.4 视频复杂度 71
4.2.5 设备兼容模板 73
4.2.6 实例程序:ListCodecProps 76
4.3 Windows Media编码软件 78
4.3.1 文件格式转换 78
4.3.2 实况流编码 81
4.3.4 网络流化 82
4.3.3 屏幕捕捉 82
第5章 Profile描述 84
5.1 Profile概述 84
5.1.1 实例程序:ListProps 84
5.1.2 小工具:ShowProfile 89
5.2 系统Profile 90
5.2.1 系统Profile枚举 92
5.2.2 系统Profile本地化 98
5.2.3 实例程序:ListSysProfiles 99
5.3.2 使用系统Profile 100
5.3 Profile管理 100
5.3.1 获取ASF文件的Profile 100
5.3.3 保存Profile到文件 101
5.3.4 从文件装载Profile 102
5.3.5 创建全新的Profile 103
第6章 元数据 105
6.1 元数据概述 105
6.2 获取元数据 105
6.3 ID3支持 108
7.1.1 读取过程概述 113
7.1 异步读取 113
第2部分 Windows Media应用编程 113
第7章 Windows Media文件的读取 113
7.1.2 识别输出编号 114
7.1.3 选择输出格式 116
7.1.4 随机定位 124
7.1.5 读取器性能统计 125
7.1.6 Sample内存优化 126
7.1.7 实例程序:WmvPlayer 137
7.1.8 实例程序:WmaPlayer 140
7.2.1 实例程序:WmSyncRead 145
7.2 同步读取 145
7.3 Windows Media文件复制 148
7.3.1 实例程序:WmCopy 149
第8章 Windows Media文件的生成 153
8.1 生成Windows Media文件 153
8.1.1 创建Profile 153
8.1.2 确定编码模式 163
8.1.3 识别输入编号 165
8.1.4 设置输入格式 167
8.1.6 生成器性能统计 173
8.1.5 视频编码即时预览 173
8.1.7 自定义接收器 176
8.1.8 实例程序:FilterASFWriter 184
8.2 两遍编码 186
8.3 水印叠加 188
8.3.1 DMO简介 188
8.3.2 水印组件开发 188
8.3.3 水印组件枚举 192
8.3.4 应用演示 195
8.4 图片视频流 197
8.4.1 实例程序:WmImages 203
8.5 屏幕录制 204
8.5.1 屏幕采集方法 204
8.5.2 实例程序:WmScreen 208
8.6 使用第三方编码器 209
8.6.1 实例程序:FilterASFMuxer 209
8.6.2 典型应用:DivX流保存为ASF 209
第9章 Windows Media文件的编辑 211
9.1 元数据编辑 211
9.1.1 获取属性 211
9.1.2 修改属性 214
9.1.3 增加属性 217
9.1.4 删除属性 218
9.1.5 实例程序:WmEditor 219
9.2 复杂属性 221
9.2.1 获取歌词 222
9.2.2 编辑歌词 224
9.2.3 实例程序:WmLyrics 226
9.3 使用标记 227
9.4 文件索引 229
10.1 流媒体发布模型 231
第10章 Windows Media网络应用 231
10.1.1 广播发布 232
10.1.2 点播发布 238
10.2 网络流化 240
10.2.1 本机广播 241
10.2.2 推发布 242
10.2.3 实例程序:WmStreaming 247
10.3 客户端播放 250
10.3.1 流式播放 251
10.3.3 另存为本地文件 252
10.3.2 下载播放 252
10.4 视频会议广播系统 254
10.4.1 系统方案设计 254
10.4.2 流化组件开发 255
10.4.3 系统演示 256
第3部分 Windows Media高级主题 261
第11章 数字版权管理 261
11.1 初识DRM 261
11.2 支持DRM 263
11.2.1 获取许可证 263
11.2.2 实例程序:DRMPlayer 272
第12章 Windows Media与DirectShow 277
12.1 为什么需要DirectShow 277
12.2 QASF Filters 278
12.2.1 WM ASF Reader 278
12.2.2 WM ASF Writer 279
12.3 精确到帧的定位 280
第4部分 附录 287
附录A Windows Media Format SDK常用GUID对照表 287
附录B Windows Media Format SDK的主要对象与接口 292
附录C Windows Media Format SDK的主要功能函数 302