音视频文件的播放方法及装置与流程

文档序号:13011280阅读:157来源:国知局
音视频文件的播放方法及装置与流程

本申请涉及音视频处理技术领域,尤其涉及一种音视频文件的播放方法及装置。



背景技术:

相关技术中,在播放音视频文件时,首先需要对该音视频文件进行解析,得到音视频参数,例如音频编码方式、音频采样率、视频分辨率、视频总时长、视频编码方式、等等,之后,才可以基于解析得到的音视频参数执行音视频分离、音视频解码、音视频同步,以及音视频渲染等步骤,最终实现音视频文件的播放。

在上述所描述的起播过程中,对音视频文件进行解析,得到音视频参数这一步骤将占用整个起播过程的绝大部分时间,并且,由于受到音视频文件的封装格式、视频分辨率等影响,往往会导致起播速度过慢,也就是说用户在选择开始播放音视频文件后,往往需要等待较长的时间才能观看到音视频,从而造成用户体验不佳。因此,如何提升音视频文件的起播速度成为现有播放音视频文件过程中亟待解决的问题。



技术实现要素:

有鉴于此,本申请提供一种音视频文件的播放方法及装置,以提升音视频文件的起播速度,提升用户体验。

具体地,本申请是通过如下技术方案实现的:

根据本申请实施例的第一方面,提供一种音视频文件的播放方法,所述方法包括:

判断待播放的音视频文件是否为首次播放;

若是,则对所述音视频文件进行解析,得到音视频参数,并将解析得到的所述音视频参数保存在本地数据库中;否则,直接在所述本地数据库中获取所述音视频文件的音视频参数;

根据所述音视频参数播放所述音视频文件。

根据本申请实施例的第二方面,提供一种音视频文件的播放装置,所述装置包括:

第一判断模块,用于判断待播放的音视频文件是否为首次播放;

解析模块,用于若所述待播放的音视频文件为首次播放,则对所述音视频文件进行解析,得到音视频参数;

保存模块,用于将解析得到的所述音视频参数保存在本地数据库中;

获取模块,用于若所述待播放的音视频文件为非首次播放,则直接在所述本地数据库中获取所述音视频文件的音视频参数;

播放模块,用于根据所述音视频参数播放所述音视频文件。

由上述实施例可见,通过在播放音视频文件时,首先判断该音视频文件是否为首次播放,若不为首次播放,则可以直接从本地数据库中获取该音视频文件的音视频参数,从而节省了音视频参数解析这一过程,提升了音视频文件的起播速度,提升了用户体验;同时,若是首次播放,则对该音视频文件进行解析,得到音视频参数,并将得到的音视频参数保存在本地数据库中,以便后续播放该音视频文件时,可以直接从本地数据库中获取音视频参数,从而提升音视频文件的起播速度,提升用户体验。

附图说明

图1为本申请音视频文件的播放方法的一个实施例流程图;

图2为本地数据库的一种示例;

图3为本申请音视频文件的播放方法的一个实施例流程图;

图4为本申请音视频文件的播放装置所在电子设备的一种硬件结构图;

图5为本申请音视频文件的播放装置的一个实施例框图;

图6为本申请音视频文件的播放装置的另一个实施例框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

一般来说,音视频文件的播放包括6个步骤,分别为音视频参数解析(这里所说的“音视频参数”包括音频编码方式、音频采样率、视频分辨率、视频总时长、视频编码方式、等等)、音视频分离、音视频解码、音视频同步、音视频渲染,最后一步才是音视频播放。为了描述方便,可以将音视频播放之前的过程统称为起播过程,在该起播过程中,音视频参数解析这一步骤将占用整个起播过程的绝大部分时间,尤其对于高码率的音视频文件,例如,4k高码率ts视频而言,需要读取上百兆的数据才可能完成音视频参数的解析,并且,由于受到音视频文件的封装格式、视频分辨率等影响,往往会导致起播速度过慢,因此,用户在选择开始播放音视频文件后,往往需要等待较长的时间才能观看到音视频。

