视频网站修炼术

《视频网站修炼术—基于Flash的视频技术开发与应用》 马涛 ,朱印宏编著. 电子工业出版社,2009.9
本书读者的定位起点很低,不管读者有无编程基础、Flash动画基础,都可以玩转Flash视频。Flash视频技术毕竟是个新技术,大家对它的了解不是很全面,通过本书,你可以发现其实Flash视频技术是很简单的,人人都可以应用它。书中有大量的例子和图示,只要照着做就可以了,很容易上手。
本书读者的入点又是很高的。如果你有相关基础,那么本书也适合你,书中的一些前沿技术,比如基于流媒体的视频网站、编写servlet处理程序等等又是为基础很深的读者准备的。
总之,不管你处于哪个层次,本书都适合你。低起点,高入点,本书承载了一定的知识厚度,我们希望这个厚度转嫁到读者的身上,让读者真正有所收获!
1.视频是大势所趋以往互联网上几乎都是文字、图片,相比之下,视频记录的信息更鲜活。视频要比文字生动得多,文字在视频面前显得干瘪。比如,我们经常在电视上回味中华人民共和国开国大典的录像,虽然是黑白录像,但大家看到毛主席宣布的场面都会激动人心。
视频可以完整地保留现场,将现场记录下来,这是视频的特点之一。
视频的第二个特点:由于现在的数码技术、数码产品已经非常丰富和普及,使用数码产品来制作视频,操作非常容易,成本非常低,这样就使视频源极大地丰富起来。制作视频使用数码设备,要比长篇大论容易得多。因为写文章是创造性的劳动,好文章并不是人人都能写出来的,而制作视频只需要用机器来制作就可以了,完全是机械性的劳动,人人都可以办到。这样,视频的制作门槛就大大降低。
有了大量的视频源,下一步就需要一个传播平台来传播它。对平台而言,最好的方式当仁不让地就属互联网。
第三个理由来自外部环境的变化:网络环境逐渐改善,宽带普及,视频是大势所趋,于是,越来越多的网站都提供了视频功能。
此时的问题核心转向于有没有哪一种视频技术用起来最简单,网友观看起来最方便呢?
回答是有,这就是Flash视频技术。
2.Flash视频技术的优势我们从三个方面来分析。
首先,就视频的压缩本身来说,视频质量应该不负众望,起码应保证清晰、压缩比适中以适合网络传播;
其次,从用户的角度看,用户应该能方便地观看视频,不要因为播放器的问题而苦恼;
第三,从网站的角度看,该视频技术应该能够直接应用在现有网站上,不必增添特殊的硬件和软件,不用进行大的投资,技术简单,易操作。
同时满足这三个条件的只有Flash视频技术的优势最明显。为什么Flash视频技术的优势最明显呢?我们来一一解释。
首先,Flash视频在视频压缩质量上不断提高,新的On2编码器使得Flash视频在同等品质下压缩比更大,继而对网络带宽要求更低,视频文件的尺寸也更小。
其次,Flash视频使用Flash Player作为视频播放器,虽然Flash Player最初不是为了播放视频而开发的,主要是为了播放Flash动画而开发,但这不是主要问题,重要的是Flash Player的安装率。据统计,在联网的计算机中,有96%的计算机都安装了Flash Player。有了如此高的Flash Player安装率,一下子就解决了视频播放器的问题。长期以来,视频格式众多,每一种格式都有一个对应的播放器插件,众多的播放器插件的不统一,给用户观看视频带来了极大的麻烦,所以当发现在现成的、可信赖的Flash Player里能观看视频时,人们都没有拒绝。
第三,Flash视频也支持渐进式下载播放。这使得在普通的网站上就可以提供视频服务,而不必增添昂贵的服务器及架设专门的流媒体服务器。渐进式下载的方式使得Flash视频文件就像普通的网页素材(如图片、脚本文件、网页文件等)一样按照普通的方式下载,然后下载的数据先缓冲,积累到一定程度就可以播放,而不必等待整个视频文件都下载完毕才开始播放。
3.商业界推动Flash视频技术火爆Flash视频技术的这些优势当然会被有头脑的人和组织发现,YouTube就是其中之一。它发现了视频分享的巨大需求,果断地采用了该技术,推出了视频分享网站。人们对视频的需求与渴望一下子被激发了出来,人气骤然飙升。
从此,视频网站这个概念走进人们的视线。与此同时,世界各地的创业者也马不停蹄地效仿。于是,我们看到国内的视频网站和播客网站如雨后春笋般地建立起来。
国内著名的视频网站如酷6、六间房、土豆网、优酷、我乐,以及新浪播客、搜狐播客等。当然,他们使用的大多都是Flash视频技术。
另一方面,除了这些视频门户外,还有一些免费电影网站,他们也借助于Flash视频技术,推出了新格式的电影。如此一来,观众不用再为浏览器和播放器的不兼容而失望,就能流畅地观看视频。
还有一些个人网站,偶尔在网页中插入一些自己的视频作品、求职录像,甚至还有找投资的演说等,这些都要归功于Flash视频技术,是它让这些“难事”得以实现,是它让复杂的技术变得简单!
总之,
如果你想要玩转Flash视频;
如果你想让网页里能够播放视频;
如果你想让你的网站具有视频功能;
如果你想自己建设视频网站、播客,
本书的内容一定不可错过。
目录
第一部分 基础知识绪论
第1章 概述 3
1.1 视频的概念 4
1.2 人人喜爱的视听技术—视频 4
1.3 视频与动画的异同 5
1.4 Flash视频的概念 5
1.5 Flash视频的播放环境 6
1.6 Web视频简史 7
1.7 Web视频技术发展历程 7
1.8 Flash视频技术为什么会火 8
1.9 Flash 8新的视频功能 9
1.10 本书知识体系概览 11
第二部分 Flash视频技术
第2章 使用Windows Movie Maker和摄像头录制你的第一个视频 15
第3章 获取Flash视频文件 23
3.1 使用格式转换软件将其他格式的视频转换成Flash视频 24
3.1.1 编码软件解决方案 24
3.1.2 “视频导入”向导和Flash Video Encoder支持的视频格式 26
3.1.3 使用“视频导入”向导获取Flash视频 27
3.1.4 使用Flash Video Encoder获取Flash视频文件 34
3.2 Flash视频编码原理与编码设置 39
3.2.1 Sorenson和On2编码解码器 39
3.2.2 Flash Player的版本支持 40
3.2.3 视频参数 41
3.2.4 帧频 42
3.2.5 关键帧 42
3.2.6 高宽比(帧大小) 43
3.2.7 数据速率 45
3.2.8 设置音频编码选项 46
3.2.9 创建高质量视频 46
3.3 提取Flash视频片段 48
3.3.1 创建单个Flash视频剪辑 48
3.3.2 创建多个Flash视频剪辑 49
第4章 用于播放Flash视频的播放组件 53
4.1 Media组件包 54
4.1.1 Media组件包简介 54
4.1.2 MediaDisplay组件 54
4.1.3 MediaController组件 57
4.1.4 MediaController组件与MediaDisplay组件配合播放视频 59
4.1.5 MediaPlayback组件 61
4.2 FLVPlayback组件包 62
4.2.1 FLVPlayback组件及其特点介绍 62
4.2.2 通过“视频导入”向导引入FLVPlayback组件 63
4.2.3 通过“组件”面板引入FLVPlayback组件 66
4.2.4 FLVPlayback组件的参数 69
4.2.5 使用ActionScript脚本动态创建FLVPlayback实例 71
4.2.6 小结三种创建FLVPlayback实例的方法 72
4.2.7 连续播放多个Flash视频 73
4.3 自定义FLVPlayback组件 77
4.3.1 使用FLVPlayback Custom UI实现自定义外观 77
4.3.2 修改FLVPlayback组件外观的图形和颜色 80
4.3.3 自定义独立的外观swf文件 83
4.3.4 加载自定义的外观swf文件 86
第5章 使用ActionScript控制Flash视频播放 89
5.1 使用视频对象(Video)播放Flash视频 90
5.1.1 创建视频(Video)对象 90
5.1.2 视频类Video 93
5.1.3 NetConnection类和NetStream类 95
5.1.4 渐进式下载 98
5.1.5 渐进式下载播放视频时的状态变化 100
5.1.6 动态调整视频播放的尺寸 102
5.1.7 显示渐进式下载的进度 107
5.1.8 制作独立的播放器程序 109
5.2 嵌入式播放视频 113
5.2.1 什么是嵌入式视频 113
5.2.2 将嵌入式视频导入库 114
5.2.3 嵌入式视频导入方法比较 116
5.2.4 视频对象与嵌入式视频对象的异同 117
5.2.5 更改嵌入式视频属性 117
5.2.6 议一议:“库”面板中的视频是元件还是资源 119
5.2.7 编辑嵌入式视频以添加字幕 119
5.2.8 Flash 8提供的用于控制嵌入式视频播放的行为 122
5.2.9 使用行为控制嵌入式视频播放 123
5.2.10 编写ActionScript控制嵌入式视频播放 124
5.2.11 嵌入式视频的局限 126
第6章 Flash视频高级技术 127
6.1 创建Alpha编码的Flash视频 128
6.1.1 什么是Alpha视频 128
6.1.2 使用After Effects创建Alpha通道并导出Flash视频 128
6.2 Flash视频的元数据 133
6.2.1 什么是元数据 133
6.2.2 跟踪Flash视频的元数据信息 133
6.3 提示点 135
6.3.1 提示点的概念与分类 135
6.3.2 使用Flash Video Encoder嵌入提示点 136
6.3.3 跟踪FLV视频文件中的提示点 138
6.3.4 通过FLVPlayback组件创建和使用提示点 140
6.3.5 编写ActionScript添加和禁用提示点 143
6.3.6 通过MediaPlayback创建提示点 144
6.3.7 侦听cuePoint事件 145
6.3.8 导航视频 148
6.3.9 查找提示点 151
6.4 提示点应用 153
6.4.1 提示点应用(一) 154
6.4.2 提示点应用(二) 156
6.4.3 提示点应用(三) 159
第7章 将Flash视频插入网页制作Web视频 163
7.1 制作Web视频网页 164
7.1.1 Web视频的概念与制作方法 164
7.1.2 在Flash 8中直接发布 164
7.1.3 在Dreamweaver中插入swf视频 165
7.1.4 在Dreamweaver中直接插入Flash视频 168
7.1.5 改造视频播放器用于播放Web视频(使用FlashVars技术) 172
7.2 部署Flash视频 175
第三部分 视频网站实战
第8章 简单视频网站搭建 179
8.1 简单视频网站的要求 180
8.1.1 什么是视频网站 180
8.1.2 简单视频网站的要求 180
8.2 需求分析与技术架构 181
8.2.1 需求分析 181
8.2.2 技术架构 181
8.2.3 数据库设计 181
8.3 搭建Tomcat Web服务器和MySQL数据库服务器 182
8.3.1 安装Java开发环境 183
8.3.2 安装Tomcat服务器 185
8.3.3 设置环境变量 185
8.3.4 测试Java环境 187
8.3.5 测试Tomcat环境 188
8.3.6 下载与安装MySQL 189
8.3.7 配置MySQL服务器 191
8.3.8 测试MySQL服务器 194
8.3.9 执行数据库脚本命令 195
8.4 页面制作与代码编写 196
8.4.1 创建videosite应用 196
8.4.2 制作视频添加静态页 197
8.4.3 编写上传信息处理程序uploadservlet 199
8.4.4 智能上传组件SmartUpload简介及UploadServlet编译 203
8.4.5 在web.xml里注册UploadServlet 204
8.4.6 编写上传结果显示页面submitInfo.jsp 205
8.4.7 上传视频信息 207
8.4.8 制作首页 208
8.4.9 制作视频展示模板页viewVideo.jsp 212
8.4.10 编写删除视频信息页delVideo.jsp 218
8.4.11 制作修改视频信息页updateVideo.jsp 220
8.4.12 编写视频修改处理程序UpdateServlet 225
8.4.13 编译并注册UpdateServlet 229
第9章 视频分享网站搭建 231
9.1 视频分享网站的概念 232
9.1.1 什么是视频分享网站 232
9.1.2 众说纷纭的web 2.0概念 232
9.1.3 视频博客与播客 232
9.2 编译开源视频转换程序FFmpeg 233
9.2.1 视频分享网站的核心技术 233
9.2.2 FFmpeg开源项目简介 234
9.2.3 下载并安装MSYS 234
9.2.4 安装MinGW 238
9.2.5 安装TortoiseSVN同步下载软件 239
9.2.6 使用TortoiseSVN获取FFmpeg项目源码 240
9.2.7 静态编译FFmpeg 241
9.2.8 初次接触FFmpeg程序 245
9.2.9 FFmpeg的参数介绍 246
9.2.10 开始使用FFmpeg转换视频 248
9.2.11 安装第三方库 250
9.2.12 编译mp3lame库 250
9.2.13 编译zlib库 251
9.2.14 编译xvid库 252
9.2.15 支持3gp格式 253
9.2.16 将上述第三方库编译进FFmpeg里 254
9.3 分享网站实现部分 255
9.3.1 新建sharevideo应用 255
9.3.2 修改发布视频模板broadcastVideo.html 256
9.3.3 实现转换视频和抓取缩略图处理程序TransformFlvServlet 258
9.3.4 编译与登记注册TransFormFlvServlet 262
9.3.5 修改首页index.jsp 263
9.3.6 修改视频显示页viewVideo.jsp 266
9.3.7 页面测试和功能演示 270
第10章 在线录制视频网站的搭建 273
10.1 在线录制视频网站的概念 274
10.1.1 什么是在线录制视频 274
10.1.2 在线录制视频的硬件环境 274
10.1.3 在线录制视频的软件环境 274
10.2 Flash媒体服务器(FMS)的安装与配置 275
10.2.1 FMS简介 275
10.2.2 安装FMS 276
10.2.3 FMS的目录结构 279
10.2.4 启动、停止与卸载FMS 280
10.2.5 通过控制台管理FMS 281
10.3 服务端应用程序的编写方法 284
10.3.1 RTMP协议与流媒体的关系 284
10.3.2 服务端应用的创建方法 285
10.4 设备与设备类 286
10.4.1 摄像头和麦克风设备 286
10.4.2 客户端类之摄像头类Camera 287
10.4.3 使用get方法启动摄像头 289
10.4.4 使用setMode方法设置视频的宽高及帧频 290
10.4.5 使用setQuality方法设置视频的品质 291
10.4.6 运用状态处理器处理用户对“保密性”对话框的选择 292
10.4.7 客户端类之麦克风类Microphone 293
10.4.8 运用get方法启动麦克风工作 294
10.4.9 运用setGain方法调节麦克风音量 296
10.4.10 对网络流对象类NetStream的补充 296
10.5 创建录制视频的Flash应用程序 298
10.5.1 编写服务端应用 298
10.5.2 创建录制视频的Flash应用 301
10.5.3 开始录制视频 304
10.6 实现在线录制的网站应用 306
10.6.1 实现目标 306
10.6.2 需求分析与技术难点 306
10.6.3 修改FMS的应用配置 307
10.6.4 创建videorecord网站应用 308
10.6.5 创建在线录制视频的客户端程序 309
10.6.6 创建视频播放网页openvideo.jsp 311
10.6.7 测试在线录制视频 313
10.6.8 作业:播放流媒体视频 316
10.6.9 Flash视频跨域访问问题与对策 316
第11章 基于流媒体的视频网站制作 319
11.1 通过ActionScript编程实现流式播放Flash视频 320
11.2 通过Dreamweaver软件插入Flash视频实现流式播放 322
11.3 通过FLVPlayback组件实现流式视频播放 325
11.4 MeidaPlayback组件支持流视频的问题 326
11.5 播放实时视频 327
11.6 各种部署方式对比 329
附录A 331
附录A.1 安装QuickTime Player软件 332
附录A.2 Flash Video Encoder常用功能的操作方法 335
附录A.3 FLVPlayback组件类参考 337
附录A.4 Media组件类参考 342
附录A.5 用于流视频的服务端脚本代码main.asc 344