媒体基础源读取器的制作方法

文档序号:6594154阅读:151来源:国知局
专利名称:媒体基础源读取器的制作方法
媒体基础源读取器背景诸如音频和视频文件等各种类型的媒体通常存储在数据源中的逻辑容器中。操纵媒体的应用程序可以使用API来从特定类型的容器中访问特定类型的数据。例如,存在访 问AVI、ASF和MP3容器的API。MICROSOFT 媒体基础(Media Founcation)是提供用于访问不同的多媒体容器的 API的框架的一个示例。概述此处描述的是特别地用于提供对数据存储中的压缩和未压缩多媒体数据的访问 而无需具体知道容器结构或媒体格式的技术。在一个实现中,提供了 API,该API允许应用程序从包括AVI、WAV、ASF、MP3、和 MPEG-4容器等各种数据源访问多媒体数据,而无需应用程序为每个类型的容器调用不同 API。在一些实现中,该API可以是可扩展的,使得可以添加附加的容器类型和文件类型。附图描述下面结合附图提供的详细描述旨在作为对示例实现的描述,而非表示可实现媒体 基础源读取器的唯一形式。本说明书阐述了各示例实现的功能以及用于构造和操作各示例 的步骤序列。然而,相同或等效的功能与序列可由替换实现来完成。根据附图阅读以下详细描述,将更好地理解本发明,在附图中

图1是可实现媒体基础源读取器的操作环境的示例。图2是媒体基础源读取器的高级体系结构的示例的框图。图3是媒体基础源读取器的示例使用的流程图。图4示出根据本发明一实施例的计算设备的组件图。详细描述此处描述的是特别地允许对多媒体文件内容的简化访问的各种技术和方法的示 例。虽然在本文中将示例描述并示出为在个人计算机系统中实现,但是所述系统只是作为 示例而非限制来提供的。本领域的技术人员将理解,本示例适于在各种不同类型的系统中应用。在图中,若干附图中全部使用相同的附图标记来指代类似的组件。图1是可实现媒体基础源读取器的操作环境100的示例。主机设备110具有媒体 基础源读取器115。主机设备110被耦合到摄像机120,该摄像机担当媒体基础源读取器的 源。主机设备110还经由局域网170被耦合到设置在服务器150上的源文件140,该源文件 也担当媒体基础源读取器的源。尽管该示例示出两个可能的源,但本领域技术人员将认识 到可以使用许多可能的源,包括,作为示例而非限制,设置在主机设备110上本地文件、可 移动或便携式存储设备上的文件、网络摄像头、数字录像机、磁带录像机、或者音频或视频 材料的任何其他可能的源。图2是示出媒体基础源读取器(MS源读取器)的高级体系结构200的示例的框图。 多媒体应用程序210经由标准API与MF源读取器250进行交互。MF源读取器250包括媒体基础媒体源260,在该示例中,媒体基础媒体源从源存储220中读取。MF源读取器250还包括音频解码器媒体基础变换(MFT)以及视频解码器MFT 280。音频和视频MFT可包括, 作为示例而非限制,音频和视频编解码器、音频和视频效果、多路复用器、多路分解器、解密 器、T形分流(tee)、色彩空间转换器、采样速率转换器、和视频缩放器。MF源读取器提供用于执行具有多媒体内容的常见任务的标准API。图3是媒体基础源读取器的示例使用的流程图300。多媒体应用程序210调用MF 源读取器来打开310多媒体数据存储。多媒体数据存储包含若干流,因此调用API以从可 用媒体流中进行选择320。尽管可用媒体流可具有不同的格式,诸如WMV、VCl、WMA, MP3、 AVC (H. 264)、MPEG-4视频、AAC、PCM、YUV、RGB或其他格式,MF源读取器提供了公共的API 来选择媒体流。随后为在步骤320所选择的流选择330所需输出媒体类型。随后MF源读 取器准备好被调用以提取340媒体样本。在一个实施例中,MF源读取器使用MICROSOFT 媒体基础(MF)框架来提供一些功 能。在该示例中,MF源读取器使用MF媒体源对象来以容器不可知的方式从给定文件或设备 中提取本机格式的多媒体样本。它可以使用MFT将压缩媒体转换成未压缩格式。MF源读取 器还可以使用MF框架来确定使用哪个MFT来处理具体容器或格式。例如,MF源读取器可 以调用MFMFTEnumEx API,来基于其要处理的特定流的本机媒体类型来寻找合适的解码器。在至少一个实现中,MF源读取器将支持异步处理;在其他实现中,可以支持同步 处理;而在另一些中,可以支持同步和异步模式。在一些实现中,应用程序可以将一 URL传递给源读取器,该URL需要源读取器打开 数据存储。在其他实现中,应用程序可以在到先前打开的数据存储的字节流接口中传递。在 又一实现中,应用程序可以在已配置有数据存储的MF媒体源的实例中传递。本领域技术人 员可以认识到在各种实现中的向MF源读取器指示MF媒体源的这些或其他技术的组合。在一些实现中,MF源读取器支持动态格式改变。可以例如在媒体源或MFT中做出 这些改变,也可以做出MF源读取器自身使用的MFT所发起的改变。在一些实现中,应用程 序可以用读取器所输出的格式发起动态改变,例如,包括从压缩到未压缩的改变、或从一种 未压缩格式到另一未压缩格式的改变。图4示出根据本发明一实施例的计算设备的组件框图。计算设备600可用于实现 一个或多个计算设备、计算机进程或此处所描述的软件模块。在一个示例中,计算设备600 可用于处理计算、执行指令,接收和发送数字信号。在另一示例中,计算设备600可用于如 服务器150或客户机110、120、130所需地处理计算、执行指令、接收和发送数字信号、接收 和发送搜索查询和超文本、编译计算机代码。计算设备600可以是现在已知或将变得已知的能够用软件、硬件、固件或其组合 来执行各步骤和/或执行此处所描述的功能的任何通用或专用计算机。在其最基本的配置中,计算设备600通常包括至少一个中央处理单元(CPU) 602和 存储器604。取决于计算设备的确切配置和类型,存储器604可以是易失性(如RAM)、非易 失性(如ROM、闪存等)或是两者的某种组合。另外,计算设备600还可具有附加的特征/ 功能。例如,计算设备600可包括多个CPU。所述方法可由计算设备600中的任何处理单元 以任何方式来执行。例如,所述过程可由多个CPU中的两个CPU并行执行。计算设备600还可包括另外的存储(可移动和/或不可移动),其包括但不限于磁盘、光盘或磁带。这些另外的存储在图6中由存储206示出。计算机存储介质包括以用 于存储诸如计算机可读指令、数据结构、程序模块或其他数据等的任何方法或技术实现的 易失性和非易失性、可移动和不可移动介质。存储器604和存储606都是计算机存储介质 的示例。因此,计算机存储介质包括但不限于RAM、ROM、EEPR0M、闪存或其它存储器技术、 CD-ROM、数字多功能盘(DVD)或其它光学存储、磁盒、磁带、磁盘存储或其它磁性存储设备、 或可用于储存所需信息并可由计算设备600访问的任何其它介质。任何这种计算机存储介 质都可以是计算设备600的一部分。