在一示例性应用场景中,以广告机为例,广告机主要实现楼宇/户外液晶广告,即商业楼宇、卖场超市、校园等渠道内,以液晶屏或lcd屏形式的商业终端广告系统,以播出电视广告节目和其他节目为表现手段,因此,广告机上播放的电视广告等节目通常是循环播放的,但在播放过程中,即使是播放之前已经播放过的音视频文件,还是要再执行一次音视频起播过程,由此可见,广告机将重复地执行多次同一音视频文件的起播过程,每次起播速度都过慢,从而造成用户体验不佳。

基于此,本申请提出一种音视频文件的播放方法及装置。

在本申请中,基于“同一音视频文件,音视频参数固定”这样的考虑,通过在首次播放某一音视频文件时,将解析得到的音视频参数保存在本地数据库中,当再次播放该音视频文件时,则可以直接从本地数据库中读取到该音视频文件的音视频参数,进而继续后续的起播流程。通过该种处理,对于非首次播放的音视频文件,可以节省音视频参数解析这一过程,从而,可以提升音视频文件的起播速度,提升用户体验。

为了使本领域技术人员更加清楚地了解本申请所提出的音视频文件的播放方法,列举下述实施例对该音视频文件的播放方法进行说明。

请参见图1,为本申请音视频文件的播放方法的一个实施例流程图,该方法可以应用于具有视频播放功能的电子设备,例如广告机,该方法可以包括以下步骤:

步骤101:判断待播放的音视频文件是否为首次播放,若是,则执行步骤103;否则,执行步骤102。

步骤102:直接在本地数据库中获取音视频文件的音视频参数;执行步骤105。

步骤103:对音视频文件进行解析,得到音视频参数。

步骤104:将解析得到的音视频参数保存在本地数据库中。

如下,对上述步骤101至步骤104进行说明:

在本申请中,当播放一个音视频文件时,可以首先判断该音视频文件是否为首次播放,若是首次播放,那么本地数据库中并未保存该音视频文件的音视频参数,则可以对该音视频文件进行解析,得到该音视频文件的音视频参数,并将解析得到的音视频参数保存在该本地数据库中;若是非首次播放,那么本地数据库中可以保存有该音视频文件的音视频参数,则可以直接从该本地数据库中获取该音视频文件的音视频参数。

在一实施例中,上述本地数据库可以具体用于保存音视频文件的文件信息与音视频参数的对应关系,如图2所示,为本地数据库的一种示例,其中,文件信息可以唯一地标识一个音视频文件。那么,在执行步骤101,判断待播放的音视频文件是否为首次播放的过程中,则可以首先获取待播放的音视频文件的文件信息,继而根据该文件信息查找本地数据库中是否保存有该音视频文件的音视频参数,若在本地数据库中查找到该文件信息,即可以确定该音视频文件为非首次播放,此时,可以执行步骤102,即直接从本地数据库中获取该音视频文件的音视频参数,具体的,可以将该文件信息对应的音视频参数确定为该音视频文件的音视频参数;若在本地数据库中未查找到该文件信息,即可以确定该音视频文件为首次播放,此时,可以执行步骤103,即对该音视频文件进行解析,得到该音视频文件的音视频参数,之后,可以继续执行步骤104,即将该解析得到的音视频参数保存在本地数据库中,基于该种处理,后续再次播放该音视频文件时,则可以直接从本地数据库中获取该音视频文件的音视频参数,从而可以提升音视频文件的起播速度。

