Windows 为用户提供了大量技术让其体验视频和音频所带来的震撼,并让开发人员通过丰富的 API 来深入探究这些技术的精髓。Windows 媒体平台已面向桌面和 Metro 风格应用程序进行了大幅改进,本篇博文将就 Windows 媒体平台的这些方面展开深入探讨。自 Windows 7 推出以来,媒体播放的格局发生了翻天覆地的变化:用户对流式处理的关注持续提高,内容的所有者希望能在更大范围内的设备中播放其内容,与此同时,播放所需的电池耗电量却大幅降低。借助这些新功能(当然 Windows 8 和 Windows RT 中都包含这些功能),我们将为用户和开发人员提供业界领先的支持。本篇博文的作者是媒体平台与技术团队的项目经理 Scott Manchester。–Steven
无论是观看电影,进行视频聊天,或是播放音乐,使用丰富的媒体都是我们当今在 PC 中所进行的最常见,同时也是最具乐趣的一项操作。在此,我想简要地谈谈我们在 Windows 8 中所开展的工作,通过努力,我们已最大程度地增加多媒体活动的丰富程度,并通过大量媒体平台而将这些功能扩展至第三方开发人员。
在设计 Windows 8 媒体平台时,我们曾设立了三个目标:
- 最大程度提高性能。我们希望媒体播放能够快速,且响应程度高,从而在最大程度延长各个 PC 中的电池使用时间的同时充分启用硬件的功能。
- 简化开发和扩展性。我们所希望提供的平台应可轻松扩展,并针对给定的应用程序量身定制,从而为 Windows 上创新的自定义媒体应用程序构建平台。
- 启用大量应用场景。高性能、高效率、可广泛扩展的平台可启用大量音乐、视频、通信和其它多媒体应用程序。
随着这三大目标的确立,我们颠覆革新了 Windows 平台中的媒体体验。
速度更快、响应程度更高的媒体体验
性能是任何用户体验中的一个关键方面,但是对于多媒体应用场景而言性能将尤为重要。视频需要实时播放,语音通信需要为用户提供即时体验,而且所有这些任务都需要最大程度降低对电池的消耗。
我们以时间、计算机资源和给定任务在系统中占用的内存为指标来衡量性能。我们的目标是最大程度降低所有这些指标。我们对媒体性能的目标则主要集中于音频与视频播放、转码、编码和捕获。
高效视频解码
为了延长电池使用时间或降低所有媒体应用场景中的电源消耗量,我们一直与硅芯片领域的合作伙伴保持了密切合作来为用户提供全新、更迅速的使用体验。借助在经过 Windows 8 认证的 PC 上运行的 Windows 8 操作系统,普通媒体格式的视频解码将被卸载至一个面向媒体的专门硬件子系统。由于专门的媒体硬件相比 CPU 在媒体解码方面更为高效,因此这可让我们大幅减少对 CPU 的使用,从而提高视频播放的流畅程度,并延长电池的使用时间。这将大幅改善包括播放、转码、编码和捕获在内的所有需要视频解码的应用场景。
以下图表显示了 Windows 7 和 Windows 8 在播放 720p VC1/H.264 视频片段和网络摄像头捕获预览时平均 CPU 使用情况的对比。
除了视频卸载,我们还对网络摄像头捕获进行了另一大改进,即从 DirectShow 捕获 API 向全新、更为优化的 Windows 8 媒体技术捕获 API 的转变。我们同时也为 H.264 和 VC-1 内容改进了软件的解码器,因此使用 CPU(如果有效)进行解码的速度和能效将大大提高。
音频播放过程中最大程度延长电池使用时间
我们为 Windows 8 中的媒体性能所进行的另一项改进是最大程度地延长了音频播放过程中的电池使用时间(或只是降低了电池消耗量)。除了启用音频管道的卸载(与上述音频的卸载类似)以外,我们还彻底改进了音频播放的管道,从而提高常态播放的效率。通过对较大音频数据进行分批,并集中进行成批数据的处理工作,CPU 的休眠时间可延长 100 多倍(变化幅度约为 1 秒与 1 毫秒),从而大幅延长音频播放期间的电池使用时间。
当然,由于增加的缓冲将产生额外的延迟,因此这一方法并不完全适用于所有应用场景。在以下通信部分中,我们将提到关于这些弊端,以及媒体堆栈如何面向各个应用场景而进行优化的更多内容。
音频和视频卸载只是我们在 Windows 8 中优化媒体堆栈的几个示例,通过这些方法,我们可降低对 CPU 和内存的使用,并延长桌面和 Metro 风格应用程序的电池使用时间。
支持大量媒体应用场景
性能是平台中的一个关键方面,但是只有当与性能息息相关的功能运行出色时,性能的重要性才能表现出来。在 Windows 8 中,这些功能包括对现代视频格式的支持、低延迟的通信流,以及与外部媒体设备的无缝连接。
平台的弊端
开发可服务多个不同应用场景的单一媒体平台的一大难题在于平台中包含许多相互冲突的目标。例如,通信应用场景需要低延迟、音频/视频解码和播放,这些内容的质量和性能将从缓冲中受益,而缓冲又将产生较高的延迟。在接下来的几个部分中,我们将在某些应用场景的背景下探讨这些难题,这些应用场景是我们在 Windows 8 开展了大量工作以试图启用的应用场景,其中包括:
- 通信(例如 Skype、Lync 等)
- 视频播放和现代格式支持
- 视频的自动定向
- 高级内容播放
- 无缝音频转换
- 将媒体体验引入更多屏幕
- 新兴媒体功能
简化开发与扩展性
这些体验中的一个共同主题是我们已经融入到多媒体平台中的扩展性。由于用户的使用情况、媒体格式、编码解码器、保护机制和处理方法多种多样,因此我们赋予了开发人员自定义并定制其产品的能力,让其在 Windows 中灵活创建应用程序和网站。
由于我们将在接下来几个部分探讨某些媒体应用场景,因此我们还将介绍我们为了让开发人员和第三方合作伙伴扩展这些应用场景而开展的工作。让我们更进一步地来了解我们为 Windows 8 所制定的目标。
通信
PC 中的实时通信,特别是移动设备中的实时通信在过去十年中获得了迅猛的发展。Windows 用户每天正使用诸如 Skype 和 Lync 等服务进行数十亿分钟的音频和视频通话。TeleGeography 估计国际 Skype 间的通话(包括视频通话)的时长在 2011 年增加了 48%,达到了 1450 亿分钟。我们投入了大量心血来改进所有 Windows 8 PC 上的视频和音频通话体验。为了实现这一目标,我们所开展的工作集中于以下两个方面:
- 启用内置的低延迟媒体捕获和呈现。低延迟是通信应用程序中必不可少的一个特性,因此 Windows 将在操作系统中支持低延迟媒体捕获和播放。
- 支持高清摄像头来增强视频通信体验。高清视频将让您享受到更逼真的通信体验,因此 Windows 将支持高清摄像头设备。
启用低延迟
当您与其他用户通信时,您总是希望获得迅捷的回应。基于这一原因,通信系统通常将试图最大程度地缩短端到端的滞后(也被称为“延迟”)。在设计音频和视频播放系统时,缓冲常被作为一项保护措施,避免由于处理信号或网络流量导致的故障,并降低能耗。然而,缓冲将导致音频和视频的滞后,导致观众察觉到延迟现象。在构建 Windows 8 的过程中,我们曾设计了媒体平台来支持面向播放和通信进行优化的应用场景。媒体基础结构可在播放模式(高缓冲、面向多个条件的高容错能力)和面向通信优化的模式(低延迟)中切换。
根据 TIA/EIA 920 标准,属性只是媒体处理管道的单向音频延迟不得超过 100 毫秒,方可实现可用的实时通信体验。我们充分考虑了这一指标,并设计出了一个测试环境来衡量管道中端到端的延迟,具体情况显示于以下图表中:
为获得低延迟,系统中有许多组件需要优化
在视频通信的情形中,端到端或“屏到屏”的管道延迟的衡量形式是摄像头设备捕获视频帧,然后编码成受支持的视频格式,在网络还回接口中流动、解码并最终由显示器呈现的整个过程中的延迟。
通过查看以下图表,您将看到媒体管道在低延迟模式中捕获和呈现 PCM 音频所获取的结果。第一组信号对应的是发送方所说的原始单词,而第二组信号则显示了接收方所收到的单词。二者之间的延迟是 65 毫秒,远远低于 100 毫秒的目标。
PCM 音频的端到端的管道延迟:低延迟模式
下一幅图表显示了当系统捕获、编码(以 H.264 格式)、流式处理、解码并最终在众多分辨率的显示器中显示视频帧时,播放管道延迟和面向通信优化的模式之间的对比。145 毫秒的整体延迟目标(TIA/EIA 920 对可用实时视频通话所设定的目标)显示于图表中的绿线中。
以每秒 30 帧的速率捕获,并编码为 H.264 的视频帧
在播放模式中,管道的平均延迟约为 575 毫秒。播放视频时,这一延迟不会对流畅播放体验产生较大影响,但是实时视频通信则无法接受这一延迟。另一方面,在低延迟模式中,所衡量的延迟远远低于每个衡量的视频分辨率的目标。
支持高清视频通话
我们为改进 Windows 8 PC 而进行的另一项工作是通过操作系统来支持高清摄像头。新级别的驱动程序将与应用程序透明地配合,从而为高清视频功能提供支持。此外,此前所讨论的视频解码的所有硬件加速都将被用于通信应用场景。
Windows 8 将为专为 Windows 8 而设计的 PC 提供一个一致、高质量、硬件加速且节能的媒体通信体验。我们对媒体平台进行了大量投入来改善管道延迟,借助我们对 H.264 摄像头所新增的支持,用户可与亲朋好友进行高保真高清视频通信。
面向 Metro 风格应用程序的视频与音频支持
我们对 Metro 风格应用程序的原生媒体格式所制定的主要目标是确保用户和应用程序开发人员可放心使用各种外形 PC 中一致、卓越的播放体验,并在以下主流应用场景中使用现代格式:
- Web 上基于 HTML5 的娱乐
- 使用热门智能电话、对准即拍照相机或 AVC 高清摄像头捕获的家庭电影
- 热门服务中的流式音乐、电影和电视节目
以下表格显示了包含对 Metro 风格应用程序提供内置支持的视频和音频格式。Metro 风格应用程序推荐使用的格式反映了我们与硬件制造商的密切合作关系,这一合作涵盖对各种 PC 外形的可预测硬件加速和诸如捕获、流式处理与转码等播放以外的可预测端到端应用场景性能。
Windows 8 对 MPEG-4 提供了大力支持,大部分 MPEG-4 通常由 H.264 视频和 AAC 音频组成。包括 Divx 和 Xvid 在内的许多常见编码解码器将实施 MPEG-4 第 2 部分标准,因此这些文件中的大部分将在 Metro 风格应用程序中起到重要作用。基于 MPEG-4 第 12 部分标准的现代 MOV 文件(如捕获于 iOS 设备上的视频)的情形也较为类似。含有碎片的 MPEG-4 和 2K/4K 分辨率现已可用。我们曾在此前发布的博文 Windows 8 中的 Windows Media Center 中探讨过 MPEG-2 和 DVD 播放。
在 Windows 7 的开发过程中,我们曾广泛探讨过 Windows 中编码解码器的原生支持,以及通过扩展性而可用的格式。从那时起,有关编码解码器的环境就一直向一组更小的明确定义、且广泛支持的格式发展,特别是视频的 h.264 格式。由于知识产权和硬件支持等因素,这一点意义重大。即便浏览器也在利用 HTML5 进行这一转变。但是我们也认识到个别用户基于各种原因而偏好使用某些格式,我们希望确保 Windows 8 应用程序的开发人员可选择其偏好使用的格式。由于 Windows 8 媒体平台可高度扩展,因此诸如 FLAC、MKV 和 OGG 等发烧友社区或特定开发人员常用的格式可拥有其自身的编码解码器,并作为 Metro 风格应用程序包中的一部分。
视频的自动定向
随着传统照相机、智能电话、平板电脑中视频录制的推广,用户可在横向或纵向模式握持设备时捕获视频,得益于现代基于触控的界面,“所谓正确的朝向”已成为过去式。我们中许多人都增体验过视频录制的难处,并在 PC 中观看拍摄的内容后才发现方向不对。由于视频缩放模式是固定的,因此用户在观看视频时可能无法对其调整方向。
为了解决这一问题,摄像头开始在将录制的视频保存至存储区域时于诸如 MP4 和 ASF 等主流文件格式中创作方向元数据。
为了确保用户将从 Windows PC 的个人视频中获取逼真的观看体验,我们进行了以下改进来解决这一问题:
- 方向元数据现已可支持 MP4 和 ASF (VC-1、WMV) 视频。
- 包含方向元数据的视频可在播放过程中自动旋转。
- 包含方向元数据的视频缩略图可自动旋转。
- 包含视频捕获功能的 Metro 风格应用程序可轻松读取并创作方向元数据。
高级内容
我们对 Windows 8 投入大量精力的另一大领域是实现了高级内容的无缝播放。尽管 Internet 最初使用的大多数视频内容是由用户生成的,但是现如今 Internet 视频空间的大部分增长都归结于“高级内容”,其中包括通过按需流式视频而进行的在线电影购买,以及受广告支持的电视服务。IHS Screen Digest 表示,34 亿部付费电影将在 2012 年于美国进行在线流式处理,这一数据是 2011 年观众所观看的电影数量的两倍,而且这一数据比通过 DVD 和 Blu-Ray 所观看的电影数量总和还多 10 亿之多。
高级视频内容拥有许多其它视频内容相同的要求,但是高级视频内容还需要两个重要的平台功能,方可为用户提供最佳观看体验:自适应比特率流式处理和内容保护。
自适应比特率流式处理
自适应比特率流式处理通过让 PC 适应各种网络和资源使用条件下最合适的比特率,从而为用户提供更流畅且响应速度更快的视频播放体验。由于最初几帧能以较低的比特率传送,因此能缩短系统的缓冲时间,并提高响应速度,进而大幅改善启动和搜寻项目。如果网络或设备条件发生变化,PC 可协商更低或更高的比特率来最大程度缩短缓冲时间,或提高视频质量。
通过 Windows 8 中媒体基础平台的扩展性,应用程序可获得自定义的媒体源和自适应的比特率媒体源来支持新格式。自定义媒体源和流式处理协议也可利用硬件卸载和内容保护的优势。
Windows Azure 媒体服务团队正在使用我们的扩展性模型来构建适用于 Metro 风格应用程序的流畅的流式处理客户端 SDK。流畅的流式处理是 Microsoft 的一项计划,旨在为用户提供高质量的多比特率内容,并启用按需视频播放、实况转播、有线电视和下载即播放服务。
内容保护
大多数高级 Internet 视频内容服务将选择应用内容保护,这通常是内容所有者(例如电影工作室或电视网络)所提出的要求。为了在 Metro 风格应用程序中播放受保护的内容,Microsoft 推出了面向高级内容服务的 PlayReady 客户端 SDK。PlayReady 将支持下载和流式处理,上述 IIS 流畅流式处理客户端 SDK 将与 PlayReady 客户端 SDK 无缝集成,从而让各项服务轻松构建受保护的流式处理体验。
我们知道当今 IT 界还采用了许多其它内容保护技术。与自适应流式处理类似,媒体基础扩展性模型可让第三方将其自定义内容保护系统与内置的硬件加速视频解码功能集成。如果某项服务需要使用自定义的流式处理格式或内容保护系统,那么该服务可集成其自身的技术,而且不会对解码质量或电池运行时造成不良影响。
总的来说,Windows 8 将为客户提供宽泛的高级内容服务选择范畴,让客户在其 Windows 8 的设备上尽情享受各项高级服务,让客户在光看优质高清视频内容的时候享受到卓越的流式处理和下载体验,而且电池使用时间更是令人惊叹。
无缝音频转换
由于 Windows 8 启用了多个媒体应用场景,因此我们希望确保各种应用场景之间的转换将尽可能地无缝、流畅。用户通常将进行多项基于音频的活动,例如在听音乐流服务时,试图观看视频片段。我们希望为客户提供一个简单、流畅的音频体验,让用户能在需要时更轻松地听到希望听到的内容。
在 Windows 8 中,系统并不是混合所有音频内容并向扬声器发送结果流(通常为不一致),而是可在播放第二个流的时候,或必要时暂停流播放。在大多数情形中,Windows 将优先前台应用程序所发送的音频。当您将应用程序移至后台时,系统将静音该流。其中一个例子就是游戏应用程序。当您从游戏切换至其它应用程序时,您可能并不希望听到游戏音频播放。然而,有些情形则正好相反。例如,当您在查看电子邮件或浏览网页时,您可能希望听到后台播放的音乐。为了启用这些应用场景,并让您在需要时听到后台音乐,我们引入了一些流类型,这些流将反映出正在播放的音频类型。
以下列表中显示了不同的流类型,以及各个流应对应的内容类型。
音频类别 |
示例流 |
是否支持 |
支持后台的媒体 |
本地和流式处理音频播放列表 |
是 |
仅支持前台运行的媒体 |
电影、游戏 |
否 |
通信 |
Skype、Voice-over-IP、实时聊天 |
是 |
警报 |
警报、响铃通知 |
否 |
游戏媒体 |
游戏运行时播放后台音乐 |
否 |
游戏效果 |
枪声、爆炸声、角色谈话声、所有非音乐的声音 |
否 |
声音效果 |
按钮确认声音、蜂鸣声、叮当声 |
否 |
其它 |
默认音频类型,以及面向所有不需要在后台继续播放的音频媒体的推荐类型。 |
否 |
将媒体体验引入更多屏幕
我们曾在 Windows 7 中推出了播放到功能,您可使用该功能从 Windows Explorer 和 Windows Media player 中将媒体文件流式处理至受支持的外部设备。在 Windows 8 中,播放到功能将进一步简化与家中支持播放到功能的设备共享个人媒体收藏集和 HTML5 媒体。我们对播放到的关注重点是创建一个围绕个人媒体内容的丰富社交体验,例如与亲朋好友共享照片,为聚会流式处理音乐,或从 Internet 上观看用户制作的视频。这一体验已经过重新设计,旨在与现有网站中的 HTML5 和您的个人媒体收藏紧密集成,无论您将这些内容存储于 Windows PC 或平板电脑的本地库中,或是另一台家用 PC 或与网络相连的媒体服务器,抑或是云端的 Web 服务器中,其都可完美实现。
借助播放到功能,您可更加轻松地发现项目,并从海量 Metro 风格应用程序中获得一致、高质量的体验。以下列出了一些经改进的用户体验:
- 改进的安装:在可共享的家庭网络(或家庭组)中,您的 PC 将自动发现播放到的设备,并进行安装。
- 改进的设备体验:Metro 风格应用程序将仅可于经过 Windows 认证的播放到接收器配合使用。这些设备经过验证,可支持现代媒体格式,符合 DLNA 标准,并且性能卓越(其中包括今年晚些时候推出的更新的 Xbox 360)。在 Windows 7 中首次引入的桌面体验将添加至 Explorer Ribbon 中,并继续支持所有 DLNA DMR 设备。
- 更轻松的发现:用户可从“设备”超级按钮中轻松使用播放到功能,从而大大简化了从支持播放到功能的所有应用程序中启动的过程。您只需从右边缘轻扫(或将您的鼠标移至右上角),选择“设备”超级按钮,然后选择您希望流式处理至的设备即可。
- 与 Metro 风格 IE 集成:IE 可让您将 Web 中的 HTML5 音乐、视频和照片流式处理至您的设备。
- 使用全新音乐、视频和照片应用程序:应用程序可从多种源和个人音乐与视频收藏集中流式处理照片。
视频应用程序中的播放到功能
我们还重点为开发人员简化了在其应用程序和网站中使用播放到功能的过程,该功能可通过“播放到”合约在所有 Metro 风格应用程序中可用。XBox 360 将在今年晚些时候的更新中支持播放到功能。
新兴媒体功能
Windows 正在启用对新内容类型的支持,并已增加了内容创建和通信的灵活性。我们在 Windows 8 中推出了出众的多媒体体验,立体 3D、辅助功能和 DSP 效果就是其中三个例子。
体验立体 3D 视频
在过去数年中,立体 3D (S3D) 市场已从最初大肆宣传阶段进入了成熟的消费性产品阶段。S3D 通过重叠显示两组(从不同角度捕获的)视频,观众在佩戴上 3D 眼镜后将看到单一的 3D 视频效果,从而为观众提供了卓越的 3D 观影体验。我们的目标是通过在最终用户的 PC 中剥离 3D 技术的具体要求的平台中启用游戏和视频播放应用场景,从而为 Windows 成立可蓬勃发展的 S3D 生态系统。
在 Windows 8 中,S3D 支持将在 DirectX 10 或包含兼容性驱动程序的更高 GPU 中可用。观看 S3D 内容需要与 S3D 兼容的显示器。我们希望确保 Windows 将支持大量显示技术,提供一致的用户体验,并简化开发人员在我们的平台中开发软件和硬件的过程。因此,显卡驱动程序让特定的 S3D 显示技术变得不相关联,而可使用立体 3D 的应用程序将可使用一组一致的 API。
Windows 8 媒体平台将为 S3D 视频支持符合标准的媒体格式。包含帧封装元数据,并以补充增强信息 (SEI) 呈现的 H.264 通常是在线交付所采用的格式,因此也是 Windows 8 中的理想 S3D 视频格式。如下图所示,我们在平台中原生支持的帧封装格式包括并排和上下排列。
Windows 8 将支持大量立体 3D 输入格式,其中包括并排和上下格式。
在 Web 平台中提供可访问媒体体验
媒体可访问性是 Windows 对客户的承诺,特别是对具有访问需求的用户的承诺中的一个重要部分。
字幕将为偏好查看书面脚本的用户、需要查看不同语言翻译的用户、或由于听力障碍而需要查看脚本的用户提供了解释性或其它信息。
Windows 8 中包含字幕的视频播放
Web 社区与 W3C 开展了全面合作确定了在所有现代 Web 平台中提供字幕体验的最佳方式。这些方式包括:
- <track> 元素可为 HTML5 视频标签承载字幕和封闭标题栏。现在 Windows 8 中已包含了该功能。字幕支持现在已经通过 IE10 和使用 HTML 的应用程序中的视频标签可用。
- 用户控件可在视频标签的默认媒体控件中可用。
- 现在 Windows 8 还为 WebVTT 和 SMPTE-TT 格式提供了原生支持。这两种格式常见于 Web 社区和电视与广播领域的合作伙伴中。
- Windows 8 媒体平台将在单一媒体源内为多个音轨提供支持。用户可切换至其首选语言的音轨,而且音轨同样可用于为视力受限的用户提供音频描述。Metro 风格应用程序现在可在不同音轨间轻松切换,或者甚至同时播放多个音轨,例如,一个普通音轨加一个音频描述。
包含多音轨的 Windows 8 中的视频播放
为媒体轨道增加效果
Windows 8 媒体平台旨在能够轻松进行自适应。我们为实现这一目的所采用的一种方式是为管道增加效果(通常被称为数字信号处理,或简称 DSP)。我们已经包含了数种内置的效果,例如图像稳定性和(对网络摄像头预览十分有效的)水平翻转,我们同时简化了应用程序插入包含自定义效果的媒体基础管道的过程。此外,我们已经确保媒体数据能够高效通过管道,从而最大程度地降低添加 DSP 对性能和能耗的影响。
总结
Windows 8 媒体平台旨在为用户提供流畅、且响应程度高的媒体体验,并为用户提供较长的电池使用时间。我们对 Windows 进行了全方位的设计,从而可让您在包括语音通信、音频与视频播放和流式处理内容在内的大量应用场景中享受到卓越的使用体验。随着媒体应用程序的不断发展,Windows 中的媒体平台将让所有 Windows 8 PC 的用户领略这些体验的独特魅力。
现在,我将以一段视频来向您介绍新媒体平台中的一些亮点,同时也作为本篇博文的结束语。
--Scott