注: 该学习指南介绍了 Flash 视频, 并为您提供了培养技能的工具。 Flash 产品文档是这些材料中很多内容的来源, 学习使用这些新功能时, 始终要咨询 Flash 帮助 (也可参见 Flash LiveDocs*)。
Flash 视频使您能够方便地将视频以几乎所有人都能查看的格式放入网页。 本指南介绍 Flash 视频, 包括关于如何创建和发布 Flash 视频的信息。
要完成本学习指南, 您需要安装以下软件:
注: 本学习指南的目标读者为 Flash CS3 Professional 用户。 如果您正在使用 Flash Professional 8, 请参见 Flash 视频学习指南的上一版*。
以下步骤说明如何创建 Flash 视频内容并在线发布这些内容。 创建和发布随需 (预录制) 视频的步骤不同于创建和发布实时视频。
有关实时视频的信息, 请参见Flash Media Server 开发人员中心*。
视频与 Internet 看似绝配。 视频是最密切反映我们日常可视经验的媒体, 而 Internet 则提供了充满有趣内容的无穷空间。 因此, 可以期望数以千计的网站将视频与数据、内容和交互式控件集成在一起, 以创建电视视频无法企及的丰富体验。
可是, Web 上的早期视频内容往往局限于计算机显示器上回放的矩形内容区, 通常在单独的弹出窗口中, 覆盖产生视频的网页。 视频图像往往既小又不美观, 总的体验不尽人意。
在过去, 一些技术挑战使设计人员无法使用视频内容发挥其潜力, 包括以下局限:
视频是一种有大量数据的格式, 即使很短的视频剪辑, 也数据播放数兆字节的数据。 带宽的增大已经大小减少了这种技术障碍。 越来越多的站点访问者符合通过 Web 接收视频内容的带宽要求, 但文件大小仍给很多访问者造成问题。
用于创建交互性的工具集、导航控件以及视频与其他富媒体内容的融合都未标准化。 此外, 多数视频回放客户端未在多数访问者的系统中预安装, 因此, 很多访问者必须先停下来下载插件或第三方应用程序, 然后才能观看视频。
多数用于 Web 的视频格式提供的富媒体功能仅限于矩形窗口中的视频回放。
所幸 Flash 视频 (以无缝的方式在上下文中提供视频内容, 用户可通过 Flash Player 观看) 克服了这些问题。
有关视频的更多信息, 请参见视频标准概述。
Flash 视频提供技术和创意优势, 使设计人员能创建大量的丰富体验, 它将视频与数据、图形、声音和动态交互式控件融合在一起。 使用 Flash 提供在线视频的优点包括:
自从 2002 年推出 Flash 视频以来, Flash Player 已经成为 Internet 视频客户端最广泛安装的播放器, 在 96% 以上的联网个人电脑上运行。 而且, Flash Player 还在各种各样的平台和操作系统中运行。 Flash Player 的普遍性保证了多数访问者无需下载其他插件即可观看 Flash 视频, 因而可在较低开发、测试和支持成本的基础上到达更多的用户。
Flash 视频与网站无缝集成, 可以将新“皮肤”添加到视频内容, 以定制您的标记并设计独特的视频回放控件。 您还可以设计视频的大小和长宽比, 视频将根据数据源动态更改。
Flash 视频提供临境交互式体验。 因为 Flash 将 Flash 简单地作为其他媒体类型处理, 您可以像在 SEF 文件中的任何其他对象一样在视频中使用层、脚本和控制视频内容。 Flash 是观看体验的一个组成部分, 与中断体验的单独弹出窗口正好相反。
以下图像显示了一个网页示例, 该网页中包含与文本和图形同步的 Flash 视频。 重叠的虚线蓝色轮廓表示显示 SWF 文件的区域的边界; 虚线红色轮廓表示将 Flash 视频 (FLV) 文件作为 SWF 内容一部分显示的区域的边界。 SWF 文件可以包含图形、文本和客户端逻辑 (例如, 用于创建视频控件)。 它可以引用外部 FLV 文件, 在 Flash Player 中播放。 FLV 文件主要包含音频和视频, 在 SWF 文件内部播放 (请参见图 1)。