在一实施例中,音视频文件的文件信息可以包括该音视频文件的文件名与哈希值。具体的,上述所描述的获取待播放的音视频文件的文件信息的过程可以包括:对待播放的音视频文件进行哈希运算,得到该音视频文件的哈希值,之后,将该音视频文件的文件名与该哈希值进行组合,例如,组合得到“文件名+哈希值”,从而得到音视频文件的文件信息,由于该文件信息不仅携带音视频文件的文件名,还携带音视频文件的哈希值,从而文件信息可以唯一地标识音视频文件。

由于整个音视频文件数据量较大,因此若对整个音视频文件进行哈希运算,运算效率会比较低,基于此,在一个优选的实现方式中,可以对音视频文件进行采样,获取其中一部分数据量,为了描述方便,将该一部分数据量称为采样文件,之后,仅对该采样文件进行哈希运算,将得到的哈希值作为该音视频文件的哈希值。例如,可以从音视频文件的头部开始进行采样,得到预设规格的数据量,作为采样文件;又例如,可以从音视频文件的尾部开始,向前进行采样,得到预设规格的数据量,作为采样文件;再例如,可以预设一个偏移量,从该偏移量所标识的位置开始进行采样,得到预设规格的数据量,作为采样文件。

在一实施例中,上述所描述的本地数据库的类型可以为sqlite3数据库,由于sqlite3数据库是针对嵌入式系统,并且占用资源较低的轻型数据库,从而可以节省电子设备的内存资源。

步骤105:根据音视频参数播放音视频文件。

本领域技术人员可以理解的是,本实施例中所描述的步骤104,步骤105,的执行顺序并不限于此,在实际应用中,还可以首先执行步骤105,再执行步骤104;或者,同时执行步骤104和步骤105,本申请对此并不作限制。

此外,由于对于高码率的音视频文件,例如,4k高码率ts视频而言,起播速度较慢表现的更为明显,那么,在本申请中,在执行上述步骤101,判断音视频文件是否为首次播放之前,可以首先判断下待播放的音视频文件是否为4k音视频文件,若是,则可以执行上述图1所示流程,从而可以使得本申请提升音视频文件的起播速度的优势体现的更为明显。同时需要说明的是,该种处理仅仅为一种可选的实现方式,在实际应用中,并不限于仅对4k音视频文件进行图1所示实施例的处理过程,可以对任何分辨率大小的音视频文件均进行图1所示实施例的处理流程。

由上述实施例可见,通过在播放音视频文件时,首先判断该音视频文件是否为首次播放,若不为首次播放,则可以直接从本地数据库中获取该音视频文件的音视频参数,从而节省了音视频参数解析这一过程,提升了音视频文件的起播速度,提升了用户体验;同时,若是首次播放,则对该音视频文件进行解析,得到音视频参数,并将得到的音视频参数保存在本地数据库中,以便后续播放该音视频文件时,可以直接从本地数据库中获取音视频参数,从而提升音视频文件的起播速度,提升用户体验。

请参见图3,为本申请实施例音视频文件的播放方法的另一个实施例流程图,该图3所示实施例在上述图1所示实施例的基础上,以音视频文件的文件信息包括文件名与哈希值为例,着重描述了判断音视频文件是否为首次播放这一过程,可以包括以下步骤:

步骤301:获取待播放的音视频文件的文件信息,该文件信息包括该音视频文件的文件名与哈希值。

本步骤的详细描述可以参见上述图1所示实施例中的相关描述,在此不再详述。

步骤302:根据文件名查找本地数据库,若查找到该文件名,则执行步骤303;若未查找到该文件名,则执行步骤306。

步骤303:从本地数据库中获取与该文件名对应的目标哈希值。

步骤304:比较该音视频文件的哈希值与目标哈希值是否一致,若一致,则执行步骤305;若不一致,则执行步骤306。

步骤305:确定该音视频文件不为首次播放,结束流程。

步骤306:确定该音视频文件为首次播放。

如下,对上述步骤302至步骤306进行描述:

