一种将音视频文件流化的装置和方法
【技术领域】
[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用于接收用户设定的要输出