计算设备600还可包含允许该设备与其它设备通信的通信设备612。通信设备 612是通信介质的一个示例。通信介质通常以诸如载波或其他传输机制等已调制数据信号 来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。术语 “已调制数据信号”指的是其一个或多个特征以在信号中编码信息的方式被设定或更改的 信号。作为示例而非限制,通信设备介质包括有线介质,如有线网络或直接线连接,以及诸 如声学、射频(RF)、红外线及其他无线介质之类的无线介质。如此处所用的术语计算机可读 介质既包括计算机存储介质又包括通信介质。所述方法可用诸如数据、计算机可执行指令 等任何形式编码在任何计算机可读介质中。计算设备600也可具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等的输 入设备610。也可包括输出设备608,如显示器、扬声器、打印机等等。所有这些设备在本领 域是公知的,因此不必在此详细讨论。本领域技术人员将认识到用于存储程序指令的存储设备可分布在网络上。例如, 远程计算机可存储描述为软件的该过程的示例。本地或终端计算机可访问远程计算机并下 载该软件的一部分或全部以运行该程序。或者,本地计算机可按需下载软件的片断,或可以 在本地终端处执行一些软件指令而在远程计算机(或计算机网络)处执行一些软件指令。 本领域技术人员将认识到,通过使用本领域技术人员已知的常规技术,软件指令的全部或 部分可由诸如DSP、可编程逻辑阵列等专用电路来执行。
权利要求
1.一种用于从多媒体数据存储中获得内容的方法,其特征在于,包括 打开所述多媒体数据存储;从所述多媒体数据存储中选择第一多媒体流,而不指定格式; 为所述多媒体流选择第一所需输出媒体类型;从所述多媒体数据存储中选择第二多媒体流,而不指定格式,所述第二多媒体流包括 与所述第一多媒体流不同的格式;以及从所述多媒体流中的每一个提取至少一个多媒体样本。
2.如权利要求1所述的方法,其特征在于,所述第一多媒体流和第二多媒体流是相同 的多媒体流。
3.如权利要求1所述的方法,其特征在于,所述第一多媒体流的格式是WMV。
4.如权利要求1所述的方法,其特征在于,还包括为所述多媒体流动态地选择第二所 需输出媒体类型。
5.如权利要求1所述的方法,其特征在于,还包括用编解码器处理至少一个多媒体样本。
6.如权利要求1所述的方法,其特征在于,所述提取至少一个多媒体样本是异步地执 行的。
7.如权利要求1所述的方法,其特征在于,所述提取至少一个多媒体样本是同步地执 行的。
8.一种在其上设置有指令的计算机存储介质,所述指令在被执行时执行如权利要求1 所述的方法。
9.一种用于从多媒体数据存储中获得内容的系统,其特征在于,包括 处理器;耦合到所述处理器的存储器;被配置成打开所述多媒体数据存储的打开模块;被配置成从所述多媒体数据存储中选择多媒体流的流选择模块;被配置成为所述多媒体流选择所需输出媒体类型的媒体类型选择模块;以及被配置成从多媒体流中提取多媒体样本的提取模块。
10.如权利要求9所述的系统,其特征在于,所述提取模块异步地工作。
11.如权利要求9所述的系统,其特征在于,所述提取模块同步地工作。
12.如权利要求9所述的系统,其特征在于,还包括被配置成处理所述多媒体流的处理 模块。
13.如权利要求12所述的系统,其特征在于,所述处理模块包括编解码器模块。
14.如权利要求12所述的系统,其特征在于,所述处理模块包括视频效果模块。
15.一种用于向应用程序提供用于多媒体流访问的公共编程接口的方法,包括 打开数据存储的应用程序编程接口;从所述数据存储中打开多媒体流的应用程序编程接口。
全文摘要
提供了用于允许开发者使用统一的应用程序编程接口来访问不同的容器中且不同格式的多媒体数据的技术。
文档编号G06F9/44GK102077190SQ200980125616
公开日2011年5月25日 申请日期2009年6月26日 优先权日2008年6月26日
发明者M·C·霍华德, S·J·埃斯特罗普 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1