在步骤302中,首先基于音视频文件的文件名查找本地数据库,若在该本地数据库中未查找到该文件名,则可以直接执行步骤306,即确定该音视频文件为首次播放;若在该本地数据库中查找到该文件名,则为了确保为同一音视频文件,则可以继续执行步骤303,即从该本地数据库中获取与该文件名对应的哈希值,为了描述方便,本申请中将对应的哈希值称为目标哈希值,之后,执行步骤304,即比较上述步骤301中所得到的该音视频文件的哈希值与该目标哈希值是否一致,若一致,则可以直接执行步骤305,即确定该音视频文件为非首次播放;若不一致,则可以直接执行步骤306,即确定该音视频文件为首次播放。

由上述实施例可见,通过首先基于音视频文件的文件名查找本地数据库,在查找到该文件名时,再继续比较音视频文件的哈希值,与数据库中所保存的该文件名对应的哈希值是否一致,在得出一致的比较结果时,确定音视频文件为非首次播放;在得出不一致的比较结果时,确定音视频文件为首次播放;以及在未查找到该文件名时,可以直接确定音视频文件为首次播放,无需进一步比较哈希值,从而提升判断音视频文件是否为首次播放的效率。

与前述音视频文件的播放方法的实施例相对应,本申请还提供了音视频文件的播放装置的实施例。

本申请音视频文件的播放装置的实施例可以应用在具有视频播放功能的电子设备,例如广告机上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请音视频文件的播放装置所在电子设备的一种硬件结构图,除了图4所示的处理器41、内存42、网络接口43、以及非易失性存储器44之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图5,为本申请音视频文件的播放装置的一个实施例框图,该装置可以包括:第一判断模块51、解析模块52、保存模块53、获取模块54,以及播放模块55。

其中,该第一判断模块51,可以用于判断待播放的音视频文件是否为首次播放;

该解析模块52,可以用于若所述待播放的音视频文件为首次播放,则对所述音视频文件进行解析,得到音视频参数;

该保存模块53,可以用于将解析得到的所述音视频参数保存在本地数据库中;

该获取模块54,可以用于若所述待播放的音视频文件为非首次播放,则直接在所述本地数据库中获取所述音视频文件的音视频参数;

该播放模块55,可以用于根据所述音视频参数播放所述音视频文件。

在一实施例中,该装置还可以包括(图5中未示出):

第二判断模块,用于判断待播放的音视频文件是否为4k音视频文件,若是,则执行所述第一判断模块所执行的操作。

请参见图6,为本申请音视频文件的播放装置的另一个实施例框图,该图6所示装置在上述图5所示装置的基础上,其中,第一判断模块51可以包括:信息获取子模块511、查找子模块512、第一确定子模块513、第二确定子模块514。

其中,该信息获取子模块511,可以用于获取待播放的音视频文件的文件信息,所述文件信息唯一地标识所述音视频文件;

该查找子模块512,可以用于根据所述文件信息查找本地数据库中是否保存有所述音视频文件的音视频参数,所述本地数据库中保存有文件信息与音视频参数的对应关系;

该第一确定子模块513,可以用于若所述本地数据库中保存有所述音视频文件的音视频参数,则确定所述音视频文件为非首次播放;

该第二确定子模块514,可以用于若所述本地数据库中未保存有所述音视频文件的音视频参数,则确定所述音视频文件为首次播放。

在一实施例中,所述信息获取子模块511可以包括(图6中未示出):

运算子模块,用于对待播放的音视频文件进行哈希运算,得到所述音视频文件的哈希值;

组合子模块,用于将所述音视频文件的文件名与所述哈希值进行组合,得到所述音视频文件的文件信息。

在一实施例中,所述运算子模块可以包括(图6中未示出):

采样子模块,用于对所述音视频文件进行采样,得到采样文件;

采样运算子模块,用于对所述采样文件进行哈希运算,将得到的哈希值作为所述音视频文件的哈希值。

在一实施例中,所述本地数据库的类型为sqlite3数据库。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1