图 1.Flash Video 在 SWF 文件内部播放
以下是用于创建有吸引力的 Flash 视频体验的工具、功能、服务器和服务的列表。
Flash CS3 Professional 是用于制作 Flash 视频用户界面的主要工具:
除 Flash CS3 Professional 外, 您很可能会发现使用某些其他工具能大大改进您的视频制作效率和提供方案:
可以站点上使用 Flash 视频之前, 需要决定如何提供视频; 两个主要的方案是将其作为下载内容提供或作为流视频提供。 (需要注意的一个重要特点是, 默认情况下, FLV 会累进式下载。 下载流视频需要使用 Flash Media Server。)
注: 第三个方案就是将视频嵌入 Flash 时间轴。 但是, 建议这一点仅用于无音轨的很短的影片剪辑。
有关决定使用什么提供方案的帮助, 请参见表 1。 在左栏中查找您的情况, 然后看建议使用什么提供方案。 如果勾选了两种方案, 则建议采用其中任何一种。
| 嵌入 | 连续 | 流 | |
|---|---|---|---|
| 剪辑长度短于 5 秒 | |||
| 剪辑长度为 5-30 秒 | |||
| 剪辑长度长于 30 秒 | |||
| 期望较少的访问量 | |||
| 期望中等到较多的访问量 | |||
| 立即开始 | |||
| 知识产权保护 | |||
| 实时视频流 | |||
| 根据访问者带宽提供的可变流速率 | |||
| 控制文件选择的 SMIL 用法 |
有关提供方案的更多信息, 请参见 Flash 视频的提供方案。
在选择提供方案后, 选择要使用的创作工具: Flash 或 Dreamweaver。
直接将视频导入 Dreamweaver 是将视频快速方便地放入站点的理想选择, 这时无需交互式元素, 只需要简单的视频控件 (播放、停止、暂停、快进、快退)。 Dreamweaver 解决方案提供了将 Flash 视频集成到基于 HTML 的页面布局的简单方法。
如果需要构建更具交互性的体验或需要大量定制视频的外观, 则必须使用 Flash CS3 中的视频功能。 您还需要 Flash CS3 Professional 才能对 Flash 视频 (FLV) 文件编码。
有关创作方案的更多信息, 请参见将 Flash 视频添加到网页。
有各种方案可用于在站点上提供 Adobe Flash 视频。 必须先选择一种提供方案, 才能将 Flash 视频添加到站点。
Flash CS3 Professional 可按以下任何方式提供随需视频:
对于实时视频, 必须使用流。 有关实时视频的更多信息, 请参见提供方案详细对比。
有关更多详细信息, 请参见 Chris Hock 的文章“Understanding the Difference Between Progressive Download and Streaming Video*”。
自从推出 Flash MX 和 Flash Player 6 以来, 多媒体开发人员已经能够通过导入视频并将其放入 Flash 创作工具中来将视频嵌入于 SWF 文件中。 在发布 SWF 文件时, 视频完全包含在该文件中。 这种方法只需要普通的 Web 服务器即可提供视频。
但是, 仅当您希望有 Flash Player 5 或更低版本的访问者能观看您的视频, 或必须有一个文件容纳视频和 Flash 内容, 或视频剪辑短于 5 秒时, 建议使用嵌入式视频。 在其他情况下, 建议不要使用嵌入式视频。
使用嵌入式视频有一些优势, 例如能够查看 Flash 时间轴上的个别视频帧并在 Flash 设计工具的帮助下创建重叠和交互。
但是, 嵌入式视频也有一些局限:
因此, 仅建议在上述情况下使用嵌入式视频方法; 即使是在这些情况下, 也应仅在要部署非常短的视频剪辑、视频的质量不是非常重要且视频内容不太可能经常更改时使用这种方法。
Flash Player 7 引入了称作累进式下载的新技术, 使开发人员能够使用 ActionScript 命令将外部 FLV 文件加入 SWF 文件并在运行时播放它们。 更具体地讲, 您可以使用 ActionScript 中的 netConnection 和 netStream 对象将 FLV 文件设置为回放, 以及为给定的视频文件控制“播放”、“暂停”、“查找” (时间代码) 和“关闭”行为以及缓冲时间和大小。
使用这种方法时, 视频内容 (FLV 文件) 保持在其他 Flash 内容和视频回放控件的外部。 由于这个原因, 相对容易添加或更改内容而无需重新发布 SWF 文件。
Flash Professional (从 Flash MX Professional 2004 开始) 也包含一些视频组件供您用于快速地将完整功能的 FLV 回放控件添加到您的 Flash 项目。 在 Flash CS3 Professional 中, FLVPlayback 提供累进式下载和流 FLV 文件两种支持。 这种组件容易“换肤”或定制, 因此, 您可以使您的视频播放器与您的站点设计匹配。 有关详细信息, 请参见 Dan Carr 的文章 Skinning the ActionScript 3.0 FLVPlayback component*。
Flash CS3 Professional 还包含一组行为可与媒体组件结合用于在视频序列和项目中幻灯片之间创建自动交互。 请注意, 这些行为在您的文件设置为使用 ActionScript 2.0 时可用于 Flash CS3。 (有关使用 ActionScript 2.0 和视频组件的详细信息, 请通过 Flash“帮助”面板参见参考指南。 有关在 Flash Professional 8 中或通过 Flash CS3 Professional 中的 ActionScript 2.0 文件使用视频行为的更多信息, 请参见 Dan Carr 的文章 Controlling Flash video with the FLVPlayback behaviors*。)
与使用嵌入式视频相比, 使用外部累进式 FLV 文件有以下优点:
注: 在直接从服务器载入时, FLV 总是会累进式下载。 要求 Flash Media Server 有流文件的选项。
最完整、最一致、最强大的提供方案是从运行 Flash Media Server (前身为 Flash Communication Server) 的服务器流视频和音频文件。 在流时, 每个客户端打开一个回到视频服务器的一致连接, 提供的视频与客户端交互之间有紧密的关系。 这种方法使您可以提供一些功能, 例如带宽检测 (以提供正确大小的视频) 、服务指标质量、详细跟踪和报告统计信息以及完整系列的交互功能和视频体验。
与累进式下载一样, 使用这种方法时, 视频内容 (FLV 文件) 保持在其他 Flash 内容和视频回放控件的外部。 因此, 相对容易添加内容而无需重新发布 SWF 文件。 此外, 由于客户端和服务之间在流时具有一致的连接, FLV 内容可以根据用户或应用程序的反馈进行更改。 例如, 如果您注意到服务质量下降, 可以切换到较低位速率的视频。
不想费钱费力购买和维护服务器硬件及 Flash Media Server 软件的用户可以使用 Flash Video Streaming Service 享受流 Flash 视频和 MP3 文件的所有优点。 这种服务是一种负载平衡的 Flash Media Server 冗余部署, 由 Adobe 授权的内容提供网络合作伙伴承载。 有关更多信息, 请访问 Adobe.com 上的 Flash Video Streaming Service。
Flash Media Server 系列中的新产品是 Adobe Flash Media Live Encoder*, 它能够与即插即播的相机和麦克风集成, 可用于在捕获音频和视频的同时将其流入 Flash Media Server。 有关流视频和广播实时视频的更多信息, 请参见 Flash Media Server 开发人员中心*。
表 2 提供了 Flash 视频提供方法的特点的对比。
| 嵌入式视频 | 累进式 FLV | 流 FLV | |
|---|---|---|---|
| 编码 | 默认情况下, Flash 视频导入向导通过用于 Flash Player 8 的 VP6 编解码器和用于 Flash Player 7 的 Sorenson Spark 编解码器对视频编码。 或者, FLV 文件 (在其他地方编码) 可以导入并放入 Flash 时间轴 (无需重新编码)。 | FLV 文件在从各种专业编码和编码应用程序导出时通过 FLV QuickTime 导出插件或 Flash Professional 8 中的 Flash 视频导入向导编码, 视频文件也可以使用单独的 Flash Video Encoder 编码。
注: 这些方案需要 Flash Professional 8 或更高版本。 |
与累进式 FLV 相同。 此外, 流中的带宽检测功能使您能够检测客户端连接并添加适当编码的视频。 您可以捕获客户端网络摄像机或数码相机 (DV) 提供的实时视频并有计划地控制实时编码变量。 |
| 文件大小 | SWF 文件包含视频和音频流以及 Flash 界面, 造成单个大文件。 SWF 文件可以相互载入, 使您能够将一个视频剪辑拆分成多个文件。 | SWF 可 FLV 文件可保持分离, 造成较小的 SWF 文件。 | 与累进式 FLV 相同。 |
| 时间轴访问 | 在嵌入 Flash 轴时, 视频显示在个别关键帧上, 可像舞台上的任何其他对象一样处理。 是根据视频的个别关键帧创建交互的理想选择。 | 视频仅在运行时回放。 在 Flash 舞台上, 个别关键帧不可见。 | 与累进式 FLV 相同。 |
| 发布 | 每次发布或测试 Flash 内容时, 都要重新发布整个视频。 视频文件的更改需要新将文件手动重新导入 Flash 时间轴。 | FLV 文件仅在运行时引用。 发布无需直接引用视频文件, 比嵌入式视频方法更快。 FLV 文件无需更改项目的 SWF 文件即可更新或修改。 | 与累进式 FLV 相同。 您可以从虚拟位置 (如 SAN 或 Flash 视频流服务 CDN) 拖出 FLV。 |
| 帧频 | 视频帧频和 SWF 帧频必须相同。 | FLV 视频文件的帧频可以与 SWF 文件不同, 使视频秘其他 Flash 内容之间可以有不同的时间。 | 与累进式 FLV 相同。 实时视频欣喜若狂对帧有可编程的控制。 |
| ActionScript 访问 | 视频回放和控制通过控制 SWF 内容在 Flash 时间轴上的回放实现。 Flash CS3 Professional 提供多种在使用 ActionScript 2.0 文件时控制视频和音频回放的行为。 | 您可以在 ActionScript 中通过多个外部 FLV 文件使用 netStream 对象载入、播放、暂停和查找。 | 与累进式 FLV 相同。 您还可以使用服务器端 ActionScript 提供其他功能, 例如流同步、服务器端播放列表、根据客户端连接速度调整的智能提供等。 |
| 组件 | 无视频特定组件。 | 您可以使用媒体组件 (Flash MX Professional 2004 或更高版本) 或 FLVPlayback 组件 (Flash Professional 8 或更高版本) 设置和显示外部 FLV 文件以及传输控件 (“播放”、“暂停”和“搜索”)。 | 您可以使用媒体组件 (Flash MX Professional 2004 或更高版本) 或 FLVPlayback 组件 (Flash Professional 8 或更高版本) 以及从 Flash Media Server 或 Flash Video Streaming Service 流出的视频。 此外, 还可以使用 Flash Media Server 交流组件来流实时和多路视频。 |
| Web 提供 | SWF 文件会累进式下载, 除非您将其嵌入影片剪辑。 在这种情况下, 必须将整个视频下载到客户端并载入内存, 才能回放。 | FLV 文件会累进式下载、缓存, 然后从本地磁盘播放。 整个视频剪辑无需与内存相符。 | FLV 文件从 Flash Media Server 流出, 在客户端机器上播放, 然后从内存以随播随丢的方式丢弃。 |
| 性能 | 音频与视频同步限于视频约 120 秒之后。 总的文件持续时间限于回放系统可用的 RAM。 | 相对嵌入式 SWF 视频的性能有所改进, 可实现更大更长的可靠音频同步。 提供最佳的图像质量, 这仅受回放系统可用硬盘空间的限制。 | 就 Web 提供而言产生最佳的性能, 在随需基础上向需要的任意多个客户以最优位速率提供。 图像质量以可实时提供的位速率为限。 |
| 用法 | 较长的视频剪辑 (短于 1 分钟) 较小 (少于 320 x 240), 帧频也较低 (12 帧/秒, fps)。 | 较长的视频剪辑较大 (720 x 480 或更大), 帧频也较高 (最大 30 fps)。 | 数量较大的视频、很长的视频剪辑和实时多路流 (例如网络摄像机聊天和实时事件广播)。 |
| 兼容性 | Flash Player 6 和更高版本 (On2 VP6 编解码器需要 Flash Player 8 或更高版本)。 | Flash Player 7 (对于 Sorenson Squeeze 编解码器), Flash Player 8 (对于 On2 VP6 编解码器)。 | Flash Player 6 和更高版本。 |
在将随需 (预录制) 视频添加到网页之前, 必须取得视频并对其编码, 这就需要将其转换成 Adobe Flash 视频 (FLV) 格式。
本节介绍如何对随需视频编码, 包括关于 Flash 视频编码的背景信息和关于如何在捕获视频时取得最佳结果的背景信息。
本节假设您已有除 FLV 以外格式的某个视频。 很多主要的视频编辑工具使您可以直接从数码摄像机捕获视频。 关于捕获视频的一些提示, 请参见捕获良好视频。
有关如何将现有视频转换 (编码) 为 FLV 格式的信息, 请参见下节中的Flash 视频 (FLV) 文件编码和创建。
要捕获并发布实时视频, 请使用 Adobe Flash Player 和 Macromedia Flash Media Server (前身为 Flash Communication Server)。 有关更多信息, 请参见Flash Media Server 开发人员中心*。
Flash 提供多个视频编码解决方案, 可用于将视频剪辑编码为 FLV 格式。
Flash 视频导入向导可用于在导入时将视频剪辑编码为 Flash 视频 (FLV) 格式。 但是, 视频导入向导有局限, 即一次只能对一个视频剪辑编码, 编码过程既费时又需要大量计算。
对于要使用大量基于视频的内容的用户, Flash CS3 Professional 提供了 Flash CS3 Video Encoder 和 QuickTime Exporter。
Flash CS3 Video Encoder 可用于批处理视频剪辑, 使您能够一次对多个剪辑编码而无需中断工作流。 除为视频和音频内容选择编码选项外, Flash CS3 Video Encoder 还可用于将提示点嵌入视频剪辑, 并使用裁剪和修整控件编辑视频。
有关更多信息, 请参见 Flash CS3 Video Encoder 应用程序随附的联机帮助。
注: Flash 视频导入向导和 Flash CS3 Video Encoder 都可用于将编码和提示点设置导出到 XML 文件, 供其他视频制作工作重用。
如果您的计算机中安装了 Adobe Flash CS3 Professional 和 Apple QuickTime 6.1.1, 则可以使用 FLV QuickTime Export 插件从支持的视频编辑应用程序导出 FLV 文件。 然后, 可以直接将这些 FLV 文件导入 Flash 以用于您的 Flash 文档。
以下视频编辑应用程序受 FLV Export 插件支持:
使用 FLV QuickTime Export 插件从 Flash CS3 Video Encoder 或视频编辑应用程序导出 FLV 文件, 可以显著理清在 Flash 文档中使用 FLV 文件的过程。 使用 FLV Export 插件, 您可以在导出时为视频和音频内容选择编码选项, 包括帧频、位速率、质量和其他选项。 可以直接将 FLV 文件导入 Flash 而无需在导入后重新对视频编码。
默认情况下, Flash CS3 Video Encoder 通过用于 Flash Player 8 的 On2 VP6 编解码器和用于 Flash Player 7 的 Sorenson Spark 编解码器导出编码的视频。 编解码器是一种压缩/解压算法, 用于控制在编码时如何压缩视频文件, 在播放时如何解压视频文件。 VP6 视频编解码器是创建使用视频的 Flash 内容时首选的视频编解码器。 VP6 在保持较小文件大小的同时提供最佳的视频质量组合。
如果您的 Flash 内容动态载入 Flash 视频 (使用累进式下载或 Flash Media Server 流入), 只要用户使用 Flash Player 8 或更高版本观看您的内容, 您就可以使用 VP6 视频而无需为 Flash Player 9 重新发布 SWF。 通过将 VP6 视频流入或下载到 Flash SWF 6 或 7 并使用 Flash Player 8 或更高版本观看内容, 您就无需重新创建用于 Flash Player 9 的 SWF 文件。
注意: 仅 Flash Player 8 或更高版本同时支持发布和回放 VP6 视频。
| 编解码器 | 内容 (SWF) 版本 (发布版本) | Flash Player 版本 (回放需要) |
|---|---|---|
Sorenson Spark |
6 | 6、7、8、9 |
| 7 | 7、8、9 | |
On2 VP6 |
6 | 8、9 |
| 7 | 8、9 | |
| 8 | 8、9 | |
| 9 | 9 |
除视频的物理属性外, 还有各种因素会影响编解码器的效率, 并最终影响用户的视频回放体验。 这些因素在编码过程中起着重要的作用: 来源质量和帧运动。
当您按下相机的录制按钮时, 就决定了视频的来源质量。 以下是获取良好源视频质量和优化最终压缩视频质量的一些基本原则。
使用三脚架减少相机运动。如果您的相机不稳定, 多数图像会晃动, 将使多数视频像素在帧之间有差异。 稳定的相机可以减少帧之间有差异的像素数量, 使您能以较高的压缩率提供更好的质量 (需要较低的数据速率)。
使用良好的光线技术。 如果光线不够, 置于三角架上的高端相机仍会产生低质量的图像。 低光或光增益滤镜会在图像上产生视频噪声。 这种噪声对于视频的每个帧各不相同, 使编解码器很难以良好的质量压缩文件。 您可能需要使用最大数据速率或更高的数据速率才能补偿视频噪声。
尽可能使用好相机。档次较低的相机 - 特别是基于消费者的以磁带记录模拟信号的相机 (VHS、Hi-8 等) - 产生很多视频模拟噪声。 影片模式下的数码相机质量也有限, 往往会产生高噪声视频剪辑。 即使相机放在三角架上, 并且光线非常好, 也会产生噪声。
尽可能以最高水平拍摄。高档相机、Digital Betacam 便携式摄像机和 35mm 胶卷相机在光线良好并使用三角架稳定的情况下产生清晰的图像。 这些情况下会产生最佳压缩率, 并使您在保持优秀质量的同时降低数据速率。 但是, 您可能不具备专业设备、三角架和良好的光线条件。 请记住: 视频源的质量越高, 来源中的噪声越小, 产生良好回放文件所需的数据速率越低。
只要可能, 总是以解压格式对文件编码。 如果将预压缩的数码视频格式转换成 FLV 格式, 上述编码器可能引入视频噪声。 第一个压缩程序已经对视频执行了编码算法, 降低了其质量、帧大小和帧频。 它还可能引入自己的数码加工痕迹或噪声。 这些附加噪声会影响 FLV 编码过程, 可能需要较高的数据速率才能回放高质量的文件。
帧运动是您在对公式编码时需要考虑的另一个因素。 它是帧间差异像素的百分比。 这种差异可能产生于人或物体的运动、相机影响或后处理影响, 例如:
视频剪辑中的运动越大, 编码器需要压缩的信息越多。 如果剪辑相对静止 (例如脸部特写), 帧间像素不会有太大的差异。 视频压缩器使用丢弃帧然后对完全未压缩的系列帧编码的方法。 未压缩的帧称作关键帧, 用于计算和在回放时“重构建”丢失的帧。
当您对随需视频编码时, 必须平衡各种因素, 包括描述的运动量、文件大小、目标带宽、帧频、关键帧间隔和视频的像素尺寸。
您可以在对 Flash 视频编码时指定其中某些因素的值。 这些设置中有一些已在本节初步介绍; 有关其他某些设置的技术细节, 请参见视频标准概述。
有关用于各种设置的特定值的详细信息, 请参见 Kevin Towes 的文章, Encoding Best Practices for Prerecorded Flash Video*。 本文提供了建议设置表*。
以下是为在 Internet 上提供而将视频压缩为 Flash 视频时的一些常规原则:
位速率指每秒传输的数据量。 当您对 Flash 视频编码时, 请指定编码的位速率。 选择适合受众的位速率; 例如, 如果多数访问者很可能使用 56kbps 调制解调器, 请勿提供以位速率 2Mbps 编码的视频。
Flash 视频编码为关键帧序列 (定期取自视频的全帧未压缩图像), 每个关键帧后都有关于如何更改关键帧像素的信息, 用于生成该关键帧与下一个关键帧之间的 delta 帧。 在回放时, 解码器根据关键帧重新创建 delta 帧。
关键帧间隔为关键帧之间的 delta 帧数量。 关键帧之间的间隔越大, 解码器越难以重新创建丢失的帧。 而且, 如果关键帧间隔太大, 可能用足够大的数据速率压缩和传输数据位。 因此, 关键帧间隔较大的高运动视频剪辑会产生低质量的观感。
如果表达方法提供查找或擦洗功能, 使用户能够在回放时推进流, 则在使用 Flash 视频时, 关键帧特别重要。
注: 要准确查找和擦洗视频, 就必须使用 Flash Media Server 或 Flash Video Streaming Service 流视频。 要查找累进式视频中的特定位置, 就必须在编码时为这些位置 (时间代码) 嵌入导航提示点。 嵌入导航提示点会强制编码器将整个关键帧放入特定时间代码, 这是准确查找的必要因素。
有两种常用的方法将 Flash 视频添加到网页: 使用 Dreamweaver 和使用 Flash。
在能将视频添加到页面之前, 必须决定使用哪种提供机制: 是累进式下载还是流。 有关更多信息, 请参见 Flash 视频的提供方案。
可以使用 Dreamweaver 快速将视频添加到网页而无需使用 Flash。 如需更高级的功能 - 例如添加交互性、从较大范围的自定义界面中选择、使用其他 Flash 动画将视频分层、将视频与文本和图形同步 - 请使用 Flash。
当您将 Flash 视频添加到页面时, 还应将行为添加到页面以检测 Flash Player。 特别地, 应检查尝试观看页面的访问者是否有可观看您要提供的内容的 Flash Player。 有关检测插件的详细信息, 请参见 Robert Hoekman 的文章, Flash Player 检测的最佳实践。
以下步骤介绍如何将 Flash 视频添加到 Dreamweaver 中的网页。 在开始之前, 必须有一个经过编码的 Flash 视频 (FLV) 文件。
可以选择以下选项: 插入检测查看 Flash 视频所需 Flash Player 版本的代码的选项, 以及提示用户在没有正确版本时下载最新 Flash Player 版本的选项。
如需关于在 Dreamweaver 中创建项目 (包括 Flash 视频) 的教程, 请参见 Jen deHaan 的文章“利用 "Dreamweaver MX 2004 用 Flash 视频扩展" 展现视频”。
可以使用 Flash 创作环境为在浏览器中播放视频构建富界面。
以下步骤描述如何使用组件创作 Flash 视频。 您可以导入已部署到 Web 服务器的视频文件, 也可以选择本地存储在您计算机中的视频文件, 在将此视频文件导入 FLA 文件后上传到服务器中。 有关使用 ActionScript 手动对视频控件编码的信息, 请转到 Flash LiveDocs 部分, “动态回放外部 FLV 文件*”。 (选择“使用 Flash”>“使用视频”>“使用 ActionScript 播放外部 Flash 视频”>“动态回放 FLV 文件”。)
为您的视频剪辑选择皮肤。 您可以选择:
将以下资源上传到承载您的视频的 Web 服务器:
FLV 编码的视频剪辑 (与选择的扩展名为 .flv 的源视频剪辑位于同一文件夹)。
注: 如果视频剪辑为 FLV 格式, Flash 会使用相对路径指向 FLV 文件 (相对于 SWF), 使您能够本地使用与服务器上相同的目录结构。
视频皮肤 SWF (如果您选择使用皮肤)。
如果您选择使用预定义的皮肤, Flash 会将皮肤 SWF 文件复制到 FLA 文件所在的文件夹。
SWF 文件包含视频组件。
您必须将组件的 URL 字段修改成您要使用“组件检查器”面板上传视频的 Web 服务器的 URL 字段。 有关更多信息, 请参见 Flash LiveDocs 部分, “指定 contentPath 参数*”。 (选择“使用 Flash”>“使用视频”>“使用 ActionScript 播放外部 Flash 视频”>“指定 contentPath 参数”。)
注: 上述 contentPath 在使用 FLVPlayback 组件的 ActionScript 2.0 版本时可用。 有关 ActionScript 3.0 版本中源参数的信息, 请参见 Flash LiveDocs 部分, “指定源参数*”。 (选择“使用 ActionScript 3.0 组件”>“使用 FLVPlayback 组件”>“FLVPlayback 组件参数”>“定制 FLVPlayback 组件”>“指定源参数”。)
您可以导入已部署到 Flash Media Server (前身为 Flash Communication Server) 或 FVSS 的视频文件, 也可以选择本地存储在您计算机中的视频文件, 在将此视频文件导入 FLA 文件后上传到服务器中。
(可选) 如果您要部署的视频不是 FLV 格式, 可以使用“编码”面板选择编码配置文件, 然后裁剪、修整或拆分视频剪辑。
注: 此步骤仅适用于从本地计算机上传视频的情况。 已部署到服务器的视频剪辑必须已经编码为 FLV 格式。
如果您要部署的视频不是 FLV 格式, 则导入视频向导会显示“编码”面板。 有关使用导入视频向导对视频编码的信息, 请参见 Flash LiveDocs 中的“选择视频编码配置文件*”。 (选择“使用 Flash”>“使用视频”>“视频编码”>“选择视频编码配置文件”。)
视频导入向导会将您的源视频剪辑编码为 FLV 格式 (如果还不是 FLV 格式) 并在舞台上创建可用于本地测试视频回放的视频组件。
FLV 编码的视频剪辑 (与选择的扩展名为 .flv 的源视频剪辑位于同一文件夹)。
注: 如果您要使用的视频已经部署到承载您的视频的 Flash Media Server (或 Flash Communication Server) 或 FVSS, 可以跳过此步骤。
现在, 您已经了解关于制作 Flash 视频并在网页中显示它的知识。 下一个合乎逻辑的步骤就是利用 Flash 的优势和将视频与显示在影片中的内容及标题同步。 Flash CS3 Professional 向您提供了一系列功能, 可用于将文本、动画、图形、标题与视频的时点同步。
本节概要介绍内容同步和标题中涉及到的关键概念, 包括使用视频提示点的基本知识和用于视频标题的新 ActionScript 3.0 组件功能。
有关视频同步的详细文章和示例文件, 请参见 Flash 视频模板*页。
提示点指您放入 FLV 文件指定何时同步内容或活动的标记。 了解提示点的基本知识将使您能够协调视频与其他类型 Flash 内容之间的各种可能组合。
有三种类型的提示点: 导向、事件和 ActionScript。 导航和事件提示点在编码过程中直接嵌入于 FLV 文件中。 当需要导航到视频中的确切位置时, 导航提示点是 Flash 用户界面的理想选择。 编码器强制整个关键帧位于添加提示点处, 以便准确导航到该点。 事件提示点也在编码过程中嵌入, 可用于将视频中的时间与定时文本标题和其他事件同步。 ActionScript 提示点不嵌入于 FLV 文件中 - 它们在运行时通过 ActionScript 添加。
注: 使用直接嵌入于视频的导航提示点是在累进式提供的视频中创建准确时间查找的唯一方法。 在创建按钮允许观看者跳到视频中特定时点的界面时, 建议您直接在编码时将提示点嵌入于视频中。
导航和事件提示点可使用 Flash 视频导入向导或 Flash CS3 Video Encoder 在编码时添加。 ActionScript 提示点可使用“属性”检查器的 FLVPlayback 组件的 cuePoint 参数在创作时添加或使用 ActionScript 在运行时添加。
注: 提示点可在编码时使用 Flash 视频导入向导或 Flash CS3 Video Encoder 导出到 XML 文件中。 这时, 保存的 XML 文件可以在使用其他视频时导入, 以保持一致性并节省制作时间。
当您创建自己的提示点后, 必须使用一些 Flash ActionScript 代码响应它们。 提示点以 ActionScript 事件的形式可用于 Flash 影片。 ActionScript 是定时分支, 可用于发生事件时响应事件。 要响应提示点事件, 必须应用标准组件事件侦听代码方案。 请注意, 使用 FLVPlayback 组件的 ActionScript 2.0 版本和 ActionScript 3.0 版本时, 此过程会略有不同。
有关 ActionScript 2.0 视频事件和提示点参数的文档, 请参见 Flash LiveDocs 部分, “侦听提示点事件*”。 (请参见“ActionScript 2.0 组件语言参考”>“FLVPlayback 组件”>“使用提示点”>“侦听提示点事件”。)
有关 ActionScript 3.0 视频事件和提示点参数的文档, 请参见 Flash LiveDocs 部分, “侦听提示点事件*”。 (请参见“使用 ActionScript 3.0 组件”>“使用FLVPlayback 组件”>“使用FLVPlayback 组件”>“使用提示点”>“侦听提示点事件”。)
当您在 ActionScript 中捕获提示点时, 事件句柄函数将被传递一个事件对象, 该对象中包含有关提示点的信息。 当您使用此信息决定如何响应事件时, 这一点很重要。
以下属性包含在提示点事件对象的 info 属性中:
当您编写响应提示点事件通知的代码并有权访问提示点参数后, 即表示要创作正确的时间, 需要做一些事情。 将 Flash 内容同步的两种最常见方法是导航到包含与提示点名称匹配的帧标签的帧 (在基于时间轴的文件中) 或导航到与提示点名称同名的幻灯片 (在基于屏幕的文件中)。 关键在于将提供点名称作为导航到 Flash 中位置的一种方式, 此位置包含应在视频中相应时间显示的内容。
以下列表描述创建 Flash 文件的常用步骤, 这种 Flash 文件包含沿 Flash 时间轴与文本或图形同步的视频。
FLVPlayback 组件的 ActionScript 3.0 版本包含新的 FLVPlaybackCaptioning 组件。 FLVPlaybackCaptioning 组件提供纳入标题功能的简单方法, 为可访问性或标准文本标题目的而给内容加标题。
ActionScript 3.0 提供了使用标题文本的两种方法:
上述两种方法都在回放时将标题与视频定时相协调。 这种情况下, 如果与 FLVPlayback 组件置于同一时间轴, 同步工作在 FLVPlaybackCaptioning 组件自动侦听提示点事件和时间时完成。 对于创建标题, 需要编写 ActionScript 代码 - 组件不适用于您。
FLVPlaybackCaptioning 组件包含以下功能:
有关使用 ActionScript 3.0 FLVPlayback 加标题功能的文档, 请参见 Flash LiveDocs 部分, “使用 FLVPlaybackCaptioning 组件*”。 (请参见“使用 ActionScript 3.0 组件”>“使用 FLVPlaybackCaptioning 组件”。)
您在电视上见到的视频符合 20 世纪 50 年代首次推出彩色电视时建立的标准。 现在使用的主要格式是 NTSC (美国电视制式委员会) 和 PAL (相位交替行)。 一般而言, NTSC 是美洲和日本使用的标准, PAL 是欧洲、澳大利亚、中东和亚洲使用的标准。
这两种视频标准都不是计算机显示器的最佳表达标准; 当您尝试为 Web 提供优化视频时, 两种标准都会遇到困难 (在表 3 中总结) :
表 3.视频标准差异
| 图像大小 | 帧频 | 长宽比 | 显示 | |
|---|---|---|---|---|
| NTSC | 720 x 480 | 29.97 | D1 | 交错 |
| PAL | 720 x 576 | 25 | D1 | 交错 |
| 计算机 | 不同 (大很多) |
– | 正方形 | 累进式 |
传统的电视屏幕由水平线构成, 而计算机显示器由一系列水平和垂直像素构成。 对于 NTSC, 电视的标准行分辨率为 525 行; 对于 PAL, 则为 576 行。 多数调制解调器计算机显示器都有高很多的垂直分辨率 (以像素为单位), 例如 768 或 1024, 这需要回放时放大才能填充显示器。
对于 NTSC 视频图像, SMPTE 259M 专业标准规定, 525 行表示 720 x 486, 即 720 水平像素 x 486 垂直像素。 默认视频大小就是众所周知的 D1。 使用多数调制解调器捕获卡从专业 BetaSP 或 Digital Betacam 源捕获总尺码产生 D1 大小的帧。 但是, 从 DV (数码视频) 源捕获总尺码产生 720 x 480 帧。 D1 规格与 DV 规格之间的差异仅为 6 垂直像素。 很多压缩算法 (包括 DV 压缩) 对于为 16 倍数的像素尺寸都有极佳的效果。 通过从 D1 分辨率中去掉 6 像素, DV 格式就实现了 16 倍数的本地分辨率。
对于 PAL 视频图像, 帧总是 720 x 576 像素而不论视频源如何。 由于 PAL 的垂直分辨率 576 是 16 的倍数, 无需为 DV 压缩进行任何更改。
视频基本上是屏幕上快速连续闪动图像序列, 给人以运动印象。 每秒钟显示的帧数量就是所谓的帧频, 影片回放的速度以每秒帧数 (fps) 度量。 帧频越高, 每秒用于显示图像序列的帧越多, 形成的运动越平滑。 但代价是, 帧频越高, 显示视频所需要的数据量越大, 因而需要更多的带宽。
NTSC 视频运行速度通常称为 30 fps, PAL 则为 25 fps。 从技术角度更准确地说, NTSC 视频运行速度为 29.97 fps。 出现小数帧频的原因可追溯到从黑白电视到彩色电视信号的过渡, 当时选择 29.97 fps 是为了保证与现在电视的向后兼容。 仍然是 30 帧, 但比实际时间慢 0.1%, 就造成了实际帧频为 29.97 fps。
当使用 Flash 视频等压缩视频时, 帧频可能会以难以预测的方式影响视频的质量, 具体取决于如何对视频编码及其具体内容。 较低的帧频表面上提供较少的内容来编码, 从理论上讲可以提高质量或降低大小。 但同时更可能使帧之间的像素有显著的差异, 这就需要对更多的数据编码。 如果您降低帧频并使数据速率保持不变, 视频可能会显得不连贯, 运动也不如期望的那样流畅。
只要降低帧频, 使用原始帧频的约数速率总是一个不错的主意。 如果源帧频为 24 fps, 则将帧频降到 12 fps、8 fps、6 fps、4 fps、3 fps 或 2 fps。 如果源帧频为 30 fps, 则多数情况下可以将帧频调整到到 30 fps、15 fps、10 fps、6 fps, 依此类推。 如果您的视频长于 10 分钟, 但不坚持 29.97 fps 速率或使用精确约数来降低帧频 (例如将帧频降到 29.97 的一半 14.98), 音频就可能显示不同步。
D1/DV NTSC 和 PAL 规格指定了非正方形像素 (往往称作 D1 长宽比), 而计算显示器像素则为正方形。 D1 像素在垂直方向上较短。 为此, 当您在计算机显示器上观看 D1 视频时, 图像看似垂直压缩了 - 使演员看起来更矮了。 当此图像显示在广播显示器上时, 像素就会变宽, 显得很正常 (请参见图 2)。

