CN115599744A - 文件的转码方法、装置、存储介质及电子装置 - Google Patents
文件的转码方法、装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN115599744A CN115599744A CN202211103831.2A CN202211103831A CN115599744A CN 115599744 A CN115599744 A CN 115599744A CN 202211103831 A CN202211103831 A CN 202211103831A CN 115599744 A CN115599744 A CN 115599744A
- Authority
- CN
- China
- Prior art keywords
- file
- transcoding
- message queue
- information
- target
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供了一种文件的转码方法、装置、存储介质及电子装置,其中,该方法包括:基于存储在第一消息队列中的第一文件信息确定第一文件的目标类型,其中,第一文件信息为第一服务器发送的信息;将第一文件信息存储到与目标类型对应的第二消息队列中,以指示与第二消息队列对应的第二服务器对第一文件进行转码处理,得到目标转码文件。通过本发明,解决了相关技术中存在的存在文件转码效率低的问题,达到提高文件转码效率的效果。
Description
技术领域
本发明实施例涉及通信领域,具体而言,涉及一种文件的转码方法、装置、存储介质及电子装置。
背景技术
文件的编码和封装方式多种多样,有些文件在web界面无法预览,这就需要对文件进行转码,将其转为web界面支持预览的格式。
在相关技术中,在进行文件转码时,对于不同类型的文件均做统一处理。
由此可知,相关技术中存在文件转码效率低的问题。
针对相关技术中存在的上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种文件的转码方法、装置、存储介质及电子装置,以至少解决相关技术中存在的文件转码效率低的问题。
根据本发明的一个实施例,提供了一种文件的转码方法,包括:基于存储在第一消息队列中的第一文件信息确定第一文件的目标类型,其中,所述第一文件信息为第一服务器发送的信息;将所述第一文件信息存储到与所述目标类型对应的第二消息队列中,以指示与所述第二消息队列对应的第二服务器对所述第一文件进行转码处理,得到目标转码文件。
根据本发明的另一个实施例,提供了一种文件的转码装置,包括:确定模块,用于基于存储在第一消息队列中的第一文件信息确定第一文件的目标类型,其中,所述第一文件信息为第一服务器发送的信息;转码模块,用于将所述第一文件信息存储到与所述目标类型对应的第二消息队列中,以指示与所述第二消息队列对应的第二服务器对所述第一文件进行转码处理,得到目标转码文件。
根据本发明的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,根据存储在第一消息队列中的第一文件信息确定第一文件的目标类型,将第一文件信息存储到与目标类型对应的第二消息队列中,以指示与第二消息队列对应的第二服务器对第一文件进行转码处理,得到目标转码文件。由于可以根据第一文件的目标类型,将第一文件存储到与目标类型对应的第二消息队列中,与第二消息队列对应的第二服务器对第一文件进行转码处理,实现了利用不同的服务器对不同类型的文件进行转码,因此,可以解决相关技术中存在的存在文件转码效率低的问题,达到提高文件转码效率的效果。
附图说明
图1是本发明实施例的一种文件的转码方法的移动终端的硬件结构框图;
图2是根据本发明实施例的文件的转码方法的流程图;
图3是根据本发明具体实施例的文件的转码方法流程图;
图4是根据本发明具体实施例的服务交互示意图;
图5是根据本发明实施例的文件的转码装置的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明的实施例。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种文件的转码方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的文件的转码方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种文件的转码方法,图2是根据本发明实施例的文件的转码方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,基于存储在第一消息队列中的第一文件信息确定第一文件的目标类型,其中,所述第一文件信息为第一服务器发送的信息;
步骤S204,将所述第一文件信息存储到与所述目标类型对应的第二消息队列中,以指示与所述第二消息队列对应的第二服务器对所述第一文件进行转码处理,得到目标转码文件。
在上述实施例中,当转码的文件数很多且对于要求转码时间有很高的要求时,可以利用多个第二服务器提供转码服务,第二服务器之间的交互可以使用tcp协议。每个第二服务器可以与一个第二消息队列向对应,不同第二消息队列中可以存储不同目标类型的第一文件。可以首先利用第一服务器将第一文件的第一文件信息存储到第一消息队列中。其中,第一服务器可以是用于执行tcp服务的服务器,第一消息队列可以是redis消息队列stream:preprocess。
在上述实施例中,第一消息队列,如消息队列stream:preprocess中存储的第一文件信息可以包括device、file、size、ext_name四字段。device表示文件的存储节点,file表示文件的唯一索引,通过device和file即可找到文件在存储节点中的位置,size表示文件的大小,ext_name表示文件的后缀名,用于区分文件的类别,文件类别有图片、视频、音频、其他类型文件和未知类型文件,其中,文件未转码之前均为未知类型,其他类型文件无需转码,且不支持用户预览。基于存储在第一消息队列中的第一文件信息确定第一文件的目标类型可以包括:确定所述第一文件信息中包括的后缀名以及文件数据头;基于所述后缀名以及文件数据头确定所述目标类型。
在上述实施例中,在确定第一文件的目标类型后,可以将第一文件信息存储到第二消息队列中。其中,第二消息队列中可以包括stream:image、stream:videogpu、stream:videocpu、stream:audio等。其中,stream:image用于存储目标类型为图片类型的第一文件信息,stream:videogpu和stream:videocpu用于存储目标类型为视频类型的第一文件信息,stream:audio用于存储目标类型为音频类型的第一文件信息。
在上述实施例中,在将第一文件信息存储到第二消息队列中后,与第一消息队列对应的第二服务器可以从第二消息队列中获取到第一文件信息,并根据第一文件信息获取第一文件,对第一文件进行转码处理,得到目标转码文件。
可选地,上述步骤的执行主体可以是后台处理器,或者其他的具备类似处理能力的设备,但不限于此。
通过本发明,根据存储在第一消息队列中的第一文件信息确定第一文件的目标类型,将第一文件信息存储到与目标类型对应的第二消息队列中,以指示与第二消息队列对应的第二服务器对第一文件进行转码处理,得到目标转码文件。由于可以根据第一文件的目标类型,将第一文件存储到与目标类型对应的第二消息队列中,与第二消息队列对应的第二服务器对第一文件进行转码处理,实现了利用不同的服务器对不同类型的文件进行转码,因此,可以解决相关技术中存在的存在文件转码效率低的问题,达到提高文件转码效率的效果。
在一个示例性实施例中,将所述第一文件信息存储到与所述目标类型对应的第二消息队列中包括:在所述目标类型为图片类型的情况下,对所述第一文件进行第一解码处理,在解码成功的情况下,确定与所述目标类型对应的所述第二消息队列为图片消息队列,将所述第一文件信息存储到所述图片消息队列中;在所述目标类型为音频类型的情况下,确定所述第二消息队列为音频消息队列,并将所述第一文件信息存储到所述音频消息队列中。在本实施例中,在确定目标类型为图片类型时,可以对第一文件进行第一解码处理,在解码成功的情况下,将第一文件信息存储到图片消息队列中,其中,图片消息队列可以为stream:image。当目标类型为音频类型时,可以将第一文件信息存储到音频消息队列中,其中,音频消息队列可以为stream:audio。
在一个示例性实施例中,在对所述第一文件进行第一解码处理之后,所述方法还包括:在解码成功的情况下,基于所述第一文件的解码文件确定所述第一文件的第一属性信息,并将所述第一属性信息以及所述目标类型发送给所述第一服务器,以指示所述第一服务器将所述第一文件的类型由初始类型修改为目标类型,将所述第一文件的属性信息由初始信息修改为所述第一属性信息;在解码失败的情况下,通知所述第一服务器将所述第一文件的初始类型修改为其他类型。在本实施例中,当目标类型为图片类型时,对第一文件进行解码,获取宽高等基本信息,若解码成功,通过tcp服务修改文件的基本信息以及文件未知类型为图片,若解码失败,通过tcp服务修改文件未知类型为其他类型。解码结束后,将该图片在消息队列stream:preprocess中的四字段发送到消息队列stream:image。其中,第一属性信息可以包括图片的宽高等基本信息,初始类型为未知类型。文件类型为其他类型文件通过tcp服务直接修改文件未知类型为其他类型。
在一个示例性实施例中,将所述第一文件信息存储到与所述目标类型对应的第二消息队列中包括:在所述目标类型为视频类型的情况下,对所述第一文件进行第二解码处理,得到所述第一文件的第二属性信息;基于所述第二属性信息确定所述第一文件的码流格式;在所述码流格式满足图形处理器处理格式的情况下,确定所述第二消息队列为图形处理器视频消息队列,并将所述第一文件信息存储至所述图形处理器视频消息队列中;在所述码流格式不满足图形处理器处理格式的情况下,确定所述第二消息队列为中央处理器视频消息队列,并将所述第一文件信息存储至所述中央处理器视频消息队列中。在本实施例中,当目标类型为视频类型时,可以对第一文件进行解码,获取第二属性信息。其中,第二属性信息可以包括宽高、帧率、帧数、时长、码流等信息。若解码成功,且根据第二属性信息确定第一文件的码流格式,若视频码流是gpu支持的格式,即满足图形处理器处理格式的情况下,将该视频在消息队列stream:preprocess中的四字段发送到图形处理器视频消息队列stream:videogpu中。当视频码流为Gpu不支持的格式,将该视频在消息队列stream:preprocess中的四字段发送到中央处理器视频消息队列stream:videocpu中。
在一个示例性实施例中,第二服务器通过如下方式实现对所述第一文件进行转码处理,得到目标转码文件:在所述第二消息队列为图片消息队列的情况下,所述第二服务器从所述图片消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第三解码处理,得到图片解码文件;对所述图片解码文件进行转码处理,得到所述目标转码文件。在本实施例中,当第二消息队列为图片消息队列的情况下,第二服务器可以从图片消息队列中读取第一文件信息,根据第一文件信息中包括的device确定第一文件的存储节点,并从储节点中获取第一文件,并对第一文件进行第三解码处理,得到图片解码文件,并对图片解码文件进行转码处理,得到目标转码文件。其中,对图片解码文件进行转码处理可以包括webp编码和jpeg编码。
在一个示例性实施例中,对所述图片解码文件进行转码处理,得到所述目标转码文件包括:对所述图片解码文件进行第一转码处理,得到第一转码文件;对所述图片解码文件进行第二转码处理,得到第二转码文件;将所述第一转码文件以及所述第二转码文件确定为所述目标转码文件。在本实施例中,可以对解码后的数据,即图片解码文件分别进行webp编码和jpeg编码。目标转码文件可以包括缩略图和预览图。其中,第一转码处理可以为webp编码,经过webp编码后生成webp格式的缩略图,即第一转码文件,缩略图长边为248像素,短边随之相应放缩。第二转码处理可以为jpeg编码,经过jpeg编码后生成jpg格式的预览图,即第二转码文件,预览图宽高与原始图片相同。
在一个示例性实施例中,对所述图片解码文件进行第一转码处理,得到第一转码文件包括:基于所述图片解码文件中包括的图片尺寸信息预测对所述第一转码文件的大小;在所述第一转码文件的大小小于或等于预定阈值的情况下,确定所述第一文件的文件格式;在所述文件格式指示所述第一文件为旋转图片的情况下,获取所述第一文件的旋转参数;对所述图片解码文件进行所述第一转码处理,得到第三转码文件;按照所述旋转参数旋转所述第三转码文件,得到所述第一转码文件。在本实施例中,通过读取消息队列stream:image获取图片信息,对该图片进行解码,图片解码后根据拟合出的关系式判断是否进行第一转码处理,即jpeg编码,关系式通过图片的宽高预测编码后预览图的大小,如果预览图的大小超过某个阈值则不进行jpeg编码,也就是不保存该图片的预览图,这样能够节省存储空间,减少存储成本。在图片不需要jpeg编码的情况下,将解码后的数据进行webp编码,生成webp格式的缩略图,缩略图长边为248像素,短边随之相应放缩,并且将缩略图通过tcp服务保存在存储节点。
在上述实施例中,在图片需要进行jpeg编码的情况下,如果图片是旋转图片还需要提取图片的exif信息,即旋转参数,将解码后的数据分别进行webp编码和jpeg编码。经过webp编码后生成webp格式的缩略图,缩略图长边为248像素,短边随之相应放缩。经过jpeg编码后生成jpg格式的预览图,预览图宽高与原始图片相同,如果原始图片是旋转图片还需将提取出的exif参数写入预览图。将缩略图和预览图通过tcp服务保存在存储节点。
在一个示例性实施例中,第二服务器通过如下方式实现对所述第一文件进行转码处理,得到目标转码文件:在所述第二消息队列为图形处理器视频消息队列的情况下,所述第二服务器从所述图形处理器视频消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第四解码处理,得到第一视频解码文件;对所述第一视频解码文件中包括的第一目标帧视频进行第三转码处理,得到第四转码文件;对所述第一视频解码文件进行第四转码处理,得到第五转码文件;将所述第四转码文件以及所述第五转码文件确定为所述目标转码文件;在所述第二消息队列为中央处理器视频消息队列的情况下,所述第二服务器从所述中央处理器视频消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第五解码处理,得到第二视频解码文件;对所述第二视频解码文件中包括的第二目标帧视频进行第五转码处理,得到第六转码文件;对所述第一视频解码文件进行第六转码处理,得到第七转码文件;将所述第六转码文件以及所述第七转码文件确定为所述目标转码文件;在所述第二消息队列为音频消息队列的情况下,所述第二服务器从所述音频消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第六解码处理,得到音频解码文件;对所述音频解码文件进行第七转码处理,得到第八转码文件;将所述第八转码文件确定为所述目标转码文件。在本实施例中,通过读取消息队列stream:videogpu获取视频信息,对该视频进行解码,将解码后的视频的某一帧数据,即第一目标帧视频进行webp编码,即第三转码处理。对整个视频数据进行mp4编码,即第四转码处理。经过webp编码后生成webp格式的缩略图,即第四转码文件,缩略图长边为248像素,短边随之相应放缩。经过mp4编码后生成mp4格式的预览视频,即第五转码文件。由于视频的编码速度较慢,这里将使用gpu进行加速,大大提升转码速度。将缩略图和预览视频通过tcp服务保存在存储节点。
在上述实施例中,第二消息队列为中央处理器视频消息队列的情况下,通过读取消息队列stream:videocpu获取视频信息,之后的操作与stream:videogpu的操作一致。将视频分为stream:videogpu和stream:videocpu两个消息队列是为了防止不能gpu转码的视频在gpu服务器上进行cpu编码,导致消息队列的阻塞和资源浪费,影响转码速度。
在上述实施例中,当第二消息队列为音频消息队列的情况下,通过读取消息队列stream:audio获取音频信息,对该音频进行解码,获取采样率、声道数、采样深度等信息,将解码后的数据进行wav编码,即第七转码处理。经过wav编码后生成wav格式的预览音频,将预览音频通过tcp服务保存在存储节点。
在一个示例性实施例中,在第二服务器对所述第一文件进行转码处理,得到目标转码文件之后,所述方法还包括:将所述第一文件的所述目标类型发送给所述第一服务器,以指示所述第一服务器将所述第一文件的类型由初始类型修改为所述目标类型。在本实施例中,当第一文件为视频类型文件时,在转码成功后,可以通过tcp服务修改文件的基本信息以及文件未知类型为视频,若失败,通过tcp服务修改文件未知类型为其他类型。当第一文件为音频类型文件时,在转码成功后,可以通过tcp服务修改文件的基本信息以及文件未知类型为音频,若失败,通过tcp服务修改文件未知类型为其他类型。
在一个示例性实施例中,在第二服务器对所述第一文件进行转码处理,得到目标转码文件之后,所述方法还包括:将所述目标转码文件发送给所述第一服务器,以指示所述第一服务器将所述目标转码文件存储至存储节点中。在本实施例中,在得到目标转码文件之后,可以将目标转码文件发送给第一服务器,第一服务器在接收到目标转码文件后,将目标转码文件存储至存储节点中。其中,存储节点可以是预先存储第一文件的节点,还可以是新创建的节点。
在一个示例性实施例中,所述方法还包括:获取所述第一服务器存储在第三消息队列中的第二文件信息,其中,所述第二文件信息为待切图视频文件的信息;基于所述第二文件信息中包括的存储节点确定获取第二文件;解码所述第二文件,得到待切图视频解码文件;对所述待切图视频解码文件中包括的每帧图像进行第八转码处理,得到第九转码文件;将所述第九转码文件发送给所述第一服务器,以指示所述第一服务器将所述第九转码文件存储至所述存储节点中。在本实施例中,第三消息队列可以是stream:frame。当用户选择需要切图的视频,将其信息发送到消息队列stream:frame,通过解码获取该视频每一帧的数据,将每帧数据进行jpeg编码,即第八转码处理,得到jpg格式的帧图,将帧图通过tcp服务保存在存储节点。
下面结合具体实施方式对文件的转码方法进行说明:
图3是根据本发明具体实施例的文件的转码方法流程图,如图3所示,一种基于tcp服务的文件转码方法,主要包含tcp服务和文件转码服务两种服务,其中,服务交互示意图可参见附图4。用户通过tcp服务将上传文件的信息发送到redis消息队列stream:preprocess,将需要切图的视频信息发送到消息队列stream:frame。文件转码服务会读取redis消息队列的数据,使用文件的后缀名和文件数据头判断文件类型,通过tcp服务修改文件类型,并进行相应的转码操作,将结果通过tcp服务保存在存储节点,方便用户进行文件预览。
进一步的,消息队列stream:preprocess中,包含的文件信息有device、file、size、ext_name四字段。device表示文件的存储节点,file表示文件的唯一索引,通过device和file即可找到文件在存储节点中的位置,size表示文件的大小,ext_name表示文件的后缀名,用于区分文件的类别,文件类别有图片、视频、音频、其他类型文件和未知类型文件,其中,文件未转码之前均为未知类型,其他类型文件无需转码,且不支持用户预览。
进一步的,文件类型为图片,对该文件进行解码,获取宽高等基本信息,若解码成功,通过tcp服务修改文件的基本信息以及文件未知类型为图片,若解码失败,通过tcp服务修改文件未知类型为其他类型。解码结束后,将该图片在消息队列stream:preprocess中的四字段发送到消息队列stream:image。
文件类型为视频,对该文件进行解码,获取宽高、帧率、帧数、时长、码流等信息,若解码成功,视频码流gpu支持的格式,将该视频在消息队列stream:preprocess中的四字段发送到消息队列stream:videogpu,视频码流为Gpu不支持的格式,将该视频在消息队列stream:preprocess中的四字段发送到消息队列stream:videocpu。
文件类型为音频,将该音频在消息队列stream:preprocess中的四字段发送到消息队列stream:audio。
文件类型为其他类型文件通过tcp服务直接修改文件未知类型为其他类型。
进一步的,通过读取消息队列stream:image获取图片信息,对该图片进行解码,图片解码后根据拟合出的关系式判断是否进行jpeg编码,关系式通过图片的宽高预测编码后预览图的大小,如果预览图的大小超过某个阈值则不进行jpeg编码,也就是不保存该图片的预览图,这样能够节省存储空间,减少存储成本。
在图片不需要jpeg编码的情况下,将解码后的数据进行webp编码,生成webp格式的缩略图,缩略图长边为248像素,短边随之相应放缩,并且将缩略图通过tcp服务保存在存储节点。
在图片需要进行jpeg编码的情况下,如果图片是旋转图片还需要提取图片的exif信息,将解码后的数据分别进行webp编码和jpeg编码。经过webp编码后生成webp格式的缩略图,缩略图长边为248像素,短边随之相应放缩。经过jpeg编码后生成jpg格式的预览图,预览图宽高与原始图片相同,如果原始图片是旋转图片还需将提取出的exif参数写入预览图。将缩略图和预览图通过tcp服务保存在存储节点。
进一步的,通过读取消息队列stream:videogpu获取视频信息,对该视频进行解码,将解码后的视频的某一帧数据进行webp编码和整个视频数据进行mp4编码。经过webp编码后生成webp格式的缩略图,缩略图长边为248像素,短边随之相应放缩。经过mp4编码后生成mp4格式的预览视频,由于视频的编码速度较慢,这里将使用gpu进行加速,大大提升转码速度。将缩略图和预览视频通过tcp服务保存在存储节点。若整个流程执行成功,通过tcp服务修改文件的基本信息以及文件未知类型为视频,若失败,通过tcp服务修改文件未知类型为其他类型。
通过读取消息队列stream:videocpu获取视频信息,之后的操作与stream:videogpu的操作一致。将视频分为stream:videogpu和stream:videocpu两个消息队列是为了防止不能gpu转码的视频在gpu服务器上进行cpu编码,导致消息队列的阻塞和资源浪费,影响转码速度。
进一步的,通过读取消息队列stream:audio获取音频信息,对该音频进行解码,获取采样率、声道数、采样深度等信息,将解码后的数据进行wav编码。经过wav编码后生成wav格式的预览音频,将预览音频通过tcp服务保存在存储节点。若整个流程执行成功,通过tcp服务修改文件的基本信息以及文件未知类型为音频,若失败,通过tcp服务修改文件未知类型为其他类型。
进一步的,用户选择需要切图的视频将其信息发送到消息队列stream:frame,通过解码获取该视频每一帧的数据,将每帧数据进行jpeg编码,得到jpg格式的帧图,将帧图通过tcp服务保存在存储节点。
在前述实施例中,对于图片、视频、音频都能转码,不同的服务器处理不同的消息队列,不同文件转码相互分离,互不干扰,易于管理。通过将不同类型的文件存放不同的消息队列,转码过程相互分离,互不干扰,并且视频转码时分为gpu加速转码和cpu正常转码,有效利用gpu资源,防止转码阻塞。根据拟合公式判断是否保存图片预览图和自主选择视频是否切图,有效节省存储空间,降低成本。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种文件的转码装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明实施例的文件的转码装置的结构框图,如图5所示,该装置包括:
确定模块52,用于基于存储在第一消息队列中的第一文件信息确定第一文件的目标类型,其中,所述第一文件信息为第一服务器发送的信息;
转码模块54,用于将所述第一文件信息存储到与所述目标类型对应的第二消息队列中,以指示与所述第二消息队列对应的第二服务器对所述第一文件进行转码处理,得到目标转码文件。
在一个示例性实施例中,转码模块54可以通过如下方式实现将所述第一文件信息存储到与所述目标类型对应的第二消息队列中:在所述目标类型为图片类型的情况下,对所述第一文件进行第一解码处理,在解码成功的情况下,确定与所述目标类型对应的所述第二消息队列为图片消息队列,将所述第一文件信息存储到所述图片消息队列中;在所述目标类型为音频类型的情况下,确定所述第二消息队列为音频消息队列,并将所述第一文件信息存储到所述音频消息队列中。
在一个示例性实施例中,所述装置可以用于在对所述第一文件进行第一解码处理之后,在解码成功的情况下,基于所述第一文件的解码文件确定所述第一文件的第一属性信息,并将所述第一属性信息以及所述目标类型发送给所述第一服务器,以指示所述第一服务器将所述第一文件的类型由初始类型修改为目标类型,将所述第一文件的属性信息由初始信息修改为所述第一属性信息;在解码失败的情况下,通知所述第一服务器将所述第一文件的初始类型修改为其他类型。
在一个示例性实施例中,转码模块54可以通过如下方式实现将所述第一文件信息存储到与所述目标类型对应的第二消息队列中:在所述目标类型为视频类型的情况下,对所述第一文件进行第二解码处理,得到所述第一文件的第二属性信息;基于所述第二属性信息确定所述第一文件的码流格式;在所述码流格式满足图形处理器处理格式的情况下,确定所述第二消息队列为图形处理器视频消息队列,并将所述第一文件信息存储至所述图形处理器视频消息队列中;在所述码流格式不满足图形处理器处理格式的情况下,确定所述第二消息队列为中央处理器视频消息队列,并将所述第一文件信息存储至所述中央处理器视频消息队列中。
在一个示例性实施例中,第二服务器通过如下方式实现对所述第一文件进行转码处理,得到目标转码文件:在所述第二消息队列为图片消息队列的情况下,所述第二服务器从所述图片消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第三解码处理,得到图片解码文件;对所述图片解码文件进行转码处理,得到所述目标转码文件。
在一个示例性实施例中,第二服务器通过如下方式实现对所述图片解码文件进行转码处理,得到所述目标转码文件:对所述图片解码文件进行第一转码处理,得到第一转码文件;对所述图片解码文件进行第二转码处理,得到第二转码文件;将所述第一转码文件以及所述第二转码文件确定为所述目标转码文件。
在一个示例性实施例中,第二服务器通过如下方式实现对所述图片解码文件进行第一转码处理,得到第一转码文件:基于所述图片解码文件中包括的图片尺寸信息预测对所述第一转码文件的大小;在所述第一转码文件的大小小于或等于预定阈值的情况下,确定所述第一文件的文件格式;在所述文件格式指示所述第一文件为旋转图片的情况下,获取所述第一文件的旋转参数;对所述图片解码文件进行所述第一转码处理,得到第三转码文件;按照所述旋转参数旋转所述第三转码文件,得到所述第一转码文件。
在一个示例性实施例中,第二服务器通过如下方式实现对所述第一文件进行转码处理,得到目标转码文件:在所述第二消息队列为图形处理器视频消息队列的情况下,所述第二服务器从所述图形处理器视频消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第四解码处理,得到第一视频解码文件;对所述第一视频解码文件中包括的第一目标帧视频进行第三转码处理,得到第四转码文件;对所述第一视频解码文件进行第四转码处理,得到第五转码文件;将所述第四转码文件以及所述第五转码文件确定为所述目标转码文件;在所述第二消息队列为中央处理器视频消息队列的情况下,所述第二服务器从所述中央处理器视频消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第五解码处理,得到第二视频解码文件;对所述第二视频解码文件中包括的第二目标帧视频进行第五转码处理,得到第六转码文件;对所述第一视频解码文件进行第六转码处理,得到第七转码文件;将所述第六转码文件以及所述第七转码文件确定为所述目标转码文件;在所述第二消息队列为音频消息队列的情况下,所述第二服务器从所述音频消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第六解码处理,得到音频解码文件;对所述音频解码文件进行第七转码处理,得到第八转码文件;将所述第八转码文件确定为所述目标转码文件。
在一个示例性实施例中,在第二服务器对所述第一文件进行转码处理,得到目标转码文件之后,所述第二服务器还用于将所述第一文件的所述目标类型发送给所述第一服务器,以指示所述第一服务器将所述第一文件的类型由初始类型修改为所述目标类型。
在一个示例性实施例中,在第二服务器对所述第一文件进行转码处理,得到目标转码文件之后,所述第二服务器还用于:将所述目标转码文件发送给所述第一服务器,以指示所述第一服务器将所述目标转码文件存储至存储节点中。
在一个示例性实施例中,所述装置还可以用于获取所述第一服务器存储在第三消息队列中的第二文件信息,其中,所述第二文件信息为待切图视频文件的信息;基于所述第二文件信息中包括的存储节点确定获取第二文件;解码所述第二文件,得到待切图视频解码文件;对所述待切图视频解码文件中包括的每帧图像进行第八转码处理,得到第九转码文件;将所述第九转码文件发送给所述第一服务器,以指示所述第一服务器将所述第九转码文件存储至所述存储节点中。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现上述任一项中所述的方法的步骤。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
在一个示例性实施例中,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种文件的转码方法,其特征在于,包括:
基于存储在第一消息队列中的第一文件信息确定第一文件的目标类型,其中,所述第一文件信息为第一服务器发送的信息;
将所述第一文件信息存储到与所述目标类型对应的第二消息队列中,以指示与所述第二消息队列对应的第二服务器对所述第一文件进行转码处理,得到目标转码文件。
2.根据权利要求1所述的方法,其特征在于,将所述第一文件信息存储到与所述目标类型对应的第二消息队列中包括:
在所述目标类型为图片类型的情况下,对所述第一文件进行第一解码处理,在解码成功的情况下,确定与所述目标类型对应的所述第二消息队列为图片消息队列,将所述第一文件信息存储到所述图片消息队列中;
在所述目标类型为音频类型的情况下,确定所述第二消息队列为音频消息队列,并将所述第一文件信息存储到所述音频消息队列中。
3.根据权利要求2所述的方法,其特征在于,在对所述第一文件进行第一解码处理之后,所述方法还包括:
在解码成功的情况下,基于所述第一文件的解码文件确定所述第一文件的第一属性信息,并将所述第一属性信息以及所述目标类型发送给所述第一服务器,以指示所述第一服务器将所述第一文件的类型由初始类型修改为目标类型,将所述第一文件的属性信息由初始信息修改为所述第一属性信息;
在解码失败的情况下,通知所述第一服务器将所述第一文件的初始类型修改为其他类型。
4.根据权利要求1所述的方法,其特征在于,将所述第一文件信息存储到与所述目标类型对应的第二消息队列中包括:
在所述目标类型为视频类型的情况下,对所述第一文件进行第二解码处理,得到所述第一文件的第二属性信息;
基于所述第二属性信息确定所述第一文件的码流格式;
在所述码流格式满足图形处理器处理格式的情况下,确定所述第二消息队列为图形处理器视频消息队列,并将所述第一文件信息存储至所述图形处理器视频消息队列中;
在所述码流格式不满足图形处理器处理格式的情况下,确定所述第二消息队列为中央处理器视频消息队列,并将所述第一文件信息存储至所述中央处理器视频消息队列中。
5.根据权利要求1所述的方法,其特征在于,第二服务器通过如下方式实现对所述第一文件进行转码处理,得到目标转码文件:
在所述第二消息队列为图片消息队列的情况下,所述第二服务器从所述图片消息队列中读取所述第一文件信息;
基于所述第一文件信息中包括的存储节点获取所述第一文件;
对所述第一文件进行第三解码处理,得到图片解码文件;
对所述图片解码文件进行转码处理,得到所述目标转码文件。
6.根据权利要求5所述的方法,其特征在于,对所述图片解码文件进行转码处理,得到所述目标转码文件包括:
对所述图片解码文件进行第一转码处理,得到第一转码文件;
对所述图片解码文件进行第二转码处理,得到第二转码文件;
将所述第一转码文件以及所述第二转码文件确定为所述目标转码文件。
7.根据权利要求6所述的方法,其特征在于,对所述图片解码文件进行第一转码处理,得到第一转码文件包括:
基于所述图片解码文件中包括的图片尺寸信息预测对所述第一转码文件的大小;
在所述第一转码文件的大小小于或等于预定阈值的情况下,确定所述第一文件的文件格式;
在所述文件格式指示所述第一文件为旋转图片的情况下,获取所述第一文件的旋转参数;
对所述图片解码文件进行所述第一转码处理,得到第三转码文件;
按照所述旋转参数旋转所述第三转码文件,得到所述第一转码文件。
8.根据权利要求1所述的方法,其特征在于,第二服务器通过如下方式实现对所述第一文件进行转码处理,得到目标转码文件:
在所述第二消息队列为图形处理器视频消息队列的情况下,所述第二服务器从所述图形处理器视频消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第四解码处理,得到第一视频解码文件;对所述第一视频解码文件中包括的第一目标帧视频进行第三转码处理,得到第四转码文件;对所述第一视频解码文件进行第四转码处理,得到第五转码文件;将所述第四转码文件以及所述第五转码文件确定为所述目标转码文件;
在所述第二消息队列为中央处理器视频消息队列的情况下,所述第二服务器从所述中央处理器视频消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第五解码处理,得到第二视频解码文件;对所述第二视频解码文件中包括的第二目标帧视频进行第五转码处理,得到第六转码文件;对所述第一视频解码文件进行第六转码处理,得到第七转码文件;将所述第六转码文件以及所述第七转码文件确定为所述目标转码文件;
在所述第二消息队列为音频消息队列的情况下,所述第二服务器从所述音频消息队列中读取所述第一文件信息;基于所述第一文件信息中包括的存储节点获取所述第一文件;对所述第一文件进行第六解码处理,得到音频解码文件;对所述音频解码文件进行第七转码处理,得到第八转码文件;将所述第八转码文件确定为所述目标转码文件。
9.根据权利要求8所述的方法,其特征在于,在第二服务器对所述第一文件进行转码处理,得到目标转码文件之后,所述方法还包括:
将所述第一文件的所述目标类型发送给所述第一服务器,以指示所述第一服务器将所述第一文件的类型由初始类型修改为所述目标类型。
10.根据权利要求1所述的方法,其特征在于,在第二服务器对所述第一文件进行转码处理,得到目标转码文件之后,所述方法还包括:
将所述目标转码文件发送给所述第一服务器,以指示所述第一服务器将所述目标转码文件存储至存储节点中。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第一服务器存储在第三消息队列中的第二文件信息,其中,所述第二文件信息为待切图视频文件的信息;
基于所述第二文件信息中包括的存储节点确定获取第二文件;
解码所述第二文件,得到待切图视频解码文件;
对所述待切图视频解码文件中包括的每帧图像进行第八转码处理,得到第九转码文件;
将所述第九转码文件发送给所述第一服务器,以指示所述第一服务器将所述第九转码文件存储至所述存储节点中。
12.一种文件的转码装置,其特征在于,包括:
确定模块,用于基于存储在第一消息队列中的第一文件信息确定第一文件的目标类型,其中,所述第一文件信息为第一服务器发送的信息;
转码模块,用于将所述第一文件信息存储到与所述目标类型对应的第二消息队列中,以指示与所述第二消息队列对应的第二服务器对所述第一文件进行转码处理,得到目标转码文件。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至11任一项中所述的方法。
14.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至11任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211103831.2A CN115599744A (zh) | 2022-09-09 | 2022-09-09 | 文件的转码方法、装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211103831.2A CN115599744A (zh) | 2022-09-09 | 2022-09-09 | 文件的转码方法、装置、存储介质及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115599744A true CN115599744A (zh) | 2023-01-13 |
Family
ID=84842915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211103831.2A Pending CN115599744A (zh) | 2022-09-09 | 2022-09-09 | 文件的转码方法、装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115599744A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220318187A1 (en) * | 2018-04-30 | 2022-10-06 | Samsung Electronics Co., Ltd. | Storage device and server including the storage device |
CN116361252A (zh) * | 2023-03-09 | 2023-06-30 | 北京百度网讯科技有限公司 | 数据存储和访问方法、装置、设备及介质 |
-
2022
- 2022-09-09 CN CN202211103831.2A patent/CN115599744A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220318187A1 (en) * | 2018-04-30 | 2022-10-06 | Samsung Electronics Co., Ltd. | Storage device and server including the storage device |
US11940949B2 (en) * | 2018-04-30 | 2024-03-26 | Samsung Electronics Co., Ltd. | Storage device and server including the storage device |
CN116361252A (zh) * | 2023-03-09 | 2023-06-30 | 北京百度网讯科技有限公司 | 数据存储和访问方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6469788B2 (ja) | メディアコンテンツの適応型ストリーミングのための品質情報の使用 | |
CN108989885B (zh) | 视频文件转码系统、分割方法、转码方法及装置 | |
CN115599744A (zh) | 文件的转码方法、装置、存储介质及电子装置 | |
CN103531218B (zh) | 一种在线多媒体文件编辑方法及系统 | |
CN105516736B (zh) | 视频文件处理方法和装置 | |
CN110213615B (zh) | 视频转码方法、装置、服务器以及存储介质 | |
EP3806462A1 (en) | Image encoding and decoding method , related device and storage medium | |
CN113891114B (zh) | 转码任务调度方法及装置 | |
CN111970565A (zh) | 视频数据处理方法、装置、电子设备及存储介质 | |
EP4167572A1 (en) | Video partitioning method, transfer method, server, adaptor and storage medium | |
CN113727189A (zh) | 支持多种流媒体传输协议的媒体播放方法和系统 | |
CN105323593A (zh) | 一种多媒体转码调度方法和装置 | |
CN113079386A (zh) | 一种视频在线播放方法、装置、电子设备及存储介质 | |
CN110602555B (zh) | 视频转码方法及装置 | |
US9794204B2 (en) | Method and apparatus for forwarding multimedia message | |
CN105338371A (zh) | 一种多媒体转码调度方法和装置 | |
CN115442663A (zh) | 视频的处理方法、装置、电子设备及计算机存储介质 | |
CN113099270B (zh) | 文件存储方法及解码方法、装置、存储介质、电子装置 | |
CN114039969A (zh) | 一种数据传输方法及装置 | |
CN112995927A (zh) | 一种处理5g消息用户头像显示的方法和装置 | |
CN112333540B (zh) | 视频加密长度的确定方法及装置 | |
CN107426630B (zh) | 一种高码文件媒体数据访问方法和系统 | |
CN115699725A (zh) | 视频图像处理方法及装置 | |
CN117063472A (zh) | 一种图像传输方法及装置 | |
CN115550299A (zh) | 图像信息通信方法、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |