一种将音视频文件流化的装置和方法转让专利

申请号 : CN201410423628.2

文献号 : CN105376641B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 武悦

申请人 : 无锡天脉聚源传媒科技有限公司

摘要 :

本发明提供一种流化音视频文件的装置,包括:解封装模块,用于将音视频文件解析为相应的音频帧序列和视频帧序列;解码模块,用于将所述视频帧序列中的视频帧还原为RAW格式的视频数据以及将所述音频帧序列中的音频帧还原为PCM格式的音频数据;编码模块,通过对所述RAW格式的视频数据和所述PCM格式的音频数据进行编码,获得经重新编码后的视频帧序列和经重新编码后的音频帧序列;封装模块,用于将重新编码后的视频帧序列和音频帧序列封装为流媒体文件序列;控制模块,用于接收用户输入的流媒体文件参数,并将其他模块所需要的参数发送给各模块;其中,所述编码模块在编码时使得封装后的流媒体文件序列中的每个流媒体文件的第一个视频帧均为I帧。本发明还提供一种流化音视频文件的方法。

权利要求 :

1.一种流化音视频文件的装置,包括:

解封装模块,用于将音视频文件解析为相应的音频帧序列和视频帧序列;

解码模块,用于将所述视频帧序列中的视频帧还原为RAW格式的视频数据以及将所述音频帧序列中的音频帧还原为PCM格式的音频数据;

编码模块,通过对所述RAW格式的视频数据和所述PCM格式的音频数据进行编码,获得经重新编码后的视频帧序列和经重新编码后的音频帧序列;

封装模块,用于将重新编码后的视频帧序列和音频帧序列封装为流媒体文件序列;

控制模块,用于接收用户输入的流媒体文件参数,并将其他模块所需要的参数发送给各模块;

其中,所述编码模块在编码时使得封装后的流媒体文件序列中的每个流媒体文件的第一个视频帧均为I帧;

所述用户输入的流媒体文件参数包括每个流媒体文件的视频帧数和I帧间隔值;

所述编码模块调整I帧间隔值,使得编码时使用的I帧间隔值能够满足每个流媒体文件的视频帧数除以I帧间隔值的余数为零这一条件,当由于发生场景转换而产生了不遵循调整后的I帧间隔值的I帧时,所述编码模块将在场景转换产生的I帧之前的第一个I帧之后且间隔调整后的I帧间隔值的帧强行编码为I帧;在该强行编码的I帧之后的各帧的编码从该强行编码的I帧开始按照调整后的I帧间隔值来进行。

2.根据权利要求1所述的流化音视频文件的装置,其特征在于:所述编码模块使用与用户输入的I帧间隔值最接近的能够满足所述条件的值作为编码时使用的I帧间隔值。

3.根据权利要求2所述的流化音视频文件的装置,其特征在于:所述编码模块将用户输入的I帧间隔值依次增减一个由1逐渐增大的值,并将最先能够满足所述条件的值作为编码时使用的I帧间隔值。

4.根据权利要求1所述的流化音视频文件的装置,其特征在于:当所述音频帧序列的编码格式与所述用户输入的流媒体文件参数中的编码格式一致时,所述解码模块和编码模块不对音频帧序列进行解码和重新编码,所述封装模块直接使用所述音频帧序列进行封装。

5.一种流化音视频文件的方法,包括:

参数输入步骤,用于接收用户输入的流媒体文件参数,并将其他模块所需要的参数发送给各模块;

解封装步骤,将音视频文件解析为相应的音频帧序列和视频帧序列;

解码步骤,将所述视频帧序列中的视频帧还原为RAW格式的视频数据以及将所述音频帧序列中的音频帧还原为PCM格式的音频数据;

编码步骤,通过对所述RAW格式的视频数据和所述PCM格式的音频数据进行编码,获得经重新编码后的视频帧序列和经重新编码后的音频帧序列;

封装步骤,将重新编码后的视频帧序列和音频帧序列封装为流媒体文件序列;

其中,在所述编码步骤中,在编码时使得封装后的流媒体文件序列中的每个流媒体文件的第一个视频帧均为I帧;

所述用户输入的流媒体文件参数包括每个流媒体文件的视频帧数和I帧间隔值;

在所述编码步骤中,调整I帧间隔值,使得编码时使用的I帧间隔值能够满足每个流媒体文件的视频帧数除以I帧间隔值的余数为零这一条件,在所述编码步骤中,当由于发生场景转换而产生了不遵循调整后的I帧间隔值的I帧时,将在场景转换产生的I帧之前的第一个I帧之后且间隔调整后的I帧间隔值的帧强行编码为I帧;在该强行编码的I帧之后的各帧的编码从该强行编码的I帧开始按照调整后的I帧间隔值来进行。

6.根据权利要求5所述的流化音视频文件的方法,其特征在于:在所述编码步骤中,使用与用户输入的I帧间隔值最接近的能够满足所述条件的值作为编码时使用的I帧间隔值。

7.根据权利要求6所述的流化音视频文件的方法,其特征在于:在所述编码步骤中,将用户输入的I帧间隔值依次增减一个由1逐渐增大的值,并将最先能够满足所述条件的值作为编码时使用的I帧间隔值。

8.根据权利要求5所述的流化音视频文件的方法,其特征在于:当所述音频帧序列的编码格式与所述用户输入的流媒体文件参数中的编码格式一致时,在所述解码步骤和编码步骤中不对音频帧序列进行解码和重新编码,在所述封装步骤中直接使用所述音频帧序列进行封装。

说明书 :

一种将音视频文件流化的装置和方法

技术领域

[0001] 本发明涉及一种音视频流化的装置及方法,尤其是涉及一种保证流化后的每个片段都能独立解码的音视频流化的装置和办法。

背景技术

[0002] 随着网络事业文化的发展,音视频资源极大丰富,对音视频文件流化处理也是越来越普遍。
[0003] 音视频流化的基本的流程如下:首先将要处理的音视频文件解封装成视频帧序列和音频帧序列;然后对视频帧序列和音频帧序列分别解码为RAW格式数据;对于解码得到的RAW格式数据根据需要再进行编码,编码成所需要的视频帧序列和音频帧序列;对编码后的视频帧序列和音频帧序列根据所需流媒体文件参数的要求对其进行分割;最后将分割后的视频帧序列和音频帧序列封装成所需要的流媒体文件序列。
[0004] 在将音视频文件流化成所需要的流媒体文件序列时,可能出现多数流媒体文件的视频帧序列的首帧不是I帧,从而在缺少前一个流媒体文件时,该流媒体文件的视频帧序列的首个I帧之前的帧不能被解码。

发明内容

[0005] 为了解决上述技术问题,本发明的一方面提供一种流化音视频文件的装置,包括:解封装模块,用于将音视频文件解析为相应的音频帧序列和视频帧序列;解码模块,用于将所述视频帧序列中的视频帧还原为RAW格式的视频数据以及将所述音频帧序列中的音频帧还原为PCM格式的音频数据;编码模块,通过对所述RAW格式的视频数据和所述PCM格式的音频数据进行编码,获得经重新编码后的视频帧序列和经重新编码后的音频帧序列;封装模块,用于将重新编码后的视频帧序列和音频帧序列封装为流媒体文件序列;控制模块,用于接收用户输入的流媒体文件参数,并将其他模块所需要的参数发送给各模块;其中,所述编码模块在编码时使得封装后的流媒体文件序列中的每个流媒体文件的第一个视频帧均为I帧。
[0006] 优选地,所述用户输入的流媒体文件参数包括每个流媒体文件的视频帧数和I帧间隔值;所述编码模块调整I帧间隔值,使得编码时使用的I帧间隔值能够满足每个流媒体文件的视频帧数除以I帧间隔值的余数为零这一条件。
[0007] 优选地,所述编码模块使用与用户输入的I帧间隔值最接近的能够满足所述条件的值作为编码时使用的I帧间隔值。
[0008] 优选地,所述编码模块将用户输入的I帧间隔值依次增减一个由1逐渐增大的值,并将最先能够满足所述条件的值作为编码时使用的I帧间隔值。
[0009] 优选地,当由于发生场景转换而产生了不遵循调整后的I帧间隔值的I帧时,所述编码模块将在场景转换产生的I帧之前的第一个I帧之后且间隔调整后的I帧间隔值的帧强行编码为I帧;在该强行编码的I帧之后的各帧的编码从该强行编码的I帧开始按照调整后的I帧间隔值来进行。
[0010] 优选地,当所述音频帧序列的编码格式与所述用户输入的流媒体文件参数中的编码格式一致时,所述解码模块和编码模块不对音频帧序列进行解码和重新编码,所述封装模块直接使用所述音频帧序列进行封装。
[0011] 本发明的另一方面提供一种流化音视频文件的方法,包括:参数输入步骤,用于接收用户输入的流媒体文件参数,并将其他模块所需要的参数发送给各模块;解封装步骤,将音视频文件解析为相应的音频帧序列和视频帧序列;解码步骤,将所述视频帧序列中的视频帧还原为RAW格式的视频数据以及将所述音频帧序列中的音频帧还原为PCM格式的音频数据;编码步骤,通过对所述RAW格式的视频数据和所述PCM格式的音频数据进行编码,获得经重新编码后的视频帧序列和经重新编码后的音频帧序列;封装步骤,将重新编码后的视频帧序列和音频帧序列封装为流媒体文件序列;其中,在所述编码步骤中,在编码时使得封装后的流媒体文件序列中的每个流媒体文件的第一个视频帧均为I帧。
[0012] 优选地,所述用户输入的流媒体文件参数包括每个流媒体文件的视频帧数和I帧间隔值;在所述编码步骤中,调整I帧间隔值,使得编码时使用的I帧间隔值能够满足每个流媒体文件的视频帧数除以I帧间隔值的余数为零这一条件。
[0013] 优选地,在所述编码步骤中,使用与用户输入的I帧间隔值最接近的能够满足所述条件的值作为编码时使用的I帧间隔值。
[0014] 优选地,在所述编码步骤中,将用户输入的I帧间隔值依次增减一个由1逐渐增大的值,并将最先能够满足所述条件的值作为编码时使用的I帧间隔值。
[0015] 优选地,在所述编码步骤中,当由于发生场景转换而产生了不遵循调整后的I帧间隔值的I帧时,将在场景转换产生的I帧之前的第一个I帧之后且间隔调整后的I帧间隔值的帧强行编码为I帧;在该强行编码的I帧之后的各帧的编码从该强行编码的I帧开始按照调整后的I帧间隔值来进行。
[0016] 优选地,当所述音频帧序列的编码格式与所述用户输入的流媒体文件参数中的编码格式一致时,在所述解码步骤和编码步骤中不对音频帧序列进行解码和重新编码,在所述封装步骤中直接使用所述音频帧序列进行封装。
[0017] 现有的音视频流化装置获取的流媒体文件序列中,多数流媒体文件的视频帧序列的首帧不是I帧,从而在缺少前一个流媒体文件时,该流媒体文件的视频帧序列的首个I帧之前的帧不能被解码。这样当缺少前一个流媒体文件时,播放这些帧就会出现错误,影响了用户的使用体验。要避免这种情况就必须在播放器中增加额外的组件来解决这一问题。而本发明的音视频流化装置和方法在编码时就使得流媒体文件的首帧为I帧,这样每个流媒体文件不必借助前一个文件的内容就可以解码,且不必对播放器进行改动,提升了用户体验,更好的适应了流媒体播放的需求。

附图说明

[0018] 图1为本发明实施方式涉及的音视频流化装置的结构图。
[0019] 图2为本发明实施方式涉及的音视频流化装置的音频解码模块的结构框图。
[0020] 图3为本发明实施方式涉及的音视频流化装置的视频解码模块的结构框图。
[0021] 图4为本发明实施方式涉及的音视频流化装置的音频编码模块的结构框图。
[0022] 图5为本发明实施方式涉及的音视频流化装置的视频编码模块的结构框图。
[0023] 图6为本发明实施方式涉及的音视频流化方法的处理过程的流程图。
[0024] 图7为本发明实施方式涉及的音视频流化方法的处理过程的步骤S3中音频帧序列解码的处理流程图。
[0025] 图8为本发明实施方式涉及的音视频流化方法的处理过程的步骤S3中视频帧序列解码的处理流程图。
[0026] 图9为本发明实施方式涉及的音视频流化方法的处理过程的步骤S4中音频数据编码的处理流程图。
[0027] 图10为本发明实施方式涉及的音视频流化方法的处理过程的步骤S4中视频数据编码的处理流程图。

具体实施方式

[0028] 下面根据附图所示实施方式阐述本发明。此次公开的实施方式可以认为在所有方面均为例示,不具限制性。本发明的范围不受上述实施方式的说明所限,仅由权利要求书的范围所示,而且包括与权利要求范围具有同样意思及权利要求范围内的所有变形。
[0029] 图1为本发明实施方式涉及的音视频流化装置的结构框图。本发明实施方式涉及的音视频流化装置包括数据接收模块1、解封装模块2、解码模块3、编码模块4、封装模块5和控制模块6。其中解码模块3包括音频解码模块31、视频解码模块32,编码模块4包括音频编码模块41、视频编码模块42。
[0030] 控制模块6用于接收用户设定的要输出的流媒体文件的相关参数,并将各功能模块需要的参数转发给相应的模块。具体来说,用户在控制模块6输入单个流媒体文件的视频帧数N、帧间隔M、音视频编码格式、文件封装格式等。上述数据接收模块1用于接收音视频文件并将接收的音视频文件输送至上述解封装模块2进行相应的解封装。上述解封装模块2从上述数据接收模块1接收上述音视频文件后,根据上述音视频文件的的格式进行解封装。在上述解封装过程中,解封装模块2将各种格式的音视频文件解封装成视频帧序列和音频帧序列。然后,上述解封装模块2将解封装后获得的上述视频帧序列和音频帧序列发送给解码模块3。音频帧序列和视频帧序列被分别输送至解码模块3里的音频解码模块31和视频解码模块32进行相应的解码。在处理开始前,用户将流媒体的相关参数(编码格式、帧率、码率、比特率……)输入给上述控制模块6,控制模块6将相关信息发送给上述解码模块3的音频解码模块31,在对上述音频解码模块31从上述解封装模块2接收到上述被解析的音频帧序列解码之前,首先根据控制模块6发送的相关的流媒体文件参数判断音频帧序列是否需要解码。如果需要解码,音频解码模块31将接收的音频帧序列还原成PCM格式的音频数据,储存在音频解码模块31的存储器316;如果不需要解码,音频解码模块31将接收的音频帧序列直接储存在音频解码模块31的存储器316。上述视频解码模块32接收到来自上述解封装模块2传输的视频帧序列,根据所收到视频帧序列的相应的编码格式将视频帧序列还原成RAW格式的视频数据。将解码后的音频数据和视频数据分别传输给上述编码模块4的音频编码模块41和视频编码模块42。上述控制模块6将流媒体的相关信息发送给上述编码模块4的音频编码模块41和视频编码模块42。音频编码模块41和视频编码模块42根据流媒体的相关参数对由上述解码模块3传输过来的音频数据和视频数据进行相应的编码。如果音频帧在音频解码模块31中没有被解码,即原音频编码格式与需要的格式一致,音频编码模块41不进行编码操作,将音频帧序列暂存在存储器415中。编码模块4将编码后的音频帧序列和视频帧序列传输给上述封装模块5。上述控制模块6将流媒体的相关参数发送给封装模块5,封装模块5根据流媒体的相关参数对由上述编码模块4传输过来的音频帧序列和视频帧序列进行封装,生成相应的流媒体文件。
[0031] 图2为本发明实施方式涉及的音视频流化装置的音频解码模块的结构框图。如图2所示,上述音频解码模块31包括音频编码格式判断单元311、音频解码器选择单元312、数个音频解码器313、314、315……和储存器316。其中上述数个音频解码器313、314、315……对应于不同的解码格式,可以将不同格式的音频进行解码。上述音频编码格式判断单元311可以判断来自上述解封装模块2所解封装的音频帧序列的编码格式并获取该音频帧序列的编码格式的相关参数。同时上述控制模块6将流媒体的相关音频参数传输给上述音频编码格式判断单元311。
[0032] 音频编码格式判断单元311将接收到的流媒体的音频编码格式和收到的音频帧序列的编码格式进行比较,判断是否一致。如果编码格式一致,就不需要对音频帧序列进行解码,上述音频编码格式判断单元311直接将音频帧序列存储在上述储存器316里面。
[0033] 如果编码格式不一致,则需要进行解码。上述音频编码格式判断单元311将需要进行解码的音频帧序列和判断出的该音频帧序列的编码格式一并传输给上述音频解码器选择单元312,上述音频解码器选择单元312可以根据上述音频编码格式判断单元311的判断结果(即上述视频帧序列的编码格式)从解码器313、314、315……中选择相应的音频解码器对上述音频帧序列进行解码,上述相应的音频解码器(即上述音频解码器313、314、315……中之一)对所收到的上述视音频帧序列进行解码,将上述音频帧序列中的音频帧还原为PCM格式数据,将得到的音频数据储存在上述存储器316里面。
[0034] 图3为本发明实施方式涉及的音视频流化装置的视频解码模块的结构框图。如图3所示,上述视频解码模块32包括视频编码格式判断单元321、视频解码器选择单元322、数个视频解码器323、324、325……和存储器326。其中上述数个视频解码器323、324、325……对应于不同的编码格式,可以将不同编码格式的视频进行解码。上述视频编码格式判断单元321可以判断来自上述解封装模块2所解封的视频帧序列的编码格式并获取所解封的视频帧序列的编码格式的相关参数。视频编码格式判断单元321将视频帧序列和判断的结果(即上述视频帧序列的编码格式)传输给上述视频解码器选择单元322。视频解码器选择单元
322根据上述视频编码格式判断单元321的判断结果(即上述视频帧序列的编码格式)从视频解码器323、324、325……中选择相应的视频解码器对上述视频帧序列进行解码,上述相应的视频解码器(即上述视频解码器323、324、325……中之一)对所收到的上述视频帧序列进行解码,将上述视频帧序列中的视频帧还原为RAW格式数据,上述RAW格式数据被暂存在上述存储器326中。
[0035] 图4为本发明实施方式涉及的音视频流化装置的音频编码模块的结构框图。如图4所示,上述音频编码模块41包括音频编码器选择单元411、数个音频编码器412、413、414……和存储器415。其中上述数个音频编码器412、413、414……对应于不同的音频编码格式,可以将音频数据编码按照不同的格式进行编码。上述控制模块6将流媒体的相关参数发送给上述音频编码器选择单元411。上述音频解码模块31将存储器316中的音频数据传输给上述音频编码器选择单元411,如果收到的是音频帧序列,音频编码器选择单元411直接把音频帧序列传输给上述存储器415。如果收到的是解码后的音频数据,音频编码器选择单元411根据从控制模块6收到的流媒体的相关参数从数个音频解码器412、413、414……中选择相应的音频编码器对上述音频数据进行编码,将编码后的音频帧序列储存在上述存储器
415里面。
[0036] 图5为本发明实施方式涉及的视频流化装置的视频编码模块的结构框图。如图5所示,上述视频编码模块42包括视频编码选择单元421、数个视频编码器422、423、424……、储存器425、M值调整单元426和场景转换控制单元427。其中上述数个视频编码器422、423、424……对应于不同的格式,可以将视频数据按照不同的格式进行编码。上述控制模块6将流媒体的相关参数发送给上述视频编码器选择单元421。上述视频解码模块32将存储器326中的视频数据传输给上述视频编码器选择单元421,视频编码器选择单元421根据流媒体文件的相关参数从上述数个视频编码器422、423、424……选择相应的编码器对视频数据进行编码。
[0037] 将视频文件流化为流媒体文件序列后会出现每个流媒体文件的首帧不一定为I帧的情况,导致在缺少前一个流媒体文件时,该流媒体文件的第一个I帧之前的帧无法解码。在流媒体文件的N值给定的前提下,调整编码器的M值的设置可以使得每个流媒体文件的首帧为I帧。这里的N值指的是单个流媒体文件的总帧数,M值指的是编码器编码时相邻两个I帧之间的间隔,例如,如果M值是9,编码器将第1帧编为I帧,第2~9帧编为B帧或P帧,下一个I帧是第10帧,再下一个I帧是第19帧,以此类推。当M与N值之间的数学关系为N mod M=0(N除以M的余数为0)时,可以保证每个流媒体文件的第一帧都是I帧。上述控制模块6将用户输入的M值传输给上述M值调整单元426,M值调整单元426根据用户指定的M值确定一个可以保证每个流媒体文件的第一帧都是I帧的M值。上述M值调整单元426将确定的M值发送给当前使用的视频编码器(即上述数个视频编码422、423、424……中的一个),按上述参数编码后流化得到的每个流媒体文件的首帧均为I帧。但当发生场景转换时,在转换点会产生一个I帧,使得后续I帧的位置发生变化,因此,还不能完全保证流化后得到的流媒体文件首帧为I帧。更进一步,为了保证流化后得到的每个流媒体文件首帧为I帧,设置了场景转换控制单元427对I帧的位置进行调整。M值调整单元426还将确定的M值发送给场景转换控制单元
427,场景转换控制单元427监控当前的视频编码器是否反馈了场景转换的信息。当场景转换发生后,当前视频编码器(即上述数个视频编码422、423、424……中的一个)将场景转换开始的一帧编码为I帧,并向场景转换控制单元427发送产生场景转换的信息。上述场景转换控制单元427根据从M值调整单元426收到的M值确定场景转换开始时的一帧是否处在原I帧应该出现的位置。如果是,不进行处理;如果不是,场景转换控制单元427指令当前视频编码器将场景转换后的第一个应当出现I帧的位置的帧强行编码为I帧。最后将编码后的视频帧序列储存在上述存储器425里面。
[0038] 图6为本发明实施方式涉及的音视频流化装置的处理过程的流程图。下面,参照图6说明本实施方式涉及的音视频流化的处理过程。
[0039] 首先,输入音视频文件,上述数据接收模块1接收上述音视频文件数据并将其输送至上述解封装模块2(步骤S1)。上述解封装模块2对上述音视频文件数据进行解封装,将上述音视频文件数据解析为视频帧序列和音频帧序列,并将上述视频帧序列和音频帧序列分别输送至上述解码模块3中的视频解码模块32和音频解码模块31(步骤S2)。
[0040] 上述解码模块3根据需要对音频帧序列和视频帧序列进行解码(步骤S3)。上述视频解码模块32从上述解封装模块2中获取上述视频帧序列,将上述视频帧序列中的视频帧还原为RAW格式数据,并将上述RAW格式数据存储到上述存储器326中。上述音频解码模块31从上述解封装模块2中获取上述音频帧序列,同时上述控制模块6将流媒体的相关参数传输给上述音频解码模块31,音频解码模块31通过对音频帧序列的相关参数和流媒体的相关参数进行分析,判断是否进行解码。如果需要进行解码,将上述音频帧序列的音频帧还原成PCM格式数据然后存储在上述存储器316中;如果不需要解码,将上述音频帧序列直接存储在上述存储器316中。最后将处理好的音频数据和视频数据分别传输给上述编码模块4中的音频编码模块41和视频编码模块42。
[0041] 上述编码模块4收到解码模块3发送的音视频数据后根据需要对音视频数据进行编码(步骤S4)。上述控制模块6将流媒体的相关参数传输给上述编码模块4。上述编码模块4中的音频编码模块41从上述音频解码模块31中获取音频数据并对其进行编码,在编码之前首先判断音频数据是否需要编码。如果判断需要编码,根据获得的流媒体的相关参数按要求编码成需要的音频帧序列然后存储在上述存储器415中;如果判断不需要编码,则从上述获得的音频数据是没有进行解码的音频帧序列,将音频帧序列直接存储在上述存储器415里面。上述视频编码模块42从上述视频编码模块32中获得上述视频数据,视频编码模块42根据获得的流媒体的相关参数将视频数据编码成需要的视频帧序列然后存储在上述存储器425中。最后将编码后的音频帧序列和视频帧序列传输给上述封装模块5。
[0042] 上述封装模块5从上述控制模块6得到流媒体的相关参数,根据流媒体的相关参数(包括用户输入的单个流媒体文件的视频帧数N)对封装模块5从上述编码模块4中获取的音频帧序列、视频帧序列分段进行封装,形成所需要的流媒体文件序列(步骤S5)。
[0043] 图7为本发明实施方式涉及的音视频流化装置的处理过程的步骤S3中的音频解码处理的流程图。下面,参照图7说明在本实施方式涉及的音视频流化装置中对音频帧序列解码的处理过程。
[0044] 音频编码格式判断单元311基于所接收的流媒体文件的相关参数和基于所接收的音频帧序列的编码格式判断音频帧序列是否需要解码(步骤S311)。如果不需要解码(步骤S311:否),将所接收的音频帧序列传输给上述存储器316;如果需要解码(步骤S311:是),将音频帧序列和判断结果传输给音频解码选择单元312。音频解码器选择单元312根据判断结果选择适当的音频解码器(即音频解码器323、324、325……中之一)对上述音频帧序列进行解码(步骤S312)。上述音频解码器(即音频解码器323、324、325……中之一)将上述音频帧序列还原成PCM格式的数据(步骤S313)。解码后的音频数据存储在存储器316里面(步骤S314)。
[0045] 图8为本发明实施方式涉及的音视频流化装置的处理过程的步骤S3中视频帧序列解码的流程图。下面,参照图8说明在本实施方式涉及的音视频流化装置中对视频帧序列解码的处理过程。
[0046] 视频编码格式判断单元321基于所接收的视频帧序列的编码格式,将判断结果和视频帧序列传输给视频解码器选择单元322(步骤S321)。上述视频解码器选择单元322基于上述判断结果选择相应的解码器(步骤S322)。上述解码器(即解码器323、324、325……中之一)将上述视频帧序列还原成RAW格式数据(步骤S323),并将视频数据存储在上述存储器326(步骤S324)。
[0047] 图9为本发明实施方式涉及的音视频流化装置的处理过程的步骤S4中音频数据编码的处理流程图。下面,参照图9说明在本实施方式涉及的音视频流化装置中对音频数据编码的处理过程。
[0048] 首先音频编码格式判断单元411基于所接收的音频数据进行判断,判断接收的音频数据是否需要编码(步骤S411)。如果接收的数据是音频帧序列,不需要编码(步骤S411:否),直接将音频帧序列存储在上述存储器415里面。如果接收的数据是PCM格式的音频数据,是需要编码的(步骤S411:是)。将基于所接收的流媒体文件的相关参数将音频数据传输给相应的音频编码器(即音频编码器412、413、414……中之一)进行编码(S412)。上述音频编码器(即音频编码器412、413、414……中之一)将上述音频数据编码成所需要格式的音频帧序列(步骤S413)。最后将编码好的音频帧序列存储在上述存储器415中(步骤S414)。
[0049] 图10为本发明实施方式涉及的音视频流化装置的处理过程的步骤S4中视频数据编码的处理流程图。下面,参照图10说明在本实施方式涉及的音视频流化装置中对视频数据编码的处理过程。
[0050] 首先上述视频编码器选择单元421从视频解码模块32获取解码后的视频数据并从控制模块6获取流媒体文件的相关参数,确定所需的视频编码的格式,(步骤S421)。视频编码器选择单元421基于所确定的视频编码格式将视频数据传输给相应的视频编码器(即视频编码器412、413、414……中之一)(步骤S422)。上述M值调整单元426根据流媒体的相关参数确定M值(步骤S423)。在本实施例中,使用与用户输入的I帧间隔值最接近的能够满足所述条件的值作为编码时使用的I帧间隔值;将用户输入的I帧间隔值依次增减一个由1逐渐增大的值,并将最先能够满足所述条件的值作为编码时使用的I帧间隔值。具体来说,M值调整单元426首先判断用户输入的M值与N值之间是否满足N mod M=0,如果满足该条件则将用户输入的M值作为编码器编码时使用的M值,如果不满足该条件则进行调整。M值调整单元426将用户输入的M值逐步增大或减小,判断是否满足该条件,即依次判断M+1、M-1、M+2、M-
2、M+3、M-3等是否满足该条件,将满足条件的值确定为调整后的M值。当前视频编码器(即上述数个视频编码422、423、424……中的一个)根据确定的M值对视频数据进行编码(步骤S424)。在编码过程中可能会遇到场景转换的情况,场景转换会在转换点产生一个I帧,使得后续I帧的位置发生变化,就不能保证流化后得到的流媒体文件首帧为I帧。因此,在编码过程中场景转换控制单元427判断是否发生场景转换(步骤S425)。如果编码过程中没有发生场景转换(步骤S425:否),当前视频编码器(即上述数个视频编码422、423、424……中的一个)继续进行编码,直到结束。如果发生场景转换(步骤S425:是),场景转换控制单元427指令当前视频编码器将场景转换后的按照原来的编码规则第一个应当出现I帧的位置的帧强行编码为I帧(步骤S426)。也就是说,当由于发生场景转换而产生了不遵循调整后的I帧间隔值的I帧时,所述编码模块将在场景转换产生的I帧之前的第一个I帧之后且间隔调整后的I帧间隔值的帧编码为I帧。这样,此后编码器会在该强行编码的I帧后继续以M帧的间隔编码I帧,使得在场景转换后I帧的位置仍然可以保证流媒体文件的首帧为I帧。编码后的视频帧序列被存储在上述存储器425中(步骤S427)。
[0051] 在本实施方式中,将用户输入的I帧间隔值依次增减一个由1逐渐增大的值按照M+1、M-1、M+2、M-2、M+3、M-3等的顺序进行,但不限于此,也可以按照M-1、M+1、M-2、M+2、M-3、M+
3等的顺序进行。
[0052] 应当理解以上说明书中所描述的具体实施方式和实施例仅用于说明本发明而不用于限制本发明的范围。在阅读了本发明之后,本领域技术人员对本发明的各种等同形式的修改均落于本申请所附权利要求所限定的范围。