一种电子设备中视频文件转码方法及电子设备与流程

文档序号:15466527发布日期:2018-09-18 19:26阅读:223来源:国知局

本公开提供一种电子设备中视频文件转码方法及电子设备,用于高效地对视频文件进行转码。



背景技术:

视频文件转码是指将视频文件格式进行转换,例如将MPEG格式的视频文件转成MP4格式的视频文件,以便适应播放器的解码需求。通常转码过程会占用大量的CPU资源,这会导致转码的时间长,同时,会增大电子设备的功耗,进而出现系统卡顿等影响用户体验的问题。

现有技术中进行视频文件转码一般是通过排队转码,一次转码一个文件,这样就会导致多个文件需要转码的时,转码耗时长,且不能够有效的利用CPU资源来进行转码处理,这对系统资源是一个极大的浪费。



技术实现要素:

本公开提供一种电子设备中视频文件转码方法,包括:按照分割阈值将视频文件分割成至少一个子文件;根据所述电子设备当前运行情况,分配至少一个线程;利用所述至少一个线程对所述至少一个子文件进行转码。

可选地,根据所述电子设备当前运行情况,分配至少一个线程,包括:获取所述电子设备的处理器的资源开销值cpu、当前内存开销值mem及所述电子设备的温度tmp;计算Num=K/(cpu×mem×tmp),其中,K为所述电子设备的硬件性能参数;对Num进行四舍五入取整,得到需要分配的线程数量。

可选地,所述根据所述电子设备当前运行情况,分配至少一个线程,包括:设定一时间阈值,以周期性地根据所述电子设备当前运行情况,分配至少一个线程。

可选地,所述根据所述电子设备当前运行情况,分配至少一个线程,包括:获取前一周期执行转码操作的线程数量num1,当前周期所计算出的需要分配的线程数量num2;当num2<num1时,将num1个线程中的num1-num2个线程暂停,否则,保留前一周期所分配的num1个线程,并再分配num2-num1个线程。

可选地,在对所述视频文件分割之前,方法还包括:获取视频文件的头部信息,并根据所述头部信息对该视频文件进行校验。

本公开另一方面还提供一种电子设备,包括:处理器;存储器,其存储有计算机可执行程序,该程序在被所述处理器执行时,使得所述处理器执行:按照分割阈值将视频文件分割成至少一个子文件;根据所述电子设备当前运行情况,分配至少一个线程;利用所述至少一个线程对所述至少一个子文件进行转码。

可选地,所述处理器根据所述电子设备当前运行情况,分配至少一个线程,包括:获取所述电子设备的处理器的资源开销值cpu、当前内存开销值mem及所述电子设备的温度tmp;计算Num=K/(cpu×mem×tmp),其中,K为所述电子设备的硬件性能参数;对Num进行四舍五入取整,得到需要分配的线程数量。

可选地,所述处理器根据所述电子设备当前运行情况,分配至少一个线程,包括:设定一时间阈值,以周期性地根据所述电子设备当前运行情况,分配至少一个线程。

可选地,所述处理器根据所述电子设备当前运行情况,分配至少一个线程,包括:获取前一周期执行转码操作的线程数量num1,当前周期所计算出的需要分配的线程数量num2;当num2<num1时,将num1个线程中的num1-num2个线程暂停,否则,保留前一周期所分配的num1个线程,并再分配num2-num1个线程。

可选地,所述处理器在对所述视频文件分割之前,还执行:获取视频文件的头部信息,并根据所述头部信息对该视频文件进行校验。

附图说明

图1是本公开实施提供的电子设备中视频文件转码方法的流程图。

图2是本公开实施例提供的电子设备中视频文件转码系统的框图。

图3示意性示出了根据本公开的另一实施例的电子设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。

因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。

图1是本公开实施提供的电子设备中视频文件转码方法的流程图。本公开实施例中的电子设备是指任意具有数据处理功能的设备,例如电脑、平板电脑、手机、电视、MP3、MP4、空调、冰箱、洗衣机、微波炉、打印机,传真机、一体机等等。本公开实施例中的视频文件可以包括但不限于MPEG、AVI、wma、rmvb、rm、flash、mp4、mid、3GP等等。

如图1所示,方法包括:

S0,获取视频文件的头部信息,并根据头部信息确定对该视频文件进行校验。

通常情况下,转码操作只能对视频文件进行的,非视频文件一般是无法进行转码操作的。现有技术中校验文件是不是一个视频文件,是通过读取文件名来进行文件类型的判定,这种判定方法并不可靠。例如,可以将一个txt文本文件的后缀名改成avi,通过这种简单的文件重命名的方式就可以通过校验。

本实施例的上述操作实质是对文件进行校验,判定文件是否是一个可进行转码的文件。该操作不只是简单地通过文件名来进行校验,通过读取文件的头部信息来对文件的类型进行识别。

具体的,本实施例可采用open函数以只读的方式来打开一个文件,读取文件的头部信息,然后从头部信息中筛选出当前文件所述的类型信息,类型信息一般都记录有文件的格式,例如,doc格式的类型信息为208,207,mp3格式的类型信息为73,68,wma格式的类型信息为48,38。接着,将类型信息存储到内存变量type中,然后通过close函数来将刚刚打开的文件进行关闭以便释放文件资源占用。

为了对文件的类型进行快速的判定,本实施例定义一个视频文件集合list,在该集合list中存储了当前可以识别的所有类型的视频文件,例如,rm、avi、rmvb、wmv、mp4等。接着,判定type是否在list集合列表中,具体的判定方法是通过调用集合list中的contains(type)方法,如果该方法返回true表示type类型在集合list中,说明该文件是一个可以转码的视频文件,此时校验通过,反之则校验不通过。

