一种数据存储的方法、装置及电子设备与流程

文档序号:17628448发布日期:2019-05-10 23:54阅读:141来源:国知局
一种数据存储的方法、装置及电子设备与流程

本发明涉及通信技术领域,尤其涉及一种数据存储的方法、装置及电子设备。



背景技术:

近年来随着直播行业的兴起,流媒体技术的发展也越来越成熟,流媒体服务器的应用也越来越广泛,流媒体服务器是流媒体应用的核心和基础,也是运营商向用户提供视频服务器的关键平台,流媒体技术只能实时观看,假设用户错过直播需要回看时,流媒体服务器不能提供回看功能,因此,现有技术中将流媒体服务器与存储服务器集中到一台服务器上,组成了流媒体存储服务器,既有存储服务器的强大存储功能,也具有流媒体服务器的视频流处理功能。

现有技术中,采用流媒体存储服务器对流媒体数据的处理过程具体如图1所示,首先通过实时音/视频信号采集器采集实时的音/视频信号,对所述音/视频信号经过编码器或者转码器进行压缩编码,将压缩编码后的音/视频信号发送给流媒体服务器,流媒体服务器通过网络将所述压缩编码后的音/视频信号发送给流媒体播放器进行解码并播放,同时流媒体服务器将压缩编码后的音/视频信号发送给流媒体信令与数据交互模块,所述流媒体信令与数据交互模块接收到压缩编码后的音/视频信号后,分别通音频准码模块和视频转码,模块对压缩编码后的音/视频信号分别进场处理,将处理后的数据经过音视频mp4文件封装模块一同封装到mp4文件中。在存储过程中,如果出现程序异常退出或流媒体服务器异常宕机等故障时,会造成已存储的mp4文件为不完整的mp4文件,无相应的文件解析数据,由于mp4文件具有在解析和读取必须通过文件解析数据的格式特点,因此不完整的mp4文件无法解析,也无法被mp4文件播放器读取并播放。

综上所述,如何存储流媒体数据,才能在出现程序异常退出或流媒体服务器异常宕机等故障时,使已存储的不完整的mp4文件可修复,从而进行解析和播放是目前需要解决的问题。



技术实现要素:

有鉴于此,本发明提供了一种数据存储输的方法、装置及电子设备,用于解决现有技术中在出现程序异常退出或流媒体服务器异常宕机等故障时,已存储的不完整的mp4文件无法解析和播放的问题。

根据本发明实施例的第一个方面,提供了一种数据存储的方法,包括:接收到流媒体数据,其中,所述流媒体数据包括音频数据、视频数据、所述音频数据对应的第一信令数据和所述视频数据对应的第二信令数据;将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据分别存储到相应的文件中。

在一个实施例中,所述将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据分别存储到相应的文件中,具体包括:将所述音频数据存储为音频文件;将所述视频数据存储为视频文件;将所述第一信令数据存储为音频帧信息文件;将所述第二信令数据存储为视频帧信息文件。

在一个实施例中,所述将所述音频数据存储为音频文件之前,该方法还包括:对所述音频数据进行转码。

在一个实施例中,所述将所述音频数据存储为视频文件之前,该方法还包括:对所述视频数据进行转码。

在一个实施例中,所述将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据分别存储到相应的文件中之后,该方法还包括:在所述相应的文件中获取所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据;将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据重新进行封装,封装为新的音频文件和新的视频文件。

在一个实施例中,所述在所述相应的文件中获取所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据,具体包括:在所述音频文件中获取所述音频数据;在所述视频文件中获取所述视频数据;在所述音频帧信息文件中获取所述第一信令数据;在所述视频帧信息文件中获取所述第二信令数据。

在一个实施例中,所述将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据重新进行封装,封装为新的音频文件和新的视频文件,具体包括:将所述音频数据和所述第一信令数据封装为新的音频文件;将所述视频数据和所述第二信令数据封装为新的视频文件。

根据本发明实施例的第二个方面,提供了一种数据存储的装置,包括:流媒体信令与数据交互模块,用于接收到流媒体数据,其中,所述流媒体数据包括音频数据、视频数据、所述音频数据对应的第一信令数据和所述视频数据对应的第二信令数据;存储模块,用于将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据分别存储到相应的文件中。

在一个实施例中,所述存储模块具体包括:第一音频文件封装模块,用于将所述音频数据存储为音频文件;第一视频文件封装模块,用于将所述视频数据存储为视频文件;音频帧信息存储模块,用于将所述第一信令数据存储为音频帧信息文件;视频帧信息存储模块,用于将所述第二信令数据存储为视频帧信息文件。

在一个实施例中,所述装置还包括:音频转码模块,用于对所述音频数据进行转码。

在一个实施例中,所述装置还包括:视频转码模块,用于对所述视频数据进行转码。

在一个实施例中,所述装置还包括:获取模块,用于在所述相应的文件中获取所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据;重新封装模块,用于将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据重新进行封装,封装为新的音频文件和新的视频文件。

