播放多个媒体文件的方法和系统的制作方法

文档序号:6578513阅读:89来源:国知局
专利名称:播放多个媒体文件的方法和系统的制作方法
技术领域
本申请涉及数据的计算和处理,尤其涉及播放多个媒体文件的方 法和系统。
背景技术
随着计算技术和^ 某体技术的发展,获取媒体资源越来越便捷,因
而在电子设备(例如个人计算机、PDA、多媒体播放器等)上播放媒 体文件越来越普遍。
目前常用的媒体播放技术(例如,DirectShow技术)采用滤镜来 实现媒体文件的播放。滤镜是相对独立的功能模块,各个滤镜按一定 的顺序连接成一条"流水线"(即滤镜链路)来进行数据处理,从而 实现媒体文件的播放操作。因此,需为媒体文件创建滤镜链路才能进 行播放,而在从播放一个媒体文件切换为播放另一个媒体文件时,需 为要播放的媒体文件重新创建滤镜链路。
本申请人的第200810097544.9号未决中国专利申请(公开号为 CN101272390A)中提出了 一种为媒体文件创建滤镜链路的方法和装 置,该专利申请的全部内容并入本文作为参考。
创建滤镜链路的过程比较复杂和耗时。如果用户想要连续播放多 个媒体文件,从载入一个媒体文件到开始播放,由于存在创建滤镜链 路的过程, 一般需要等待较长时间,使得播放多个媒体文件的切换速 度较慢。

发明内容
为了提高播放多个媒体文件时的切换速度,本申请提出了 一种播 放多个媒体文件的方法和系统。
根据本申请的一个方面, 一种播放多个i某体文件的方法可包括从当前媒体文件提取类型信息;根据所提取的类型信息,判断当前媒 体文件与上一媒体文件是否为相同类型;如果当前媒体文件与上一媒 体文件为相同类型,则利用上一媒体文件的滤镜链路生成当前媒体文 件的滤镜链路,否则,创建当前媒体文件的滤镜链路;播放当前媒体 文件。
根据本申请的另 一个方面, 一种播放多个々某体文件的系统可包括 提取单元,从当前媒体文件提取类型信息;判断单元,根据提取的类 型信息,判断当前媒体文件与上一媒体文件是否为相同类型;滤镜链 路生成单元,根据所述判断单元的判断,利用上一媒体文件的滤镜链 路生成当前媒体文件的滤镜链路;播放单元,播放当前媒体文件。