图 2.显示在录像显示器 (左侧) 和计算机显示器 (右侧) 的图像
为此, 要用于计算机显示器显示的录像图像必须通过将图像进行 4:3 长宽比缩放来纠正像素长宽比。 对于 NTSC, 完整的正方形像素分辨率为 720 x 540 (垂直补偿), 对于 PAL 则为 768 x 572 (水平补偿)。 Internet 中常用的最终视频显示分辨率包括 640 x 480、512 x 384、320 x 240 和 160 x 120。
多数视频编辑应用程序会通过在计算机显示器上显示时实时缩放视频图像来补偿像素长度比差异。 这样做是因为最后图像会返回电视显示器用于最终显示, 而在视频文件中缩放实际像素会不必要地因缩放操作引入少量变形。 但是, 对于 Web 显示, 这种实时补偿并非有效的方法, 因为视频序列的最终版本会显示在正方形像素显示器上, 因此应进行硬渲染以补偿差异。
视频图像由两个交错的半帧构成, 这两个半帧一起构成一个帧。 在首次发明电视时就引入了这种方法, 原因在于阻碍全帧“累进式”显示在显示器上 (从上至下) 而不明显变形的技术限制; 显示图像时, 就像是在屏幕上划入/划出一样。 通过将图像拆分为两个半帧 (两半) 并先后显示, 就克服了这个问题。 这种传统方法在视频和计算机的数字时代造成了巨大的障碍, 为了使用累进式显示 (图像从上至下显示) 的更新的高分辨率电视视频标准, 已经摒弃了这种方法。 一个行组称作一个半帧。 两个半帧指上半帧和下半帧, 或半帧 1 和半帧 2, 或奇半帧和偶半帧, 或顶半帧和底半帧; 遗憾的是没有标准的命名法 - 所有这些术语都指这两个交错的视频半帧。 在显示电视图像时, 半帧以快速连续重叠的方式显示 (请参见图 3)。

