CN103165151B - 多媒体文件播放方法和装置 - Google Patents
多媒体文件播放方法和装置 Download PDFInfo
- Publication number
- CN103165151B CN103165151B CN201310108735.1A CN201310108735A CN103165151B CN 103165151 B CN103165151 B CN 103165151B CN 201310108735 A CN201310108735 A CN 201310108735A CN 103165151 B CN103165151 B CN 103165151B
- Authority
- CN
- China
- Prior art keywords
- resolver
- multimedia file
- queue
- file
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明实施例提供一种多媒体文件播放方法和装置。本发明多媒体文件播放方法,包括:当接收多媒体文件的打开指令时,根据设定的优先级规则对多个解析器进行排序,形成解析器队列;按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器,采用获得的解析器,对多媒体文件进行解封装处理,并输出基本数据流。通过采用本发明提供的多媒体文件播放方法,提高了识别多媒体文件的速度和正确率。
Description
技术领域
本发明实施例涉及多媒体文件数据处理技术,尤其涉及一种多媒体文件播放方法和装置。
背景技术
当前计算机中或网络多媒体中,包含音视频内容的文件类型非常多,如mp3格式、mp4格式、mkv格式、ts格式等;同时音视频编码格式也非常多,如音频有mpeg-2、ac3、aac等编码格式,视频有H264、mpeg2、vc1等编码格式。这些音视频与字幕内容可能通过多种封装方式组合成一个文件用于传播或分发。
多媒体文件播放的一般过程为:文件识别过程,音视频编码格式识别过程,音频解码、视频解码及字幕解码过程,同步与输出过程。由于文件类型非常多,内含的音视频编码格式也可能有很多种,因此对一个文件,从打开文件到提取出音视频及字幕的基本数据流用于解码和输出需要经过很多的准备过程:包括封装方式识别(即文件识别),音视频编码方式识别,文件时长识别,元数据识别,帧列表识别,帧边界识别等。然后按照一定封装规则提取出解码器可以识别的帧数据或基本数据流。最初的文件识别,主要是识别封装方式,找到能进行解封装的对应解析器。所以文件识别过程是一个漫长的尝试和检测校验过程。为了快速和准确的进行多媒体文件的文件识别,现有技术已经提出了多种方案。
例如,可根据文件的后缀名进行识别,如常见的mp3播放器软件只识别后缀名为mp3格式的或wma格式文件,其他格式的文件不能用此类软件打开。这种方法能够快速根据后缀名确定文件封装方式,直接使用mp3文件类型的解析器对文件进行识别以快速获取基本数据流。但是这种方式支持类型有限,并且一旦后缀名被人为破坏或更改,将无法用此类软件打开或播放文件内容。
另外,一些多功能播放器软件中内置了一批文件解析器。当某一个多媒体文件被该软件打开时,软件会将文件头部或文件其他关键部位信息,作为识别信息,与这一批文件解析器进行逐一轮询。若第一个解析器不识别,转交第二个解析器进行识别,直到找到能够识别该文件的文件解析器,然后进行播放。或全部轮训完毕得到该文件无法被该软件打开的结论。这种方式不关心也不担心文件后缀名的更改或破坏,能够尽最大可能的提高文件的识别能力,但是逐一轮询的方式会消耗大量的时间,尤其是在列表播放时快速切换文件进行预览时,长时间的等待正确识别和音视频输出会严重影响用户体验。
如何面对海量文件格式,能够快速识别文件封装格式进而快速输出音视频内容给观众,是体现一个多媒体播放器性能的标准之一。
发明内容
本发明实施例提供一种多媒体文件播放方法和装置,以快速识别到正确的解析器。
第一方面,本发明实施例提供一种多媒体文件播放方法,包括:
当接收多媒体文件的打开指令时,根据设定的优先级规则对多个解析器进行排序,形成解析器队列;
按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器;
采用获得的解析器,对多媒体文件进行解封装处理,并输出基本数据流。
在第一方面的第一种可能的实现方式中,根据设定的优先级规则对多个解析器进行排序,形成解析器队列包括:
根据设定的优先级规则对多个解析器进行排序,形成解析器队列包括:
根据多媒体文件的属性信息,对多个解析器进行排序,形成解析器队列。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,
根据多媒体文件的属性信息,对多个解析器进行排序,形成解析器队列包括:
根据多媒体文件的属性信息,结合各解析器的属性信息、或播放历史信息与解析器的关联关系,对多个解析器进行排序,形成解析器队列。
根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述各解析器的属性信息包括:解析复杂度、所需字节长度、文件解析器平均消耗的计算时间或文件解析器重复需要尝试的次数;
所述播放历史信息包括:历史播放网站访问概率或各文件格式的历史播放概率。
所述多媒体文件的属性信息为通用资源标识符,所述通用资源标识符包括:文件的协议类型、多媒体文件所在的网站或文件后缀名。
根据第一方面、第一方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器包括:
根据系统处理能力、场景辨识或人工干预将排序后的各解析器进行分组,形成多个解析器队列;
按照每个解析器队列中的排序,通过每个所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器。
根据第一方面、第一方面的第一种至第三种可能的实现方式的任意一种,在第五种可能的实现方式中,按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器包括:
根据系统处理能力、场景辨识或人工干预建立至少两个解析器组;
按照解析器队列的排序,向每个解析器组添加至少一个解析器,形成至少两个解析器子队列;
通过每个解析器子队列中的解析器逐一对获取到的多媒体文件进行识别;
在未识别到对应的解析器时,按照所述解析器队列的排序,将后续的各解析器添加至已识别完成的空闲解析器组中对多媒体文件进行识别,直至识别到与多媒体文件对应的解析器。
第二方面,本发明实施例提供一种多媒体文件播放装置,包括:
解析器排序模块,用于当接收多媒体文件的打开指令时,根据设定的优先级规则对多个解析器进行排序,形成解析器队列;
解析器识别模块,用于按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器;
解封装处理模块,用于采用获得的解析器,对多媒体文件进行解封装处理,并输出基本数据流。
在第二方面的第一种可能的实现方式中,解析器排序模块具体用于
根据多媒体文件的属性信息,对多个解析器进行排序,形成解析器队列。
根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,
根据多媒体文件的属性信息,对多个解析器进行排序,形成解析器队列包括:
根据多媒体文件的属性信息,结合各解析器的属性信息、或播放历史信息与解析器的关联关系,对多个解析器进行排序,形成解析器队列。
根据第二方面的第二种可能的实现方式,在第三种可能的实现方式中,
所述各解析器的属性信息包括:解析复杂度、所需字节长度、解析器平均消耗的计算时间或文件解析器重复需要尝试的次数;
所述播放历史信息包括:历史播放网站访问概率或各文件格式的历史播放概率。
所述多媒体文件的属性信息为通用资源标识符,所述通用资源标识符包括:文件的协议类型、多媒体文件所在的网站或文件后缀名。
根据第二方面、第二方面的第一种至第三种可能的实现方式的任意一种,在第四种可能的实现方式中,解析器识别模块包括:
解析器分组单元,用于根据系统处理能力、场景辨识或人工干预将排序后的各解析器进行分组,形成多个解析器队列;
解析器识别单元,用于按照每个解析器队列中的排序,通过每个所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器。
根据第二方面、第二方面的第一种至第三种可能的实现方式的任意一种,在第五种可能的实现方式中,解析器识别模块包括:
解析器队列建立单元,用于根据系统处理能力、场景辨识或人工干预建立至少两个解析器组;
解析器添加单元,用于按照解析器队列的排序,向每个解析器组添加至少一个解析器,形成至少两个解析器子队列;
多媒体文件识别单元,用于通过每个解析器子队列中的解析器逐一对获取到的多媒体文件进行识别;
解析器队列优化单元,用于在未识别到对应的解析器时,按照所述解析器队列的排序,将后续的各解析器添加至已识别完成的空闲解析器组中对多媒体文件进行识别,直至识别到与多媒体文件对应的解析器。
本发明实施例提供的技术方案,由于按照设定的优先级规则对解析器进行了排序,所以能够更快地在解析器队列中识别出与多媒体文件对应的解析器,提高了识别速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所提供的多媒体文件的播放方法的流程图;
图2为本发明实施例二所提供的多媒体文件的播放方法的流程图;
图3为本发明实施例三所提供的多媒体文件的播放方法的流程图;
图4A为本发明实施例四所提供的多媒体文件的播放方法的示意图;
图4B为本发明实施例四所提供的多媒体文件的播放方法的流程图;
图5为本发明实施例五所提供的多媒体文件播放装置的结构示意图;
图6为本发明实施例六所提供的多媒体文件播放装置600的结构示意图;
图7为本发明实施例七所提供的一个多媒体文件播放器的基本组成示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一所提供的多媒体文件的播放方法的流程图。本实施例的方法适用于在打开多媒体文件时,快速找到最合适的解析器对多媒体文件进行最快的识别和解析。本实施例的多媒体文件的播放方法可以由配置在计算机、播放器、电视机、手机、手持多媒体终端等的多媒体文件的播放装置来执行,该播放装置可以由硬件或软件的形式实现。本实施例的方法包括如下步骤:
步骤110、当接收多媒体文件的打开指令时,根据设定的优先级规则对多个解析器进行排序,形成解析器队列;
本实施例典型地适用于可提供多种解析器的多功能媒体播放器软件,在进行多媒体文件识别之前,首先依据优先级规则对解析器进行重新排序,而区别于现有技术的解析器队列始终固定不变的方案。所谓的优先级规则可以有多种,例如按照解析器的属性信息等进行排序。
所述的优先级规则指的是需要参考多种因素对解析器进行排序,所述的多种因素例如是文件解析器相关的因素,即各解析器的属性信息,一般是指能区分其解析多媒体文件能力的信息。解析器的属性信息优选可包括解析器的解析复杂度、所需字节长度、解析器平均消耗的计算时间或解析器重复需要尝试的次数等,上述属性信息可以单独用来排序,也可以结合多个属性用来进行解析器排序。所需字节长度即解析器识别多媒体文件可能需要的输入数据的长度。此外,文件特性、协议类型、网络下载速度等影响到数据读取和计算等各方面因素也可作为对解析器进行排序的依据。
优先级规则可随当前情况动态变化,也可以由用户维护更新。例如,根据解析器的算法复杂度对多个解析器进行了重排序后得到了一个解析器队列,在逐一通过该解析器队列中的解析器对获取到的多媒体文件进行识别的过程中,如果该解析器队列中的前两个解析器都不能识别该多媒体文件,则可以按照解析器平均消耗的计算时间对其余的解析器进行重新排序。
对于优先级规则,还可以通过场景辨识,人工干预等确定解析器的排序,从而实现最快的识别和解析速度。通过场景辨识的方法识别解析器排序,例如可以是判断当前场景是直播或点播,例如某些网站提供直播和点播专区,而当前多数的直播场景是通过HLS的方式进行直播的,所以可预先设置一优先级规则为,在识别到多媒体文件打开的场景是直播场景时,就选择HLS解析器的排序优先。在此基础上,后面的解析器可以根据其他属性信息进行排序。
优先级规则也可以是根据多媒体文件所在路径对解析器进行排序。例如对于电视录制(PVR)的文件一般提供一个.ts后缀名的文件,同时提供一个.idx的服务索引文件,如果是发现需要打开的.ts文件相同目录下有.idx的文件,则可以将pvr的文件解析器优先排序。再例如蓝光文件的文件夹也符合某些特定规则,播放器可以通过目录敏感性等方式识别出当前播放可能是蓝光播放场景/pvr播放场景等,将使用场景支持的解析器进行优先排序。
通过人工干预的方法对解析器进行排序的优先级规则,例如可以是根据多媒体文件的IP地址和解析器的关联关系强行把IP地址对应的解析器排在解析器队列的最前面,从而最先使用排在最前面的解析器进行识别解析。
上述各种优先级规则可以单独采用也可以结合采用,例如在场景辨识的优先级规则基础上,再使用基于人工干预的优先级规则。
步骤120、按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器;
步骤130、采用获得的解析器,对多媒体文件进行解封装处理,并输出基本数据流。
具体而言,通过根据设定的优先级规则对多个解析器进行排序,形成解析器队列,再按照解析器的排序,采用解析器注意对获取到的多媒体文件进行识别,以识别到对应的解析器,以实现采用最适合的解析器对多媒体文件进行解封装处理并输出基本数据流。
本发明实施例提供的多媒体文件播放方法,通过在打开多媒体文件时,考虑到设定的优先级规则对多个解析器进行排序,从而能够实现快速准确的找到解析器对多媒体文件进行解封装处理,进而实现快速的音视频字幕输出,提升了用户体验。
进一步的,在上述实施例的基础上,步骤110的具体执行操作为:根据各解析器的属性信息、播放历史信息与解析器的关联关系、和多媒体文件的属性信息中的一个或任意组合,对多个解析器进行排序,形成解析器队列。优选是可以根据多媒体文件的属性信息对多个解析器进行排序,形成解析器队列。当然,在本可选择的实施例中,也可以根据多媒体文件的属性信息,并结合各解析器的属性信息、播放历史信息与解析器的关联关系,对解析器进行排序。所述多媒体文件的属性信息为通用资源标识符(URI),所述URI包括:文件的协议类型、多媒体文件所在的网站和文件后缀名中的一个或任意组合。
所述各解析器的属性信息可以包括:解析器的算法复杂度、所需字节长度、解析器平均消耗的计算时间或解析器重复需要尝试的次数。
所述播放历史信息可以包括:历史播放网站访问概率或各文件格式的历史播放概率。
上述的根据多媒体文件的属性信息,并结合解析器的属性信息、或播放历史信息与解析器的关联关系,对多个解析器进行排序,形成解析器队列可以参考下面的具体操作来说明:
例如一个多媒体文件交给播放器中的文件解析器进行识别时包含的因素主要是多媒体文件的URI,例如URI=http://video.qiyi.com/live/003.m3u8,所述URI包括文件的协议类型(http://协议),多媒体文件所在的网站(qiyi.com),文件后缀名(.m3u8)信息,根据此URI类型,可以得到的信息是:后缀名(.m3u8)类型基本使用httplivestreaming的HLS的文件解析器,因此可以将HLS的解析器作为最优选的解析器,排序在先。
再根据本地解析器的解析复杂度知道的信息是,HLS的解析器只需要对前面几行信息进行识别,如不超过128字节就可以确定是否是HLS可以识别的文件。综合得到的信息是:HLS作为最优选识别器,识别时间为1个运算周期(为容易理解1个运算周期此处可以简单定义为:对于1GHz的CPU运算周期是10ms),使用字节长度128字节。
其次,根据URI,.m3u8文件类型是基于ts文件分片的文件列表类型,文件内容还有可能是ts类型或mp3的playlist列表类型。再根据解析ts文件的解析器的解析复杂度(如大约需要100个运算周期)和识别ts文件需要的数据长度(对ts文件,默认设置的512K字节可能是不够的,大概需要2048K数据),mp3的playlist解析器可能需要0.5个运算周期,使用64个字节即可。
综上URI信息和本地解析器的解析复杂度,我们可以优先使用HLS的解析器,其次使用MPEGTS解析器(ts格式的解析器),然后是M3U(mp3playlist解析器)解析器,文件读取使用http方式,可以先下载128字节供HLS解析器使用,后续再下载2048K字节给MPEGTS解析器使用。
上述的对解析器进行排序的过程考虑了http协议的数据下载耗时,HLS及MPEGTS等解析器的算法复杂度,每个解析器使用的数据长度和URI。同时,对于之前播放过的历史信息,类似URI:http://video.qiyi.com/live/001.m3u8或002.m3u8等符合设定规律的一批文件,设定规律例如是多媒体文件来自同一路径且多媒体文件后缀名相同的文件,但不限于此。最终使用的是MPEGTS文件解析器,这样003.m3u8可以优选MPEGTS作为最优解析器使用。
实施例二
图2为本发明实施例二所提供的多媒体文件的播放方法的流程图,在上述实施例技术方案的基础上,进一步进行了优化。参照图2,本实施例中,按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器的操作具体包括如下步骤:
步骤210、根据系统处理能力、场景辨识或人工干预将排序后的各解析器进行分组,形成多个解析器队列;
步骤220、按照每个解析器队列中的排序,通过每个所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器。
本发明实施例通过分组形成了多个解析器队列,特别适用于具备多核并行处理能力的情况,多媒体文件可以在多个解析器队列同时进行识别,从而进一步提高了识别解析器的速度。根据系统处理能力、场景辨识或人工干预所进行的分组,主要可考虑可并行处理的各系统的负载情况。例如,若当前有两个并行处理单元空闲,则可将解析器分为两组,启用两个任务对解析器队列进行遍历。
实施例三
图3为本发明实施例三所提供的多媒体文件的播放方法的流程图,在上述实施例一的基础上,进一步进行了优化。参照图3,本实施例中仍然适用于多核处理系统,在对解析器进行排序之后,按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器的操作具体也可以包括如下步骤:
步骤310、根据系统处理能力、场景辨识或人工干预建立至少两个解析器组;
本实施例中,首先是建立一个或多个解析器组,优选是至少两个解析器组,而并不确定每个解析器归属于哪个组。
步骤320、按照解析器队列的排序,向每个解析器组添加至少一个解析器,形成至少两个解析器子队列;
在前述步骤110已排序的解析器队列中,按照排序逐个选择解析器,添加至各解析器中,每组中形成一个解析器子队列。不必将所有已排序的解析器都添加至解析器组中,优选是每组的解析器子队列仅包括一个解析器。
步骤330、通过每个解析器子队列中的解析器逐一对获取到的多媒体文件进行识别;
由于有多个解析器子队列,所以多核处理系统可以并行对各个子队列进行文件识别。
步骤340、在未识别到对应的解析器时,按照所述解析器队列的排序,将后续的解析器添加至已识别完成的空闲解析器组中对多媒体文件进行识别,直至识别到与多媒体文件对应的解析器。
若某个解析器子队列获取到对应的解析器,则识别操作停止,否则,按照解析器队列的排序,将后续的解析器逐个添加至已识别完的解析器组中,继续识别。
本发明实施例提供的多媒体文件播放方法,一方面能多核并行处理来提高速度,另一方面,各解析器组的解析器并非初始时即确定,而是随着识别的过程逐个添加到组中,则避免出现某个解析器子队列的处理速度快,而变为空闲,所以能充分利用多核并行处理的功能。本实施例中,在识别过程中,可以根据解析器识别情况、解析器执行时间或解析器算法复杂度对解析队列进行优化,可以将后续的未进行识别的解析器按照优先级顺序分配到已经识别过的解析器所在的子队列中进行识别,或者根据系统能力,开辟一个新的解析器子队列进行识别。上述动态将解析器进行分组的方法保证了解析器的整体优先级顺序,加快了解析器的识别速度和解析速度。
实施例四
本发明实施例四提供了一种多媒体文件播放方法的优选实例,在该实例中,以包括四种解析器为例进行说明。图4A为本发明实施例四所提供的多媒体文件的播放方法的示意图,参照图4A,A、B、C和D分别代表四个具体的解析器,将排序后的解析器队列A-C-B-D分解成两个任务队列,第一个任务队列为A-D,第二个任务队列为C-B。图4B为本发明实施例四所提供的多媒体文件的播放方法的流程图,参照图4B,本发明实施例的播放方法的具体操作可以为:
步骤410、通过根据设定的优先级规则对所述的四个解析器进行排序,形成一个按照优先级顺序排序的解析器队列A-C-B-D;
步骤420、考虑当时系统处理能力能支持同时开启两个任务队列进行处理,可以将上述的解析器队列A-C-B-D分解成两个任务队列。
上述的排序方式只是一个示例,需要考虑各种因素,根据设定的优先级规则对解析器进行排序,形成一个按照优先级顺序排序的队列。
上述的考虑当时系统处理能力能支持同时开启两个任务队列进行处理,可以将上述的解析器队列A-C-B-D分解成两个任务队列的具体执行操作可以为:
第一个任务队列为使用A-D解析器的任务队列,第二个任务队列为使用C-B解析器的任务队列。
原因为考虑到A解析器的优先级虽然最高,但A解析器的算法复杂度或平均文件解析识别时间比较长,C解析器的优先级虽然低于A解析器的优先级,但C解析器的算法复杂度或平均文件解析识别时间较短。这样既考虑到了解析器的优先级(可以实现从优先级最高的解析器开始),也考虑到了两组任务队列的执行时间(第一个队列的遍历时间和第二个队列的遍历时间接近),又考虑到了后续的解析器按照优先级进行解析(B解析器的执行时间早于低优先级的D解析器的时间)。
也可以对这个按照优先级顺序排序的队列进行动态分组。例如上述队列中A解析器的执行时间(如得到不识别该文件的结论)早于C解析器的执行时间,此时待处理的最优选的是B解析器,因此可以将B解析器实时分配给A解析器所在的任务队列进行处理,以保证解析器队列A-C-B-D解析器的整体优先级顺序。
或者在执行过程中,由于其他模块或运算单元释放了部分系统计算能力,此时可以开辟一个新的任务队列进行执行,可以动态将待处理的B解析器放入新任务队列中进行处理,也保证了解析器队列A-C-B-D的整体优先级顺序。
解析器的分组方法也可以在播放器的使用过程中,进行智能学习和智能扩充。例如某一用户总喜欢在某一个网站中观看某连续剧,这样我们可以收集更多历史信息作为参考,方便进行快速视频切换或无缝的连续剧播放。例如另一用户喜欢从硬盘中播放海量视频,这种情况下可以把先期进行的媒体扫描数据作为优先参考信息,快速识别出解析器并输出音视频字幕数据流,加快了多媒体文件的切换时间,提升了用户体验。
本发明实施例中按照设定的优先级规则对解析器进行排序和根据系统能力、场景辨识或人工干预对按照优先级顺序排序的解析器队列进行分组的方法,采用了两个或多个任务队列并行处理,因此本发明实施例还可能同时得到两个都支持的解析器,如对某一个ts文件,一个任务得到MPEG支持该文件,另一任务几乎同时得到MPEGTS也支持该文件,这种情况下还可以对这两个解析器再进行一轮筛选,使用更多信息来检测(这些信息可以是媒体扫描、后缀名、历史信息、解析器复杂度等信息),保证检测的准确度更加精确,例如得到MPEGTS是最支持该文件的解析器。本发明实施例采用两个任务队列并行处理的方式,避免了单任务中首先遍历到MPEG解析器后就终止,从而错过最精确的MPEGTS解析器,不但充分利用了系统资源,而且提高了识别解析器的速度和解析器识别多媒体文件的正确率。
实施例五
图5为本发明实施例五所提供的多媒体文件播放装置的结构示意图,本实施例的多媒体文件播放装置包括如下模块:解析器排序模块610、解析器识别模块620和解封装处理模块630。
其中,解析器排序模块610用于当接收多媒体文件的打开指令时,根据设定的优先级规则对多个解析器进行排序,形成解析器队列;解析器识别模块620用于按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器;解封装处理模块630用于采用获得的解析器,对多媒体文件进行解封装处理,并输出基本数据流。
上述方案中,解析器排序模块610具体可用于根据多媒体文件的属性信息,对多个解析器进行排序,形成解析器队列,其中,根据多媒体文件的属性信息,对多个解析器进行排序,形成解析器队列包括:根据多媒体文件的属性信息,结合各解析器的属性信息、或播放历史信息与解析器的关联关系,对多个解析器进行排序,形成解析器队列。
所述各解析器的属性信息优选包括:解析复杂度、所需字节长度、解析器平均消耗的计算时间或解析器重复需要尝试的次数;
所述播放历史信息优选包括:历史播放网站访问概率或各文件格式的历史播放概率;
所述多媒体文件的属性信息为URI,URI包括:文件的协议类型、多媒体文件所在的网站或文件后缀名。
本发明实施例所提供的多媒体文件播放装置可以用于执行本发明任意实施例提供的多媒体文件播放方法,具备相应的功能模块和有益效果。
在上述方案中,解析器识别模块620可具体包括解析器分组单元621和解析器识别单元622。
其中,解析器分组单元621用于根据系统处理能力、场景辨识或人工干预将排序后的各解析器进行分组,形成多个解析器队列;解析器识别单元622用于按照每个解析器队列中的排序,通过每个所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器。
本发明实施例提供的多媒体文件播放装置,通过根据系统处理能力、场景辨识或人工干预将排序后的各解析器进行分组,形成多个解析器队列,将每个解析器队列中的解析器对多媒体文件进行识别,获得多媒体文件对应的解析器。从而提高了识别解析器的速度。
实施例六
图6为本发明实施例六所提供的多媒体文件播放装置600的结构示意图,参照图6,多媒体文件播放装置600包括解析器排序模块610,解析器识别模块620和解封装处理模块630,其中解析器识别模块620具体也可以包括如下单元:解析器队列建立单元6211,解析器添加单元6212,多媒体文件识别单元6213和解析器队列优化单元6214。
其中,解析器队列建立单元6211用于根据系统处理能力、场景辨识或人工干预建立至少两个解析器组;解析器添加单元6212用于按照解析器队列的排序,向每个解析器组添加至少一个解析器,形成至少两个解析器子队列;多媒体文件识别单元6213用于通过每个解析器子队列中的解析器逐一对获取到的多媒体文件进行识别;解析器队列优化单元6214用于在未识别到对应的解析器时,按照所述解析器队列的排序,将后续的各解析器添加至已识别完成的空闲解析器组中对多媒体文件进行识别,直至识别到与多媒体文件对应的解析器。
本发明实施例提供的多媒体文件播放装置,通过根据系统处理能力、场景辨识或人工干预建立各组解析器队列,以形成至少两个解析器组,可以解析器队列的排序向每个解析器组中分别添加至少一个解析器形成至少两个解析器子队列,再通过每个解析器子队列中的解析器逐一对获取的多媒体文件进行识别。在识别过程中,根据解析器识别情况、解析器执行时间或解析器算法复杂度对解析队列进行优化,可以将后续的未执行任务的解析器按照优先级顺序分配到已经执行完任务的解析器所在的子队列中进行识别,或者可以根据系统能处理力,开辟一个新的解析器子队列进行识别。保证了解析器的整体优先级顺序,加快了解析器的识别速度和解析速度。
综上所述,本发明各实施例的技术方案,通过优化解析器排序和识别过程,能够快速地识别出多媒体文件的封装格式所适用的解析器,获得基本数据流,进而能够实现快速的音视频输出,提升了用户的使用体验。
本发明实施例提供的多媒体文件播放装置可适用于各种多媒体文件播放器,除了文件识别功能之外,播放器一般还包括识别器和数据提取器等,识别器可用于将文件头数据送入具体的文件解析器中进行识别。数据提取器用于提取多媒体文件中的基本数据流,并把提取出来的基本数据流提供给解码器进行解码及后续的输出工作。
实施例七
图7为本发明实施例七所提供的一个多媒体文件播放器的基本组成示意图,参照图7,一个多媒体文件播放器的基本组成主要包括:文件解析模块710,包含了所有的解析器,如MOV、MPEGTS、MP3等多种具体的解析器;数据获取模块720,主要用于读取磁盘或网络中的多媒体文件内容,通过各种存储设备或网络协议类型(如http/rtsp/file等协议)实现多媒体文件的内容读取以及seek操作等;解码器模块730,主要用于将解析器中由某一个具体的解析器对多媒体文件进行解析,提取到基本数据流并对基本数据流进行解码,形成输出设备可以识别的内容;同步处理模块740,主要用于将多媒体文件的基本数据流进行同步处理;输出模块750,主要是将解码后的基本数据流输出到输出设备上,提供给观众收看。
本发明实施例提供的多媒体文件播放器可以包括本发明实施例提供的多媒体文件播放装置,该装置可与文件解析模块710连接,对解析器进行排序和识别。该装置可以与数据获取模块720连接,基于获取的多媒体文件的属性或历史信息等来对解析器进行排序。该装置可以与解码器模块730连接,把通过该装置处理后获取的基本数据流输出给解码器模块730进行解码。该装置还可以与同步处理模块740连接,由同步处理模块对该装置输出的基本数据流进行同步处理。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种多媒体文件播放方法,其特征在于,包括:
当接收多媒体文件的打开指令时,根据设定的优先级规则对多个解析器进行排序,形成解析器队列;
按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器;
采用获得的解析器,对多媒体文件进行解封装处理,并输出基本数据流;
其中,按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器包括:
根据系统处理能力、场景辨识或人工干预将排序后的各解析器进行分组,形成多个解析器队列;按照每个解析器队列中的排序,通过每个所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器;或者
根据系统处理能力、场景辨识或人工干预建立至少两个解析器组;按照解析器队列的排序,向每个解析器组添加至少一个解析器,形成至少两个解析器子队列;通过每个解析器子队列中的解析器逐一对获取到的多媒体文件进行识别;在未识别到对应的解析器时,按照所述解析器队列的排序,将后续的解析器添加至已识别完成的空闲解析器组中对多媒体文件进行识别,直至识别到与多媒体文件对应的解析器。
2.根据权利要求1所述的方法,其特征在于,根据设定的优先级规则对多个解析器进行排序,形成解析器队列包括:
根据多媒体文件的属性信息,对多个解析器进行排序,形成解析器队列。
3.根据权利要求2所述的方法,其特征在于,根据多媒体文件的属性信息,对多个解析器进行排序,形成解析器队列包括:
根据多媒体文件的属性信息,结合各解析器的属性信息、或播放历史信息与解析器的关联关系,对多个解析器进行排序,形成解析器队列。
4.根据权利要求3所述的方法,其特征在于:
所述各解析器的属性信息包括:解析复杂度、所需字节长度、解析器平均消耗的计算时间或解析器重复需要尝试的次数;
所述播放历史信息包括:历史播放网站访问概率或各文件格式的历史播放概率;
所述多媒体文件的属性信息为通用资源标识符,所述通用资源标识符包括:文件的协议类型、多媒体文件所在的网站或文件后缀名。
5.一种多媒体文件播放装置,其特征在于,包括:
解析器排序模块,用于当接收多媒体文件的打开指令时,根据设定的优先级规则对多个解析器进行排序,形成解析器队列;
解析器识别模块,用于按照排序,逐一通过所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器;
解封装处理模块,用于采用获得的解析器,对多媒体文件进行解封装处理,并输出基本数据流;
其中,解析器识别模块包括:
解析器分组单元,用于根据系统处理能力、场景辨识或人工干预将排序后的各解析器进行分组,形成多个解析器队列;解析器识别单元,用于按照每个解析器队列中的排序,通过每个所述解析器队列中的解析器对获取到的多媒体文件进行识别,以获得与所述多媒体文件对应的解析器;或者
解析器识别模块包括:
解析器队列建立单元,用于根据系统处理能力、场景辨识或人工干预建立至少两个解析器组;解析器添加单元,用于按照解析器队列的排序,向每个解析器组添加至少一个解析器,形成至少两个解析器子队列;多媒体文件识别单元,用于通过每个解析器子队列中的解析器逐一对获取到的多媒体文件进行识别;解析器队列优化单元,用于在未识别到对应的解析器时,按照所述解析器队列的排序,将后续的各解析器添加至已识别完成的空闲解析器组中对多媒体文件进行识别,直至识别到与多媒体文件对应的解析器。
6.根据权利要求5所述的装置,其特征在于,解析器排序模块具体用于
根据多媒体文件的属性信息,对多个解析器进行排序,形成解析器队列。
7.根据权利要求6所述的装置,其特征在于,根据多媒体文件的属性信息,对多个解析器进行排序,形成解析器队列包括:
根据多媒体文件的属性信息,结合各解析器的属性信息、或播放历史信息与解析器的关联关系,对多个解析器进行排序,形成解析器队列。
8.根据权利要求7所述的装置,其特征在于:
所述各解析器的属性信息包括:解析复杂度、所需字节长度、解析器平均消耗的计算时间或解析器重复需要尝试的次数;
所述播放历史信息包括:历史播放网站访问概率或各文件格式的历史播放概率;
所述多媒体文件的属性信息为通用资源标识符,所述通用资源标识符包括:文件的协议类型、多媒体文件所在的网站或文件后缀名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310108735.1A CN103165151B (zh) | 2013-03-29 | 2013-03-29 | 多媒体文件播放方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310108735.1A CN103165151B (zh) | 2013-03-29 | 2013-03-29 | 多媒体文件播放方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103165151A CN103165151A (zh) | 2013-06-19 |
CN103165151B true CN103165151B (zh) | 2016-03-30 |
Family
ID=48588171
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310108735.1A Active CN103165151B (zh) | 2013-03-29 | 2013-03-29 | 多媒体文件播放方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103165151B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105812847A (zh) * | 2014-12-31 | 2016-07-27 | 中国电信股份有限公司 | Hls视频直播方法、服务器及系统 |
CN106406969A (zh) * | 2015-07-29 | 2017-02-15 | 中兴通讯股份有限公司 | 文件解析方法及装置 |
CN105070303B (zh) * | 2015-08-25 | 2017-11-24 | 广东欧珀移动通信有限公司 | 一种音箱分组方法及终端 |
CN107180054B (zh) * | 2016-03-11 | 2020-05-12 | 阿里巴巴集团控股有限公司 | 一种数据处理的方法和装置 |
CN107037977B (zh) * | 2016-10-14 | 2020-04-07 | 惠州Tcl移动通信有限公司 | 一种基于移动终端的数据写入控制方法及系统 |
CN107871500B (zh) * | 2017-11-16 | 2021-07-20 | 百度在线网络技术(北京)有限公司 | 一种播放多媒体的方法和装置 |
CN109246158A (zh) * | 2018-11-20 | 2019-01-18 | 北京数码视讯软件技术发展有限公司 | 视频解码方法和装置 |
CN111125026A (zh) * | 2019-12-23 | 2020-05-08 | 京东数字科技控股有限公司 | 流水文件的分析处理方法、装置、设备和存储介质 |
CN111506747B (zh) * | 2020-04-16 | 2023-09-08 | Oppo(重庆)智能科技有限公司 | 文件解析方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1276941A (zh) * | 1997-10-16 | 2000-12-13 | 汤姆森特许公司 | 按优先序排列双向广播数据的系统 |
CN101577110A (zh) * | 2009-05-31 | 2009-11-11 | 腾讯科技(深圳)有限公司 | 视频播放方法及视频播放器 |
CN103067759A (zh) * | 2011-10-19 | 2013-04-24 | 深圳市快播科技有限公司 | 播放链路的建立方法、装置及播放器 |
-
2013
- 2013-03-29 CN CN201310108735.1A patent/CN103165151B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1276941A (zh) * | 1997-10-16 | 2000-12-13 | 汤姆森特许公司 | 按优先序排列双向广播数据的系统 |
CN101577110A (zh) * | 2009-05-31 | 2009-11-11 | 腾讯科技(深圳)有限公司 | 视频播放方法及视频播放器 |
CN103067759A (zh) * | 2011-10-19 | 2013-04-24 | 深圳市快播科技有限公司 | 播放链路的建立方法、装置及播放器 |
Also Published As
Publication number | Publication date |
---|---|
CN103165151A (zh) | 2013-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103165151B (zh) | 多媒体文件播放方法和装置 | |
CN101091213B (zh) | 处理来自信息存储介质的数据的设备和方法 | |
CN108668162B (zh) | 视频文件播放的处理方法、装置及智能终端 | |
EP1635575A1 (en) | System and method for embedding scene change information in a video bitstream | |
CN105376612A (zh) | 一种视频播放方法、媒体设备、播放设备以及多媒体系统 | |
CN104598541A (zh) | 多媒体文件的识别方法、装置 | |
CN102664967A (zh) | 跨平台的个人信息交互方法和系统及后台服务器 | |
CN102510519A (zh) | 流媒体数据的处理方法、播放方法以及装置 | |
KR102505973B1 (ko) | 영상 처리 장치, 이의 제어 방법 및 컴퓨터 프로그램이 기록된 기록 매체 | |
US20060059509A1 (en) | System and method for embedding commercial information in a video bitstream | |
JP2021510047A (ja) | メディアファイルの同期再生方法、装置及び記憶媒体 | |
JP2021508220A (ja) | メディア再生のローディング制御方法、装置及び記憶媒体 | |
CN111770359B (zh) | 一种赛事视频剪辑方法、系统及计算机可读存储介质 | |
CN107454447B (zh) | 一种播放器的插件加载方法,装置及电视机 | |
CN103237215B (zh) | 播放方法和播放设备 | |
CN102665081B (zh) | 多格式码流的解析方法、多格式码流的解析装置和显示装置 | |
US20110305432A1 (en) | Information processing apparatus, sameness determination system, sameness determination method, and computer program | |
CN112218166A (zh) | 一种对点播视频记忆播放的启播方法及相关装置 | |
CN102387177B (zh) | 影音文件的下载方法及装置 | |
CN103165157A (zh) | 定位无索引avi 文件播放位置的方法、装置及播放器 | |
CN104506390A (zh) | 一种路测系统日志存储方法及装置 | |
CN101312538A (zh) | 传输系统、记录设备、传输方法、记录方法和程序 | |
CN104683810B (zh) | 一种基于特征分析的动态解码方法和装置 | |
US20060056506A1 (en) | System and method for embedding multimedia compression information in a multimedia bitstream | |
CN101341721B (zh) | 在发送器和接收器之间共享数据内容的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |