本发明涉及多媒体技术领域,尤其涉及一种切割视频文件的方法。
背景技术:
目前,压缩后的视频文件是以图像组(groupofpicture,gop)为单位进行存储的,每一个gop包含若干帧编码后的视频数据,在gop之内视频帧是有相互参考关系的,而gop之间是各自独立的。
在一些视频编辑应用中需要基于视频帧的准确切割,这就要求能够快速准确地切割所要的视频文件。现在主要有两种方法切割视频文件。
一种方法是对整个视频文件进行解码,再计算出准确的切割点,对所有需要的视频帧进行重新编码。这种作法虽然能够准确切割出所要的视频数据,但是处理效率太低,重新编码需要消耗大量系统资源。
另一种方法是根据视频文件大小,按照切割点的比例直接切割视频文件。这种方法虽然能够实现快速切割,但准确度太低,因为切割点所在的gop的视频数据被切割后,有些视频帧不能重新解码,所以不能实现基于视频帧的视频文件的切割。
技术实现要素:
本发明的目的在于提出一种切割视频文件的方法,不仅能够准确切割,保留所需的全部视频帧,而且大大提高切割效率。
为达此目的,本发明采用以下技术方案:一种切割视频文件的方法,包括以下步骤:a、对视频文件的图像组逐个进行扫描,并保存当前图像组的视频数据;
b、找到作为切割点的视频帧时,对切割点所在的当前图像组的全部视频帧进行解码和重排序;
c、将切割后当前图像组所需的视频帧进行编码,生成新的图像组;
d、将视频文件切割后所需的、但不包括切割点的所有图像组数据与所述新的图像组数据进行合并。
步骤c中,对切割后当前图像组所需的视频帧进行编码的编码方式与视频文件的编码方式一致。
步骤d进一步包括以下步骤:将视频文件切割后所需的、但不包括切割点的所有图像组的数据做基于文件的复制;将复制的数据与所述新的图像组数据进行合并。
采用了本发明的技术方案,不仅可以实现切割后的视频文件准确保留所需的全部视频帧,而且因为大部分视频数据只是做文件拷贝,所以切割效率非常高。
附图说明
图1是本发明具体实施方式中切割视频文件的流程图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
图1是本发明具体实施方式中切割视频文件的流程图。如图1所示,该切割视频文件的方法,包括以下步骤:步骤101、对视频文件的图像组逐个进行扫描,并保存当前图像组的视频数据。
步骤102、找到作为切割点的视频帧时,对切割点所在的当前图像组的全部视频帧进行解码和重排序。
步骤103、将切割后当前图像组所需的视频帧(也即对视频文件切割后,该图像组中还需要保留的视频帧)进行编码,生成新的图像组。对切割后当前图像组所需的视频帧进行编码的编码方式与原来视频文件的编码方式一致。
步骤104、将视频文件切割后所需的、但不包括切割点的所有图像组的数据(也即对视频文件切割后,还需要保留的图像组的数据)做基于文件的复制,将复制的数据与新的图像组数据进行合并,形成新的视频文件。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
1.一种切割视频文件的方法,其特征在于,包括以下步骤:
a、对视频文件的图像组逐个进行扫描,并保存当前图像组的视频数据;
b、找到作为切割点的视频帧时,对切割点所在的当前图像组的全部视频帧进行解码和重排序;
c、将切割后当前图像组所需的视频帧进行编码,生成新的图像组;
d、将视频文件切割后所需的、但不包括切割点的所有图像组数据与所述新的图像组数据进行合并。
2.根据权利要求1所述的一种切割视频文件的方法,其特征在于,步骤c中,对切割后当前图像组所需的视频帧进行编码的编码方式与视频文件的编码方式一致。
3.根据权利要求1所述的一种切割视频文件的方法,其特征在于,步骤d进一步包括以下步骤:
将视频文件切割后所需的、但不包括切割点的所有图像组的数据做基于文件的复制;
将复制的数据与所述新的图像组数据进行合并。