下面将根据附图详细描述本申请的具体实施方案,其中 图1是现有技术中播放多个媒体文件的方法的流程图; 图2是滤镜链路的一个示例的示意图3是根据本申请一个方面的播放多个媒体文件的方法的流程
图4是利用已有滤镜链路生成媒体文件滤镜链路的流程图5是根据本申请另一个方面的播放多个媒体文件的系统的方框
图6是根据本申请的播放多个媒体文件的系统具体实施例的方框图。
具体实施例方式
图1示出了播放多个媒体文件的常规流程。如图l所示,当需要 播放媒体文件时,在打开一个媒体文件(步骤S101)之后,首先为该 媒体文件创建滤镜链路(步骤S102),然后利用所创建的滤镜链路播 放该媒体文件(步骤S103)。在当前媒体文件播放完毕之后,判断是 否存在需要播放的下一个媒体文件(步骤S104),如果存在,则重复 步骤S101 ~ S104,直至不存在需要播放的媒体文件为止。通过图l可以看出,在常规的媒体播放流程中,为了播放多个媒 体文件,需要为每一个媒体文件创建滤镜链路。
在当前常用的媒体播放技术中,滤镜可包括源滤镜、分离滤镜、 解码滤镜和渲染滤镜,它们有各自的分工职责。媒体文件播放的过程 就是将这些滤镜连接起来进行数据处理的过程,形象地说,播放媒体 文件的过程就是使得媒体文件数据在滤镜链路中"流动"的过程。图
2示出了一种示例性的滤镜链路。其中,源滤镜通常用来获取媒体文 件数据,分离滤镜的作用是将媒体文件中包含的多种数据分离,例如,
々某体文件可包含音频^t据和^f见频数据,相应地,分离滤镜输出的it据 流则可包含对应于音频数据的音频分支和对应于视频数据的纟见频分支
(如图2所示)。虽然图2仅示出了音频分支和视频分支,但本领域 技术人员可以理解,当媒体文件数据包含例如字幕数据等其它类型数 据时,所创建的滤镜链路还可包含例如字幕分支等其它分支。如图2 所示,滤镜链路中每条分支均可包含解码滤镜和渲染滤镜。解码滤镜 可对例如视频数据或音频数据等进行解压缩,而渲染滤镜可用于显示 视频内容或回放音频内容等。
媒体文件的格式可包括容器格式、视频格式和音频格式。文件容 器格式用于规定媒体文件中视频数据和音频数据的存放规则,通常与 々某体文件的扩展名相对应,常见的文件容器格式有avi, asf, real, mpegl, mpeg2, mpeg4, mp3, mov, flv, mkv等。视步贞格式用于规 定视频数据的压缩标准,常见的视频格式有H.26x系列(h.261, h.263, h.264), MPEG系歹寸(mpegl video, mpeg2 video, mpeg4 video), wmv, real video, On2vp系列等。音频格式用于规定音频数据的压缩标准, 常见6勺音步贞才各式有mpeg layer3 audio, aac, ac3, wma, real audio等。 随着技术的发展,媒体文件的格式越来越多,这使得为媒体文件创建 的滤镜链路的处理过程越来越复杂。在本申请人的第200810097544.9 号未决中国专利申请(公开号为CN101272390A)中,提出了一种为 媒体文件创建滤镜链路的方法,能够提高滤镜的连接速度和媒体文件 的播放效率。尽管如此,创建滤镜链路的过程仍然比较耗时,尤其是 针对高质量的媒体文件,创建滤镜链路的过程花费的时间可能长达几秒。
可以理解,可根据具体的媒体文件来创建播放该媒体文件所需的 滤镜链路。在本申请中,将媒体文件中与创建滤镜链路相关的信息定 义为该媒体文件的类型信息。如果两个媒体文件的类型信息相同,则 这两个媒体文件具有相同类型,可使用相同的滤镜链路实现播放。
一般来说,媒体文件的格式可基本确定所创建的滤镜链路中各滤 镜的类型。具体而言,媒体文件的容器格式可用于确定源滤镜和分离 滤镜的类型, 一见频格式可用于确定视频解码滤镜和视频渲染滤镜的类 型,而音频格式可用于确定音频解码滤镜和音频渲染滤镜的类型。换 言之,如果两个媒体文件的容器格式、视频格式和音频格式均相同, 则它们可以采用基本相同类型的滤镜链路实现播放。当然,本领域技 术人员可以理解,滤镜链路的确定还可与媒体文件的其它信息相关, 例如,媒体文件的视频流数目和音频流数目可分别影响滤镜链路中视 频滤镜和音频滤镜的具体设置,而媒体文件的其它信息,例如码率(视 频码率、音频码率等)、画面尺寸、音频声道数甚至是节目时长等信
息也与滤镜链路的具体设置相关。
需要指出的是,在本申请中,称两个媒体文件具有"相同"的类 型信息,并非要将这两个媒体文件的类型信息限制为完全一致。以类 型信息中的节目时长为例,如果两个媒体文件的节目时长相差不是太
大(例如可设置为不超过50%或30%),则可认为两个々某体文件的节 目时长相同。例如,两个媒体文件的节目时长分别为60分钟和70分 钟,则可认为它们具有相同的节目时长。对于诸如码率、视频码率、 音频码率、画面尺寸、音频声道数等的其他类型信息是否相同的判断, 本领域技术人员也可进行类似定义,在此不再赘述。同样地,本领域 技术人员应该理解,由于两个媒体文件的类型信息一般并非完全一致, 因此如果两个媒体文件可采用"相同"的滤镜链路实现播放,也并非 要求两个媒体文件播放所需的滤镜链路完全一致。
在很多情况下,用户需要连续播放的多个媒体文件可具有相同的 类型,即多个媒体文件的类型信息相同。例如,用户可能想要连续播 放同一部电影中所包含的多个文件,或者同一音乐专辑中的多个作品,而这些文件的类型信息通常相同,例如,它们通常具有相同的格式(容 器格式、视频格式和音频格式等)、相同或近似的码率、画面尺寸、 音频声道数、节目时长等等。对于具有相同类型信息的媒体文件,用 以播放每个文件所需的滤镜链路是相同的。但是依照如图1所示的过 程,需要在播放每一个文件之前分别为其创建各自的滤镜链路,这样 的处理浪费了计算资源,导致媒体文件播放的切换速度降低。
在播放媒体文件时,如果本次要播放的媒体文件与前次已播放的 4某体文件具有相同类型,可以不必重新创建滤镜链路,而利用为前次 已播放的媒体文件所创建的滤镜链路,来生成本次要播放的媒体文件 的滤镜链路,从而实现本次播放,这样能够提高播放多个媒体文件时 的切换速度。基于这种思路,本申请提出了一种播放媒体文件的方法 和系统。
根据本申请一个方面的播放多个媒体文件的方法,在播放多个媒 体文件时,如果本次要播放的媒体文件是首个媒体文件(例如播放列 表中的第一个文件),则需进行如图1所示的为该媒体文件创建滤镜 链路的过程,然后才能利用创建的滤镜链路实现播放。首个媒体文件 播放完毕后,打开下一个媒体文件。由于已经存在为前次已播放的媒 体文件创建的滤镜链路,则根据本申请的一个实施方案,不是如图1
所示那样直接进行为其创建滤镜链路的步骤。下面将参照图3详细描 述根据本申请的一个方面播放多个媒体文件的方法。应该理解,在图
3示出的流程中,作为处理对象的媒体文件不是多个媒体文件中的首 个媒体文件,而是这样的媒体文件,即,在该媒体文件播放之前已经 具有为前次已播放的媒体文件创建的滤镜链路。
如图3所示,在打开媒体文件之后,首先提取出媒体文件的类型 信息(步骤S301)。在本申请中,媒体文件可以是存储在本地的媒体 文件,也可以是远程存储的媒体文件,例如互联网上的媒体资源。在 一个示例性实施方案中,所提取的媒体文件的类型信息可包括容器格 式、纟见频纟各式、音频格式、纟见频流数目、音频流数目、码率"见频码 率、音频码率等)、画面尺寸、音频声道数、节目时长等。这些信息 通常可包含在媒体文件的头部信息中,因而可通过解析媒体文件的头部信息而获得。提取出的信息例如可存储在本地的存储设备中。然后, 将提取的本次要播放的媒体文件的类型信息与前次已播放的媒体文件
的类型信息相比较,判断两个媒体文件是否为相同类型(步骤S302)。 如上所述,两个媒体具有相同类型并不意味着这两个媒体文件的类型 信息须完全相同。本领域技术人员可以根据需要自行定义两个媒体文 件的类型信息相同的含义,例如,可将类型信息相同定义为容器格式、 牙见频格式、音频格式、— 见频流数目、音频流数目、码率、画面尺寸、 音频声道数相同,节目时长相差不超过30%。另外,可以理解,虽然 可保存所提取的每个媒体文件的类型信息,但出于节约资源的考虑, 可仅保存前次已播放的媒体文件的类型信息,而不必存储更早的已播 放的媒体文件的类型信息。
如果本次要播放的媒体文件与前次已播放的媒体文件的类型相 同,则可以利用为前次已播放的々某体文件所创建的滤镜链路生成本次 要播放的媒体文件的滤镜链路(步骤S303 ),然后播放媒体文件(步 骤S304)。在本次播放的媒体文件播放完毕之后,判断是否存在需要 播放的下一个媒体文件(步骤S305 ),如果存在,则重复以上过程, 否则播放过程结束。
在步骤S302中,如果通过本次要播放的媒体文件与前次已播放的 媒体文件的类型信息判断出两个媒体文件为不同类型,则表示本次要 播放的媒体文件不能利用前次已播放的媒体文件的滤镜链路来实现播 放操作。这时,为了播放媒体文件,需要为本次要播放的媒体文件创 建滤镜链路(步骤S306)。可利用各种方式创建滤镜链路,例如在本 申请人:的第200810097544.9号未决中国专利申请(公开号为 CN101272390A)中公开的创建滤镜链路的方法,本申请不再赘述。
下面将具体描述如何利用为前次已播放的媒体文件所创建的滤镜 链路(下面简称"已有滤镜链路")实现本次要播放的媒体文件的播 放操作。当一个媒体文件播放完毕后,需停止其滤镜链路中媒体文件 数据的传输,即,停止前次已播放的媒体文件数据在滤镜链路中的流 动,并在源滤镜处关闭前次已播放的媒体文件,例如,可将前次已播 放的媒体文件打开的句柄释放。在前后两个媒体文件类型信息相同的情况下,根据如上所述的示例性实施方案,可利用为前次已播放的媒 体文件所创建的滤镜链路生成本次要播放的媒体文件的滤镜链路,下
面将参照图4详细描述此过程。
如图4所示,可将已有滤镜链路中各个滤镜的连接对应关系进行 备份(步骤S401),然后断开源滤镜的输出连接(步骤S402)。为 了利用已有滤镜链路播放本次要播放的媒体文件,可在源滤镜处重新 载入本次要播放的媒体文件(步骤S403 ),然后形成本次要播放的媒 体文件的滤镜链路(步骤S404)。
在图4所示的步骤S401中备份的已有滤镜链路中各个滤镜的连接 对应关系可保存在本地的存储设备中,所备份的连接对应关系例如可 以包括源滤镜输出Pin的数据,其他滤镜输入Pin和输出Pin的凄t据, 以及源滤镜输出Pin与所连接的滤镜输入Pin之间的对应关系等。
在源滤镜处重新载入本次要播放的媒体文件的步骤S403可如下 执行通过例如分析媒体文件的头部信息获取该媒体文件的媒体信息, 然后用获取的媒体文件的媒体信息对源滤镜进行更新。这里所说的媒 体文件的媒体信息例如可包括媒体文件的格式信息(如容器格式、视 频格式、音频格式等)、视频流数目、音频流数目、码率(如视频码 率、音频码率等)、画面尺寸、音频声道数、节目时长、版权信息、 制作时间、制作工具、备注信息等。可以理解,媒体文件的媒体信息 包含了媒体文件的类型信息。因此,可对图3所示的步骤S301进行修 改,首先提取并存储媒体文件的媒体信息,然后从中选取媒体文件的 类型信息送入步骤S302进行判断。这样,在图4所示的步骤S403中, 获取媒体文件的媒体信息的操作可以直接调用之前提取并存储的媒体 文件的媒体信息。
接下来,可在步骤S404中,根据源滤镜中更新的本次要播放的媒 体文件的媒体信息以及之前备份的已有滤镜链路的连接对应关系,来 形成当前要播放的媒体文件的滤镜链路。例如,可通过以下过程来生 成当前要播放的媒体文件的滤镜链路首先,根据源滤镜中更新的媒 体文件的媒体信息,生成对应的源滤镜输出Pin;然后,根据备份的已 有滤镜链路的连接对应关系,获得源滤镜输出Pin与所连接的滤镜输入Pin之间的对应关系等;之后,结合所生成的源滤镜输出Pin以及 源滤镜输出Pin与所连接的滤镜输入Pin之间的对应关系等信息,形 成用以实现当前^番^L的滤镜链路。
在利用已有滤镜链路生成本次要播放的媒体文件的滤镜链路、或 者为本次要播放的媒体文件创建出新的滤镜链路后,可启动滤镜链路 中的媒体文件数据传输,本次要播放的媒体文件数据开始在滤镜链路 中流动,从而实现本次媒体文件的播放。
下面将参照图5~8详细描述根据本申请另一个方面的播放多个媒 体文件的系统。
如图5所示,根据本申请一个实施方案的播放多个媒体文件的系 统可包括提取单元100、判断单元200、滤镜链路生成单元300以及 播放单元400。提取单元100用于从媒体文件中提取类型信息,并可 将提取的类型信息存储在例如本地的存储设备中。判断单元200根据 提取单元IOO提供的类型信息,判断本次要播放的媒体文件的类型信 息与前次已播放的媒体文件的类型信息是否相同,并将判断结果提供 给滤镜链路生成单元300。如果判断结果表示前后两个媒体文件的类 型信息相同,则滤镜链路生成单元300可以利用为前次已播放的媒体 文件所创建的滤镜链路生成本次要播放的媒体文件的滤镜链路。之后, 播放单元400利用滤镜链路生成单元300生成的滤镜链路,实现本次 的媒体文件播放操作。
可以理解,在图5所示的播放多个媒体文件的系统中,还可进一 步包括滤镜链路创建单元(未示出)。如果经过判断单元200的判断, 本次要播放的媒体文件的类型信息与前次已播放的媒体文件的类型信 息不同,也就是说前后两个媒体文件具有不同类型因而不能使用相同 的滤镜链路,则需要由滤镜链路创建单元为本次要播放的媒体文件创 建播放所需的滤镜链路。另外,如果本次要播放的媒体文件是首个媒 体文件(例如播放列表中的第一个文件),则由于没有已有的滤镜链 路,因此需要由滤镜链路创建单元为该首个媒体文件创建滤镜链路。 本申请的滤镜链路创建单元可采用各种方式构建,例如可采用在本申 请人的第200810097544.9号未决中国专利申请(公开号为CN101272390A)中公开的创建滤镜链路的装置,此处不再赘述。
接下来将参照图6,详细描述滤镜链路生成单元300的具体结构。 根据本申请的一个示例性实施方案,滤镜链路生成单元300可包括备 份模块302、重载模块304和滤镜链路形成模块306。备份模块302 用于将前次已播放媒体文件的滤镜链路(即"已有滤镜链路")中各 个滤镜的连接对应关系进行备份,例如,可将源滤镜输出Pin的数据, 其他滤镜输入Pin和输出Pin的数据,以及源滤镜输出Pin与所连接的 滤镜输入Pin之间的对应关系等保存到例如本地的存储设备中。在断 开已有滤镜链路的源滤镜的输出连接之后,重载模块304在源滤镜处 重新载入本次要播放的媒体文件。然后,滤镜链路形成模块306根据 备份模块302和重载模块304的处理结果,为本次要播放的媒体文件 形成滤镜链路。
图6还进一步示出了根据本申请一个示例性实施方案的重载模块 304的具体结构。如图6所示,重载模块304可包括媒体信息获取模 块304-1和更新模块304-2。媒体信息获取模块304-1可通过例如分析 媒体文件的头部信息等方式来获取该媒体文件的媒体信息,然后,更 新模块304-2利用获取的媒体文件的媒体信息对源滤镜进行更新。
如前所述,媒体文件的媒体信息包含了类型信息。因此,根据本 申请的一个示例性实施方案,提取单元可具有如图6所示的具体结构, 即,进一步包括获取媒体文件媒体信息的媒体信息提取模块102以及 从媒体信息中选取出类型信息的类型信息选取模块104,其中,由媒 体信息提取模块102通过例如解析媒体文件的头部信息获得的媒体信 息可保存在存储设备中。可以理解,当提取单元具有上述结构时,媒 体信息获取模块304-1可不必通过例如解析媒体文件的头部信息等方 式来获取媒体信息,而是直接从存储设备中读取已通过媒体信息提取 模块102提取并存储的媒体文件的媒体信息,以节省系统开销。
以上参照附图对本申请的示例性的实施方式进行了描述。本领域技 术人员应该理解,上述实施方式仅仅是为了说明的目的而所举的示例, 而不是用来进行限制。凡在申请的教导和权利要求保护范围下所作的任 何修改、等同替换等,均应包含在本申请要求保护的范围内。
权利要求
1.播放多个媒体文件的方法,包括从当前媒体文件提取类型信息;根据所提取的类型信息,判断当前媒体文件与上一媒体文件是否为相同类型;如果当前媒体文件与上一媒体文件为相同类型,则利用上一媒体文件的滤镜链路生成当前媒体文件的滤镜链路,否则,创建当前媒体文件的滤镜链路;播放当前媒体文件。
2. 如权利要求l所述的方法,其中,在所述从当前媒体文件提取 类型信息的步骤之前,所述方法进一步包括为首个媒体文件创建滤镜链路。
3. 如权利要求1或2所述的方法,其中,利用上一媒体文件的滤 镜链路生成当前媒体文件的滤镜链路包括备份所述上一媒体文件的滤镜链路的连接对应关系; 断开所述上一媒体文件的滤镜链路的源滤镜的输出连接; 在所述源滤镜处重新载入所述当前媒体文件; 形成所述当前媒体文件的滤镜链路。
4. 如权利要求3所述的方法,其中,在所述源滤镜处重新载入所 述当前媒体文件包括获取所述当前媒体文件的媒体信息;利用获取的所述当前媒体文件的媒体信息,更新所述源滤镜。
5. 如权利要求l所述的方法,其中,从所述当前媒体文件提取类 型信息包括提取当前媒体文件的媒体信息;从提取的所述媒体信息中选取类型信息。
6.播放多个媒体文件的系统,包括 提取单元,从当前媒体文件提取类型信息;判断单元,根据提取的类型信息,判断当前媒体文件与上一媒体 文件是否为相同类型;滤镜链路生成单元,根据所述判断单元的判断,利用上一媒体文 件的滤镜链路生成当前媒体文件的滤镜链路;播放单元,播放当前媒体文件。
7.如权利要求6所述的系统,进一步包括滤镜链路创建单元,所 述滤镜链路创建单元为媒体文件创建滤镜链路。
8.如权利要求6所述的系统,其中,所述滤镜链路生成单元包括 备份模块,备份上一媒体文件的滤镜链路的连接对应关系; 重载模块,在上一媒体文件的滤镜链路的源滤镜处重新载入当前 i某体文件;以及形成模块,形成当前媒体文件的滤镜链路。
9.如权利要求8所述的系统,其中,所述重载模块包括 媒体信息获取模块,获取当前媒体文件的媒体信息;以及 更新模块,使用获取的所述当前媒体文件的媒体信息,更新所述 源滤4竟。
10.如权利要求6所述的系统,其中,所述提取模块进一步包括:媒体信息提取模块,提取当前媒体文件的媒体信息;类型信息选取模块,从提取的所述媒体信息中选取出类型信息。
全文摘要
本申请公开了一种播放多个媒体文件的方法和系统。播放多个媒体文件的方法包括从当前媒体文件提取类型信息;根据所提取的类型信息,判断当前媒体文件与上一媒体文件是否为相同类型;如果当前媒体文件与上一媒体文件为相同类型,则利用上一媒体文件的滤镜链路生成当前媒体文件的滤镜链路,否则,创建当前媒体文件的滤镜链路;播放当前媒体文件。根据本申请的播放多个媒体文件的方法和系统能够提高播放多个媒体文件时的切换速度。
文档编号G06F17/30GK101552791SQ20091014328
公开日2009年10月7日 申请日期2009年5月22日 优先权日2009年5月22日
发明者李世平, 郑全战 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1