有各种方案可用于在站点上提供 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 和更高版本。 |