22 October 2012
页面工具 |
本文假设您拥有 Adobe Media Server 的基本使用知识,知道如何运行基于 Flash 的 SWF 客户端。
全部
得益于 Adobe Flash Player 的广泛应用范围和丰富功能,它是一个在越来越庞大的屏幕集合上交付视频和媒体的优秀平台。 因为 Flash 视频跨不同浏览器提供了一致的编解码器支持,所以只要实现适当,它就能真正变成跨平台和跨屏幕运行。 Adobe 倾注了大量心血在平板电脑、智能电话和智能电视等设备上交付视频基本功能,还可确保跨新兴的平台和屏幕提供一致的体验。
在 Flash Platform 上构建应用程序允许您将内容交付给广泛的设备。 这意味着用户无论身在何处,都能使用相同的内容,享受该内容的威力和体验。

对用户而言,这意味着他们能够在想要的时间访问他们想要的内容(包括视频)。 对于内容生产商和提供内容的人,这意味着他们需要留意使用该视频的设备。 它是一个高功耗的桌面计算机,还是处理能力有限和屏幕较小的设备? 现在,构建应用程序和创建将供人使用的内容时,这些问题至关重要。
答案可在一些现有的和新的 Flash Platform 功能中找到:
此处仅给出了 Flash Platform 为了增强您在所选屏幕上的视频体验,为开发人员和用户提供的部分功能。 本文介绍一些主要的视频交付概念,重点介绍了视频创建以及跨多个屏幕交付视频内容所需的知识。
媒体播放器是任何提供视频的应用程序中的一个基本组件。 无论您正在构建一个完全自定义的媒体播放器,还是从一个 Open Source Media Framework (OSMF) 这样的框架着手,您都需要熟悉一些词汇和概念,这样才能全面理解如何在各种屏幕上交付视频。 可能影响您如何构建媒体播放器的其他因素还包括:
Flash Platform 和来自 Adobe 的集成视频解决方案为这些问题提供了出色的答案。
可构建自定义媒体播放器来满足或实现您可想到的任何需求或特性。 当然,从头构建媒体播放器时,您需要做出一些取舍。 许多现有的播放器和框架中包含大量特性,这些特性很难从头重新构建。 在任何流式传输的 Flash 或基于 AIR 的媒体播放器的核心是以下类:
尽管构建非常基本的媒体播放器可能很简单且很轻松,但常常需要实现许多其他增强功能。 复杂连接管理和重连排序、实况和视频点播之间的细微区别,以及 Dynamic HTTP Streaming 等特性的复杂集成需求等因素,常常让从头进行自定义媒体播放器开发成为一项艰巨的任务。
以下是自定义播放器的优缺点:
Open Source Media Framework 提供了一个受支持且经过深思熟虑的框架,用于构建可针对几乎任何媒体交付需求而定制的强大媒体播放器。 通过将复杂的媒体回放功能抽象化,OSMF 允许开发人员将精力集中在构建更好的用户体验上,而强大的 API 会负责繁重的幕后工作。 OSMF 还提供了一个令人惊叹的扩展性框架,该框架基于一种插件体系结构,支持您构建自己的插件或使用其他社区成员的插件。
一个框架的健壮性常常是一个缺点,尤其是需要考虑媒体加载时间和带宽使用时,就像移动设备一样。
OSMF 的组件化性质非常聪明地解决了这个问题。 开发人员可随意选择将哪些类包含在应用程序中,因为不需要将整个框架编译为 .swf。 能够只包含应用程序所需的类,这让满足播放器大小需求成为一项很容易管理的任务。 例如,尽管 OSMF 具有强大的 API,但可构建一个只有 9KB 大小的基本播放器。
(有关更多信息,请参阅: http://osmf.org/dev/osmf/specpdfs/OSMFPlayerSizeSummary.pdf )
以下是 OSMF 播放器的一些优缺点:
对于想要 OSMF 的所有好处,但没有资源来投入到从头构建播放器的开发人员而言, FlashMediaPlayback 和 StrobeMediaPlayback 是不错的选项。 Flash Media Playback 是 Adobe 拥有的一个功能全面,生产级的 OSMF 播放器,发布者可使用一个在线工具配置该播放器并将它嵌入到其网站中。 Strobe Media Playback 是同一个播放器的开源版本,开发人员既可按原样使用它,也可访问源代码并自定义播放器来满足自己的需求。
将视频提供给广泛的受众可能极具挑战性。 内容提供商需考虑要将内容部署到不断扩充的设备列表,以及常常必须通过受限的网络进行导航,如许多企业环境中的网络。
Flash Platform 提供了丰富的交付和功能选项来跨所有屏幕向任何设备提供专业级的视频。 一种可能对多屏幕交付至关重要的高级特性是多比特率切换 – 也称为动态或自适应流式传输。 多比特率切换可自动在多个不同编码比特率的流之间切换,以适应性能或带宽限制。 移动设备无疑能从该功能中获益,因为它们的带宽变化会很显著且很频繁。 但同样毋庸置疑的是,任何屏幕都将从多比特率内容交付中获益,并且一般而言都强烈建议您使用此特性,这将在编码一节中进一步探讨。
以下是可用的协议:
将您的视频高效地交付给最多的人,这只是等式的一部分。通常我们需要保护内容。Flash Platform 同样提供了允许您在多个级别保护视频的解决方案:
有关各种安全性选项和配置的更多信息,请参阅文章: http://www.adobe.com/devnet/flashmediaserver/security.html
现在您已更好地理解了媒体播放器和 Flash Platform 在交付内容方面的优势,我们可以探讨如何在各种屏幕上交付内容的细节了。 我们将考虑以下总体想法:
对于每种想法,我们将解决 3 个我们视为“屏幕”的目标端点:
在向任何屏幕交付媒体时,编码音频和视频内容可能成为最复杂且最重要的步骤之一。 屏幕越多,复杂性越高,因为每种屏幕的需求可能不同。 一个在电话上效果不错的视频可能在高清电视上效果很差,所以要计划创建特定于屏幕的内容。 这将产生更多文件,但为最终用户提供了更好的优化和体验。 本文不会介绍每种屏幕的细节,但提供了下面的链接供参考:
将视频部署到多种屏幕上时,特别是将高清视频部署到移动设备、机顶盒和电视,必须认真考虑最终用户的处理能力。 与单独依靠 CPU 来处理负载相比,通过利用设备的 GPU(图形处理单元),内容提供商可向范围更广的设备提供更高质量的视频体验。
在面向桌面、移动设备和电视的 Flash Player 10.2 版本中,Adobe 添加了一些真正令人惊叹的功能。 该功能称为 StageVideo,指的是将传统上 CPU 密集型的解码和渲染操作卸载到计算机或设备上的视频硬件上。 对于桌面,这可实现以 20% 的 CPU 使用率(或更少,具体取决于硬件和支持)回放全高清 1920p 视频的能力。 一般而言,任何支持 H.264 解码/渲染应用程序的硬件都会看到 CPU 的使用率降低,并且可能看到像素保真度提高。 除了需要 Flash Player 10.2,StageVideo 一般仅支持全屏模式,除非在 HTML Object/Embed 代码中将 wmode 改为“direct”。 不过随着一些下一代浏览器的发布,出现了一些例外情况,但目前的建议是将 wmode 改为“direct”。 编译应用程序时,还需要使用一个新编译器参数生成一个具有适当支持的 SWF。 该编译器参数是 -swf-version,必须具有值 11 (-swf-version=11)。 有关如何设置此值的更多信息,请查阅 Andrian Cucu 的文章“OSMF 和 Strobe Media Playback 中的舞台视频支持入门”。
使用 StageVideo 实现硬件加速时,一定要知道视频实际上会在 flash.media.StageVideo 中的 Flash 应用程序显示列表下方渲染,而不是在传统的 Video 对象下方渲染。 所以如果拥有任何背景图形,必须隐藏或从显示列表中删除它们,因为它们将在 StageVideo 之上。
提示: 如果您听到了来自视频的声音,但无法看到视频,这可能是因为某个东西通过正在使用的 StageVideo 覆盖了视频。
对于移动设备和电视,由于通常具备有限的 CPU 和强大的视频解码器,所以硬件加速对实现最优的回放效果至关重要。 目前支持 StageVideo 的移动设备平台只有 Android 3.0+ 和 BlackBerry Playbook。 但是 AIR for TV 目前也支持 StageVideo。 StageVideo 的桌面实现可能支持多个同时运行的 StageVideo 实例,但移动设备和电视一般一次仅支持一个 StageVideo 实例。
有关 StageVideo 的更多信息,请参阅 Thibault Imbert 的文章: “舞台视频入门”- http://www.adobe.com/cn/devnet/flashplayer/articles/stage_video.html
以下内容特定于 StageVideo 硬件加速的视频回放和基于 OSMF 的播放器的使用。 以下是一些需注意的要点:
为多种屏幕开发应用程序时,尤其是视频交付应用程序,您需要针对希望支持的每种屏幕考虑以下因素:
快速、强大且能够显示质量非常高的视频……有时。 不能假设观看者正在他们能自动获得且具有更快的处理器、一个 GPU 和最高 Flash Player 版本的桌面机器上观看您的视频。 聪明的应用程序开发人员会计划好应对各种情形。
直到最近,这也是产生应用程序需求的地方。 此平台的限制比其他平台要少。 这意味着创造力和特性在很大程度上是不受限制的。 您需要考虑将视频交付到哪些设备,这样可以调节内容和应用程序以获得最佳体验。 一些需要考虑的事项包括:
您还需要考虑多个 Flash Player 版本。 这意味着根据所用的 Flash Player 版本,会支持不同的功能和能力。 可能未来的某个 Flash Player 运行时版本会改变应用程序的执行方式。 要避免出现运行时错误,以及提供最佳的跨设备用户体验,一定要考虑此场景。 通过修改应用程序中可用的特性,以及在进行更改时通知用户,开发人员可确保最终用户拥有更加流畅的体验。
移动设备是数量正在激增的一种平台,Adobe 花了很大心血来提供支持跨广泛设备进行移动开发的工具集。 这引出了我们针对移动平台的第一个考虑因素。 在创建内容和构建应用程序时需要考虑大量的设备。 鉴于市面上目前存在的电话和平板电脑数量,考虑这些不同的屏幕并能够相应地进行调整,这在创建视频和应用程序时极为重要。
您遇到的每个设备可能通过设备硬件为应用程序带来不同的限制。 这意味着可在一种设备上使用的一些应用程序特性不能在另一种设备上使用。 例如,iPad 没有前置摄像头,而 iPad 2 则有。 在发布新硬件时会添加新功能,所以您需要确定哪些特性是您的应用程序的核心,及其功能支持这些核心特性的目标设备。 然后可将额外的可选特性添加到应用程序中,并在设备支持这些额外特性所需的功能时启用这些特性。
在各种屏幕上,需要考虑众多显示屏尺寸和用户交互。 过去不是什么问题的像素密度和物理尺寸方面的区别让情况变得更复杂。 移动市场对平均像素密度具有重大影响,并且不再受标准 72 dpi 的限制。 高分辨率、小物理尺寸屏幕增添了一般性挑战,特别是对于视频。 首先是各个用户界面元素。 现在设置简单的宽度和高度不再那么简单。 维持触摸设备 UI 控件可用性的像素尺寸需要至少是每英寸半个像素。 一种物理尺寸的像素宽度/高度需要考虑屏幕深度或 DPI(每英寸点数)- 在此处与 PPI(每英寸像素数)同义。 幸运的是,设备 DPI 可通过 Capabilities.dpi 属性从 ActionScript 中的 Capabilities 对象获得。 要确定一个控件的物理尺寸,可获取以英寸为单位的目标尺寸并将它乘以设备的 DPI。
另一个与视频关系更紧密的挑战是,更高像素密度的设备进而需要更高质量的视频来保持成为该设备标准的视觉灵敏度。 当然,这是可管理的,但一般而言视频尺寸越大,需要越大的带宽来维护质量 – 这可能让通过蜂窝数据连接提供的视频难以保持高质量。 而且需要渲染的像素数/清晰度越高,硬件系统需求就越高。
下面列出了制定合适的尺寸决定所需细节的基本知识:
要获取可理解和应用动态调整多屏幕应用程序尺寸等关键概念的优秀文章,请查阅 Christian Cantrell 的名为“为多种屏幕尺寸创作移动 Flash 内容”的文章 - http://www.adobe.com/cn/devnet/flash/articles/authoring_for_multiple_screen_sizes.html
Paul Trani 还撰写了一篇名为“正确地在不同屏幕间调整图形大小”的优秀文章: http://www.paultrani.com/blog/index.php/2010/12/sizing-graphics-correctly-across-screens/
除了适当调整 UI 元素本身(如视频控制栏),还需要为适当的用户交互来设计这些元素并调整其大小。 在触摸是主要界面控制方式的移动设备上,元素的设计需要适合设备的分辨率和用户体验。 请看看下面的控制栏,对比以下不同屏幕上可能的 UI 区别。

知道您的应用程序将在哪种设备上运行,或者至少知道该设备的功能,这可帮助您动态地塑造应用程序来适应实现最佳用户体验所需的功能。 flash.system.Capabilities 类是检测应用程序运行设备类型的主力。
一般而言,在开发跨屏幕应用程序时,您将希望确定以下事项:
以下的 ActionScript 代码段给出了可用于确定平台和设备的大体框架。
protected function analyzeEnvironment():void
{
//if mobile processor
if( Capabilities.cpuArchitecture=="ARM" )
{
var dpi:Number = Capabilities.screenDPI;
trace(Capabilities.os);
//check if iOS. IF true don’t play h.264
var iOS:Boolean = Capabilities.os.toLowerCase().indexOf("iphone") > -1;
//determine the size of the screen in inches - this is for UI controls
var screenWidthInches:Number = Capabilities.screenResolutionX / dpi;
var screenHeightInches:Number = Capabilities.screenResolutionY / dpi;
//See if screen is larger than 5 inches; width or height
if( screenWidthInches > 5 || screenHeightInches > 5 )// Tablet
{
if( iOS )
{
//CONFIGURE IOS TABLET
}
else
{
//CONFIGURE TABLET
}
}
else // Phone
{
if( iOS )
{
//CONFIGURE IOS PHONE
}
else
{
//CONFIGURE IOS PHONE
}
}
}
else // Desktop
{
//CONFIGURE DESKTOP
}
}
知道应用程序何时在线和离线对任何应用程序都是一个重要因素。 对于移动应用程序,您在线还是离线以及您所在的网络类型是非常重要的信息,您可使用它们显著改善您应用程序中的用户体验。 允许用户离线工作,然后再次连网时同步更改或更新,或者在用户不使用 Wi-Fi 连接时不允许进行大型下载的能力,可能是您的应用程序有用与无用的区别。 此外,通过即用即付网络下载大型文件可能成本很高或者很受限制。 例如,对于 iOS,如果不使用 HLS 流式传输和仅支持 Apple 的音频,会将应用程序批准进行流式传输内容的时间限制到 10 分钟以下。
文件大小限制不仅会影响设备和应用程序的性能,还会消耗掉存储空间有限的设备上的太多空间,这可能不利于以移动平台为目标的应用程序。 仔细考虑您添加到应用程序中的每个字节,这可帮助您避免应用程序由于消耗太多存储空间而被从设备中删除。
建议评估您应用程序中使用的任何框架。
下面列出了针对特定移动平台的一些重要数据点。 其中许多细节已介绍,但仍然在此列出,作为跨每种平台的重要数据点的快速浏览描述。
Android
iOS
RIM
Adobe AIR for TV 支持将您的 AIR 应用程序、游戏、服务和内容部署到电视上。 鉴于人们每天会花多达 5 个小时来看电视,因此将您的内容交付给更多的用户就成为了可能。
与我们正在讨论的所有设备一样,在为电视开发应用时需要做出一些总体考虑。
使用 AIR for TV 时,您需要为应用程序考虑屏幕的大小。 作为一种最佳实践,使用 Stage 类确定以下因素:

有关电视舞台和可用区域的更多信息,请参阅 Flash Platform Doc 团队中 Jackie Levy 撰写的文章“AIR for TV 应用程序和“安全观看区域”(也称为“标题安全区域”)”。
作为 AIR 应用程序,您的应用程序将能够访问电视的文件系统。 要保护电视的系统文件,AIR for TV 应用程序对设备上的文件的访问能力有限,并且您用于访问设备上各个文件的“目录”名称不是设备上的实际目录名称。 这么做可以避免意外地访问设备上的文件。
有关一些参考材料,请参阅“在电视上交付 Flash Platform 视频和内容”:http://www.adobe.com/cn/devnet/devices/articles/video_content_tv.html
对市面上的许多不同设备而言,跨屏幕测试和调试应用程序可能是一项艰巨的任务。 Flash Professional 和 Flash Builder 都是优秀的工具,不仅可构建这些跨屏幕的应用程序,还可帮助调试您在开发应用程序时可能遇到的任何问题。 开始调试的最快且最轻松的方式是用 ADL 模拟设备。 每个平台都具有这个选项。 在一些设备上进行调试可能比其他设备更加困难,以下是一些与每个平台相关的调试技巧。
最后但同样重要的是将完成的应用程序部署到全世界或地区。 在移动和电视领域,这主要通过提供商所提供的各种应用程序商店来完成。 应用程序商店提供了最佳的产品曝光机会和支付处理。 当然,这些好处需要您牺牲一些特性,尤其是涉及到金钱并期望与商店提供商分享部分利润时。以下参考资料可帮助您将应用程序的最终版本发布并提交到各个应用商店:
本文收集并展示了跨设备视频交付的考虑因素和功能的许多信息。 它为您提供了一些想法和资源,可帮助您理解跨多种设备进行视频应用程序开发的影响。 一个代码库的大部分代码能够创建可部署到如此多不同设备的应用程序的事实,是 Flash Platform 的强大功能和 Adobe 为让跨屏幕开发成为现实所投入的大量工作的有力证据。
随着可用带宽、设备和这些设备功能的增加,视频成为了一种可用于联系、取悦和通知用户的越来越重要的媒介。 Flash Platform 提供了一种强大且灵活的方式来将内容提供给用户,无论他们身在何处都是如此 – 在火车上还是在起居室中。
移动设备视频播放器优化最佳实践: http://download.macromedia.com/flashmediaserver/mobile-video-player-opt-v1_3.pdf