在一个实施例中,所述获取模块具体包括:音频文件数据提取模块,用于在所述音频文件中获取所述音频数据;视频文件数据提取模块,用于在所述视频文件中获取所述视频数据;音频帧信息读取模块,用于在所述音频帧信息文件中获取所述第一信令数据;视频帧信息读取模块,用于在所述视频帧信息文件中获取所述第二信令数据。

在一个实施例中,所述重新封装模块具体包括:第二音频文件封装模块,用于将所述音频数据和所述第一信令数据封装为新的音频文件;第二视频文件封装模块,用于将所述视频数据和所述第二信令数据封装为新的视频文件。

根据本发明实施例的第三个方面,提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面或第一方面任一种可能所述的方法。

根据本发明实施例的第四个方面,提供了一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如第一方面或第一方面任一种可能所述的方法。

本发明实施例的有益效果包括:首先接收到流媒体数据,其中,所述流媒体数据包括音频数据、视频数据、所述音频数据对应的第一信令数据和所述视频数据对应的第二信令数据;然后将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据分别存储到相应的文件中,本发明实施例中,存储音频数据和视频数据的同时也存储了所述音频数据对应的第一信令数据和所述视频数据对应的第二信令数据,通过所述第一信令数据和所述第二信令数据可以对不完整的音频文件和视频文件进行修复,获得可以进行解析和播放的音频文件和视频文件,解决了现有技术中当mp4文件不完整时无法解析和播放的问题。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是现有技术中提供的一种流媒体数据存储和传输的方法流程图;

图2是本发明实施例提供的一种数据存储的方法流程图;

图3是本发明实施例提供的一种数据恢复的方法流程图;

图4是本发明实施例提供的一种数据存储的装置示意图;

图5是本发明实施例提供的一种数据存储的方法流程图;

图6是本发明实施例提供的一种数据存储的装置结构图;

图7是本发明实施例提供的一种电子设备结构示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的。

除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,不代表顺序,也不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

本发明提供的一种数据存储的方法,具体如图2所示,包括:

步骤s200、接收到流媒体数据,其中,所述流媒体数据包括音频数据、视频数据、所述音频数据对应的第一信令数据和所述视频数据对应的第二信令数据。

具体的,接收到流媒体服务器发送的流媒体数据,实现流媒体服务的鉴权和注册,并获取流媒体数据。

步骤s201、将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据分别存储到相应的文件中。

具体的,将所述音频数据存储为音频文件;将所述视频数据存储为视频文件;将所述第一信令数据存储为音频帧信息文件;将所述第二信令数据存储为视频帧信息文件。

可选的,所述音频文件为音频mp4文件,所述视频文件为视频mp4文件,下面以音频文件为音频mp4文件,视频文件为视频mp4文件进行详细的说明。本发明实施例中,所述音频文件也可以为其他格式的音频文件,所述视频文件也可以为其他格式的视频文件,本发明对其不做限定。

本发明实施例的有益效果包括:首先接收到流媒体数据,其中,所述流媒体数据包括音频数据、视频数据、所述音频数据对应的第一信令数据和所述视频数据对应的第二信令数据;然后将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据分别存储到相应的文件中,本发明实施例中,存储音频数据和视频数据的同时也存储了所述音频数据对应的第一信令数据和所述视频数据对应的第二信令数据,通过所述第一信令数据和所述第二信令数据可以对不完整的音频文件和视频文件进行修复,获得可以进行解析和播放的音频文件和视频文件,解决了现有技术中当mp4不完整时无法解析和播放的问题。

可选的,所述将所述音频数据存储为音频文件之前,该方法还包括:对所述音频数据进行转码。

举例说明:由于流媒体服务器发出的数据为编码后的流媒体数据,需要将该编码后的流媒体数据转码成mp4格式的流媒体数据才能存储为音频mp4文件,具体的转码过程如下,首先,对接到的音频数据进行解码,然后进行重新采样和编码,编码为mp4格式的音频mp4文件。

可选的,所述将所述音频数据存储为视频文件之前,该方法还包括:对所述视频数据进行转码。

举例说明:由于流媒体服务器发出的数据为编码后的流媒体数据,需要将该编码后的流媒体数据转码成mp4格式的流媒体数据才能存储为视频mp4文件,具体的转码过程如下,首先,对接到的视频数据进行解码,然后进行重新采样和编码,编码为mp4格式的视频mp4文件。

若上述存储的音频mp4文件和视频mp4文件为不完整的mp4文件为不完整的mp4,则所述音频mp4文件和视频mp4文件无法被解析和播放,因此,需要对所述音频mp4文件和视频mp4文件进行修复,修复流程如图3所述,具体如下:

步骤s300、在相应的文件中获取所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据。

具体的,在所述音频mp4文件中获取所述音频数据;在所述视频mp4文件中获取所述视频数据;在所述音频帧信息文件中获取所述第一信令数据;在所述视频帧信息文件中获取所述第二信令数据。

