辅助功能*

Flash 文章

 

Flash 视频学习指南


目录

Flash 视频的提供方案

有各种方案可用于在站点上提供 Adobe Flash 视频。 必须先选择一种提供方案, 才能将 Flash 视频添加到站点

提供方案小结

Flash CS3 Professional 可按以下任何方式提供随需视频:

对于实时视频, 必须使用流。 有关实时视频的更多信息, 请参见提供方案详细对比

有关更多详细信息, 请参见 Chris Hock 的文章“Understanding the Difference Between Progressive Download and Streaming Video*”。

在 SWF 文件中嵌入视频

自从推出 Flash MX 和 Flash Player 6 以来, 多媒体开发人员已经能够通过导入视频并将其放入 Flash 创作工具中来将视频嵌入于 SWF 文件中。 在发布 SWF 文件时, 视频完全包含在该文件中。 这种方法只需要普通的 Web 服务器即可提供视频。

但是, 仅当您希望有 Flash Player 5 或更低版本的访问者能观看您的视频, 或必须有一个文件容纳视频和 Flash 内容, 或视频剪辑短于 5 秒时, 建议使用嵌入式视频。 在其他情况下, 建议不要使用嵌入式视频。

使用嵌入式视频有一些优势, 例如能够查看 Flash 时间轴上的个别视频帧并在 Flash 设计工具的帮助下创建重叠和交互。

但是, 嵌入式视频也有一些局限:

  • 当您的视频内容更改时, 必须重新打开 Flash, 重新嵌入视频, 重新检查甚至可能修改导航和/或相关内容, 然后重新发布 SWF 文件, 才能进行更改。
  • 在创作时, 您每次要观看预览或测试部分或全部 Flash 内容时, 都必须发布整个视频文件。 这可以使创作过程的时间显著增加。
  • 对于 Web 提供, 整个视频文件必须从 Web 服务器下载, 视频回放才能开始。
  • 在运行时, 整个视频文件必须符合回放系统的本地内存。
  • 在视频回放持续约 120 秒后, 用户可能遇到音频同步问题。
  • 文件长度最大允许 16,000 帧。
  • 视频的帧频必须与 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 文件有以下优点:

  • 在创作期间, 只需发布用于预览或测试部分或全部 Flash 内容的 SWF 界面。 这会产生更快的预览时间和更短的重复试验周期。
  • 如果使用 ActionScript 2.0 文件, 则视频在第一段下载并缓存到本地磁盘后立即开始播放。
  • 如果使用 ActionScript 3.0 文件, 则视频仅在其足够多的内容下载后才能开始播放, 需要下载的内容能够从头到尾播放 FLV 文件。 可以通过 ActionScript 改变这种行为。
  • 在运行时, 视频文件从本地磁盘载入 SWF 文件, 文件大小和持续时间无限制。 不存在音频同步问题或内存限制。
  • 视频文件的帧频可以不同于 SWF 文件的帧频, 使项目的设置有更多的灵活性。

注: 在直接从服务器载入时, 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 视频提供方法的特点的对比。

表 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 和更高版本。