通过上述步骤,以文件头部信息来识别文件的类型,这样可以对文件进行较强的校验作用,确保文件检验的准确性。

S1,按照分割阈值将视频文件分割成至少一个子文件。

在上述步骤中,首相定义一个分割阈值,然后将较大的视频文件按照此分割阈值等分成若干个子文件,如果最后一个子文件大小达不到分割阈值时,则最后一个子文件按剩余大小计算,如果整个视频文件大小达不到分割阈值,就无需对该视频文件进行分割。

S2,根据所述电子设备当前运行情况,分配至少一个线程。

在上述步骤中,本实施例首相定义一个循环定时器,以按固定时间阈值周期性地触发系统进行线程分配操作。具体的,线程分配的过程如下:

获取所述电子设备的处理器的资源开销值cpu、当前内存开销值mem及所述电子设备的温度tmp;

计算Num=K/(cpu×mem×tmp),其中,K为所述电子设备的硬件性能参数,如果电子设备的硬件性能越好,则K值越大,反之越小,具体地,K=M×CPU核心×CPU频率×内存大小,60%≤M≤90%;

对Num进行四舍五入取整,得到需要分配的线程数量,进而根据该数量分配线程。

本实施例为了避免一些异常情况出现,还在系统中对Num进行一个最大最小值的限定(min,max),其中min为正整数,max为小于10的整数,如果电子设备的硬件性能特别好,max可以大于10。然后,将num与min及max进行比较,如果小于min就取min,如果大于max就取max,如果num是小数就按照四舍五入来换算成整数计算,最终得到的线程数量。

以上是针对一个周期进行线程分配的过程。由于电子设备是持续性运行的,不同时间段电子设备处于不同的运行状态,故本实施例还进行动态地分配线程,具体操作如下:

获取前一周期执行转码操作的线程数量num1,当前周期所计算出的需要分配的线程数量num2;

当num2<num1时,说明相比于前一周期,当前时间电子设备的运行情况较差,可以利用的系统资源较少,则将num1个线程中的num1-num2个线程暂停,以减少系统负载,如果在暂停期间有任意一个线程执行完成,将暂停的线程进行恢复,直到所有的暂停任务都恢复并处理完为止。需要说明的是,恢复暂停的线程是在下一周期线程分配前进行的,因为下一周期就会重新计算线程分配的数量;

当num2等=num1时,说明相比于前一周期,当前时间电子设备的运行情况并不变化,此时无需对其做特殊处理,继续原来的转码任务即可;

当num2大于num1时,说明相比于前一周期,当前时间电子设备的运行情况较好,可以利用的系统资源较多,则保留前一周期所分配的num1个线程,并再分配num2-num1个线程。

通过以上操作,能够考虑系统资源实时开销,动态地分配不同数量的线程来完成视频文件转码,当系统资源开销大的时候,即采用较少数量的线程进行少量的转码任务,从而确保系统其它任务能够正常进行,当系统资源开销小的时候,即采用较大数量的线程进行大量的转码任务,从而加快了转码的效率,同时,完善了转码与系统开销之间的平衡关系,从而极大的提高了系统效率。

S3,利用至少一个线程对至少一个子文件进行转码。

上述步骤即是用多个线程来转码至少一个子文件,例如,将一个较大的视频文件分割为20个子文件,然后在步骤S102中分配出5个线程来转码此20个子文件,即同时可以处理5个子文件,这样相比于单线程排队操作,提高了5倍。

图2是本公开实施例提供的电子设备中视频文件转码系统的框图。

如图2所示,视频文件转码系统200包括文件校验模块210、文件分割模块220、线程分配模块230、和文件转码模块240。该视频文件转码系统200可以执行上面参考图1描述的方法。

具体地,文件校验模块210获取视频文件的头部信息,并根据头部信息确定对该视频文件进行校验。文件分割模块220按照分割阈值将视频文件分割成至少一个子文件。线程分配模块230根据电子设备当前运行情况,分配至少一个线程。文件转码模块240利用至少一个线程对至少一个子文件进行转码。

可以理解的是,视频文件转码系统200包括文件校验模块210、文件分割模块220、线程分配模块230、和文件转码模块240可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本发明的实施例,视频文件转码系统200包括文件校验模块210、文件分割模块220、线程分配模块230、和文件转码模块240中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以以对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式的适当组合来实现。或者,视频文件转码系统200包括文件校验模块210、文件分割模块220、线程分配模块230、和文件转码模块240中的至少一个可以至少被部分地实现为计算机程序模块,当该程序被计算机运行时,可以执行相应模块的功能。

图3示意性示出了根据本公开的另一实施例的电子设备的框图。

如图3所示,电子设备300包括处理器310和计算机可读存储介质320。该电子设备300可以执行上面参考图1描述的方法。

具体地,处理器310例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器310还可以包括用于缓存用途的板载存储器。处理器310可以是用于执行参考图1描述的根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

计算机可读存储介质320,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。

计算机可读存储介质320可以包括计算机程序321,该计算机程序321可以包括代码/计算机可执行指令,其在由处理器310执行时使得处理器310执行例如上面结合图1所描述的方法流程及其任何变形。

计算机程序321可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序321中的代码可以包括一个或多个程序模块,例如包括321A、模块321B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器310执行时,使得处理器310可以执行例如上面结合图1所描述的方法流程及其任何变形。

根据本发明的实施例,文件校验模块210、文件分割模块220、线程分配模块230、和文件转码模块240中的至少一个可以实现为参考图2描述的计算机程序模块,其在被处理器310执行时,可以实现上面描述的相应操作。

尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

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