图 3. 交错的视频由两个半帧构成
在真实录像片中, 两个交错的半帧往往彼此非常相似, 在计算机显示器上观看视频帧时不会显示明显的加工痕迹。 但是, 如果使用的录像片包含快速变动的高运动材料 (包括相机运动或帧的对象运动), 当半帧显示在计算机显示器上时可能会显示明显的半帧加工痕迹, 使视频图像模糊不清。 这是由于两个时间的内容组合到了一个帧中。
因此, 要在计算机显示器上显示清晰的视频, 视频帧必须通过消除其中一个半帧来去除交错。 丢弃每个帧的一半信息, 剩余的信息增加一倍或内插。 对于 NTSC, 这会以一次 20 个明显点产生 30 个帧, 这就提供了更清晰的视频图像 (请参见图 4)。

图 4.视频剧照的交错 (左侧) 和去除交错 (右侧) 的帧
数字电视的现代视频标准已经避开了交错, 支持累进式扫描显示方法。 累进式扫描摄像机通常能够从累进式扫描切换回交错视频, 这些相机中多数有各种帧频在使用时可有交错也可没有交错。 典型的帧频描述为 60p (60 fps 累进式) 、30i (30 fps 交错) 、30p (30 fps 累进式) 、和 24p (24 fps 交错)。 当您使用累进式录像片时, 无需去除视频剪辑交错即可将其部署到 Web。