一种视频文件生成方法及系统技术方案

技术编号:7704501 阅读:226 留言:0更新日期:2012-08-25 01:39
本申请提供了一种视频文件生成方法及系统,其中,所述方法包括下述步骤:获取原始视频码流;将所述原始视频码流分割成原始视频帧,各原始视频帧分别具有对应的时间戳;将各原始视频帧以及对应的时间戳封装为待生成视频格式文件。本申请可以同步生成多种格式的视频文件,避免了不必要的编码和解码,降低了CPU的损耗,使得多格式视频的生成效率得到了很大提高。

【技术实现步骤摘要】

本申请属于多媒体数据处理的
,特别是一种视频文件生成方法及系统
技术介绍
如图I所示,现有技术中生成某一格式视频文件的流程为在步骤SlOl中,原始视频编码器将视频流写入H. 264原始视频码流文件;在步骤S102中,某视频文件格式的编码器读取H. 264原始视频码流文件,将视频数据写入该格式的视频文件;在步骤S103中,待生成视频文件格式的解码器读取上述视频文件,将读取的视频数据写入内存;在步骤S104中,待生成视频文件格式的编码器从内存中读取视频数据,将其写入待生成格式的视频文件。由上述流程可以看出,当要生成多种视频文件格式的视频文件时,首先生成出一种格式的视频流并写入文件,然后读取此文件进行解码,用另外ー种格式编码并再次写入文件。如果需要生成多种视频文件格式,则需要根据要生成的视频文件格式多次执行读取文件、写入文件以及解码编码的过程,在读取文件、写入文件以及解码编码过程中CPU的消耗成倍増加,导致视频文件生成的效率较低。因此,目前需要本领域技术人员迫切解决的ー个技术问题就是如何改进现有多格式视频文件的生成方式,以降低CPU的消耗,提高视频生成的效率。
技术实现思路
本申请实施例提供一种视频文件生成方法,解决现有生成多种格式视频文件时CPU的消耗较大,生成效率低下的问题。本申请还提供了一种视频文件生成系统,用以保证上述方法在实际中的应用及实现。本申请实施例公开了ー种视频文件生成方法,所述方法包括下述步骤获取原始视频码流;将所述原始视频码流分割成原始视频帧,各原始视频帧分别具有对应的时间戳;将各原始视频帧以及对应的时间戳封装为待生成视频格式文件。优选的是,所述原始视频码流为H. 264码流。优选的是,所述获取原始视频码流的步骤包括生成H. 264码流并写入内存;从内存中读取所述H. 264码流。优选的是,所述将所述原始视频码流分割成原始视频帧的步骤包括 识别所述原始视频码流中每视频帧之间的分隔符;按照所述分隔符将所述原始视频码流分割成原始视频帧。优选的是,所述将各原始视频帧以及对应的时间戳封装为待生成视频格式文件的步骤包括从所述原始视频码流中读取视频基本信息,按照待生成视频格式将所述视频基本信息写入所述待生成视频格式文件的文件头;按照时间戳的顺序将各原始视频帧写入所述待生成视频格式文件;各原始视频帧写入结束后,写入所述待生成视频格式文件的文件尾。优选的是,所述视频基本信息包括原始视频编码器 版本的字段,以及视频的码率、长宽。优选的是,所述待生成视频格式文件的格式包括avi格式,mkv格式,ts格式,mov格式,Qt格式,mp4格式。本申请实施例同时还公开ー种视频文件生成系统,所述系统包括原始视频码流获取单元,用于获取原始视频码流;视频码流分割単元,用于将所述原始视频码流分割成原始视频帧,各原始视频帧分别具有对应的时间戳;以及视频文件生成単元,用于将各原始视频帧以及对应的时间戳封装为待生成视频格式文件。优选的是,所述原始视频码流为H. 264码流。优选的是,所述原始视频码流获取单元包括原始视频编码器,用于生成H. 264码流并写入内存;以及原始视频码流读取模块,用于从内存中读取所述H. 264码流。优选的是,所述视频码流分割単元包括分隔符识别模块,用于识别所述原始视频码流中每视频帧之间的分隔符;以及码流分割模块,用于按照所述分隔符将所述原始视频码流分割成原始视频帧。优选的是,所述视频文件生成单元包括视频文件头写入模块,用于从所述原始视频码流中读取视频基本信息,按照待生成视频格式将所述视频基本信息写入所述待生成视频格式文件的文件头;视频帧写入模块,用于按照时间戳的顺序将各原始视频帧写入所述待生成视频格式文件;视频文件尾写入模块,用于各原始视频帧写入结束后,写入所述待生成视频格式文件的文件尾。优选的是,所述视频基本信息包括原始视频编码器版本的字段,以及视频的码率、长宽。优选的是,所述待生成视频格式文件的格式包括avi格式,mkv格式,ts格式,mov格式,Qt格式,mp4格式。与现有技术相比,本申请具有以下优点本申请实施例通过将原始视频码流分割后,封装成需要生成的视频文件格式,只需要一次编码就可以同步生成多个格式的视频文件,每增加一个视频文件格式,仅需要多写入一次文件,避免了不必要的编码和解码,降低了 CPU的损耗,使得多格式视频文件的生成效率得到了很大提高。附图说明图I是现有技术提供的视频文件生成方法的实现流程图;图2是本申请实施例提供的视频文件生成方法的实现流程图;图3是本申请实施例提供的原始视频码流分割的实现流程图;图4是本申请实施例中提供的待生成视频格式文件封装的实现流程图;图5是本申请实施例提供的视频文件生成系统的结构图;图6是本申请实施例提供的视频文件生成系统中原始视频码流获取单元的结构图; 图7是本申请实施例提供的视频文件生成系统中视频码流分割単元的结构图;图8是本申请实施例提供的视频文件生成系统中视频文件生成単元的结构图。具体实施例方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。本申请实施例的核心构思之ー在于,将原始视频码流分割后,按照待生成的视频文件格式进行封装,同步生成多个格式的视频文件,大幅度提高多格式视频文件的生成效率。图2示出了本申请实施例提供的视频文件生成方法的实现流程,详述如下在步骤S201中,获取原始视频码流;在本申请实施例中,原始视频码流为H. 264码流。作为本申请的ー个实施例,获取原始视频码流时,首先生成H. 264码流并写入内存,然后从内存中读取H. 264码流,以对原始视频码流进行后续处理。这样,原始视频码流仅在内存保留一次,可以降低系统损耗。 在步骤S202中,将原始视频码流分割成原始视频帧,各原始视频帧具有对应的时间戳;在步骤S203中,将各原始视频帧以及对应的时间戳封装为待生成视频格式文件。在本申请实施例中,为了确保生成的视频文件解码播放的时间正确性,在封装时将原始视频帧和对应的时间戳一起封装。作为本申请的ー个实施例,由于原始视频码流中每帧之间有分隔符,分割时按照分隔符来作分割。图3示出了本申请实施例提供的原始视频码流分割的实现流程,详述如下在步骤S301中,识别原始视频码流中每视频帧之间的分隔符;在步骤S302中,按照分隔符将原始视频码流分割成原始视频帧。图4示出了本申请实施例中提供的待生成视频格式文件封装的实现流程,详述如下在步骤S401中,从原始视频码流中读取视频基本信息,按照待生成视频格式将视频基本信息写入待生成视频格式文件的文件头;在本申请实施例中,视频基本信息为原始视频编码器版本的字段,以及视频的码率、长宽等信息。在步骤S402中,按照时间戳的顺序将各原始视频帧写入待生成视频格式文件;在步骤S403中,各原始视频帧写入结束后,写入待生成视频格式文件的文件尾。在本申请实施例中,待生成视频格式文件的视频格式可以为avi格式、mkv格式、ts格式、mov格式、qt格式,或者mp4格式等。由上述可知,通过本申请实施例的方法,只需要一次编码就可以同步生成多个格 式的视频文件,每增加一个视频文件格式,仅需要多写入一次文件即可,避免了不必要的编码和解码。以下对各种视频格式文件的封装细本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种视频文件生成方法,其特征在于,所述方法包括 获取原始视频码流; 将所述原始视频码流分割成原始视频帧,各原始视频帧分别具有对应的时间戳; 将各原始视频帧以及对应的时间戳封装为待生成视频格式文件。2.如权利要求I所述的视频文件生成方法,其特征在于,所述原始视频码流为H.264码流。3.如权利要求2所述的视频文件生成方法,其特征在于,所述获取原始视频码流的步骤包括 生成H. 264码流并写入内存; 从内存中读取所述H. 264码流。4.如权利要求I或2所述的视频文件生成方法,其特征在于,所述将所述原始视频码流分割成原始视频帧的步骤包括 识别所述原始视频码流中每视频帧之间的分隔符; 按照所述分隔符将所述原始视频码流分割成原始视频帧。5.如权利要求I所述的视频文件生成方法,其特征在于,所述将各原始视频帧以及对应的时间戳封装为待生成视频格式文件的步骤包括 从所述原始视频码流中读取视频基本信息,按照待生成视频格式将所述视频基本信息写入所述待生成视频格式文件的文件头; 按照时间戳的顺序将各原始视频帧写入所述待生成视频格式文件; 各原始视频帧写入结束后,写入所述待生成视频格式文件的文件尾。6.如权利要求5所述的视频文件生成方法,其特征在干,所述视频基本信息包括原始视频编码器版本的字段,以及视频的码率、长宽。7.如权利要求I、2或3所述的视频文件生成方法,其特征在于,所述待生成视频格式文件的格式包括avi格式...

【专利技术属性】
技术研发人员:叶荣华刘志聪谢然
申请(专利权)人:广州盈可视电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1