步骤s301、将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据重新进行封装,封装为新的音频文件和新的视频文件。

具体的,所述新的音频文件为新的音频mp4文件,所述新的视频文件为新的视频mp4文件,将所述音频数据和所述第一信令数据封装为新的音频mp4文件;将所述视频数据和所述第二信令数据封装为新的视频mp4文件。

图4是本发明实施例提供的一种数据存储的装置示意图。如图4所示,本实施例的数据存储的装置包括:流媒体信令与数据交互模块41和存储模块42,其中,所述流媒体信令与数据交互模块41,用于接收到流媒体数据,其中,所述流媒体数据包括音频数据、视频数据、所述音频数据对应的第一信令数据和所述视频数据对应的第二信令数据;存储模块42,用于将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据分别存储到相应的文件中。

可选的,所述存储模块42具体包括:第一音频文件封装模块,用于将所述音频数据存储为音频文件;第一视频文件封装模块,用于将所述视频数据存储为视频文件;音频帧信息存储模块,用于将所述第一信令数据存储为音频帧信息文件;视频帧信息存储模块,用于将所述第二信令数据存储为视频帧信息文件。

可选的,所述装置还包括:音频转码模块,用于对所述音频数据进行转码。

可选的,所述装置还包括:视频转码模块,用于对所述视频数据进行转码。

可选的,所述装置还包括:获取模块43,用于在所述相应的文件中获取所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据;重新封装模块44,用于将所述音频数据、所述视频数据、所述第一信令数据和所述第二信令数据重新进行封装,封装为新的音文件和新的视频文件。

可选的,所述获取模块具体包括:音频文件数据提取模块,用于在所述音频文件中获取所述音频数据;视频文件数据提取模块,用于在所述视频文件中获取所述视频数据;音频帧信息读取模块,用于在所述音频帧信息文件中获取所述第一信令数据;视频帧信息读取模块,用于在所述视频帧信息文件中获取所述第二信令数据。

可选的,所述重新封装模块具体包括:第二音频文件封装模块,用于将所述音频数据和所述第一信令数据封装为新的音频文件;第二视频文件封装模块,用于将所述视频数据和所述第二信令数据封装为新的视频文件。

下面通过一个具体实施例,结合上述装置,对本发明实施例提出的一种数据存储的方法以及mp4文件修复方法进行详细的说明,具体如图5所示:

步骤s500、流媒体信令与数据交互模块接收到流媒体服务器发送的音频数据、视频数据、所述音频数据对应的第一信令数据和所述视频数据对应的第二信令数据。

步骤s501、音频转码模块对接收到的音频数据进行转码,确定转码后的音频数据。

步骤s502、第一音频文件封装模块对所述转码后的音频数据进行封装,获取封装后的音频文件。

实现步骤s501的同时执行步骤s503、步骤s504和步骤s506。

步骤s503、音频帧信息存储模块将接收到的第一信令数据存储为音频帧信息文件。

步骤s504、视频转码模块对接收到的视频数据进行转码,确定转码后的视频数据。

步骤s505、第一视频文件封装模块对所述转码后的视频数据进行封装,获取封装后的视频文件。

步骤s506、视频帧信息存储模块将接收到的第二信令数据存储为视频帧信息文件。

步骤s507、音频文件数据提取模块在所述音频文件中获取所述音频数据。

实现步骤s507的同时执行步骤s508、步骤s509和步骤s510。

步骤s508、音频帧信息读取模块在所述音频帧信息文件中获取所述第一信令数据。

步骤s509、视频文件数据提取模块在所述视频文件中获取所述视频数据。

步骤s510、视频帧信息读取模块在所述视频帧信息文件中获取所述第二信令数据。

步骤s511、第二音频文件封装模块将步骤s507和步骤s508获取的数据重新封装为新的音频文件。

步骤s512、第二视频文件封装模块将步骤s509和步骤s510获取的数据重新封装为新的视频文件。

本发明实施例中,对图5所述的流程,还可以采用具体的模块示意图进行表示,具体如图6所示。

图7是本发明实施例的电子设备的示意图。图7所示的电子设备为通用数据存储装置,其包括通用的计算机硬件结构,其至少包括处理器71和存储器72。处理器71和存储器72通过总线73连接。存储器72适于存储处理器71可执行的指令或程序。处理器71可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器71通过执行存储器72所存储的指令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线73将上述多个组件连接在一起,同时将上述组件连接到显示控制器74和显示装置以及输入/输出(i/o)装置75。输入/输出(i/o)装置75可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置75通过输入/输出(i/o)控制器76与系统相连。

如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。

可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。

计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。

可以使用包括但不限于无线、有线、光纤电缆、rf等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。

用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如java、smalltalk、c++等;以及常规过程编程语言如“c”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(lan)或广域网(wan)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。

上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。

还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。

计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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