CN102647584A - 一种视频文件生成方法及系统 - Google Patents

一种视频文件生成方法及系统 Download PDF

Info

Publication number
CN102647584A
CN102647584A CN2012101267881A CN201210126788A CN102647584A CN 102647584 A CN102647584 A CN 102647584A CN 2012101267881 A CN2012101267881 A CN 2012101267881A CN 201210126788 A CN201210126788 A CN 201210126788A CN 102647584 A CN102647584 A CN 102647584A
Authority
CN
China
Prior art keywords
video
code stream
original video
file
original
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2012101267881A
Other languages
English (en)
Inventor
叶荣华
刘志聪
谢然
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Ncast Electronic Science & Technology Co Ltd
Original Assignee
Guangzhou Ncast Electronic Science & Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Ncast Electronic Science & Technology Co Ltd filed Critical Guangzhou Ncast Electronic Science & Technology Co Ltd
Priority to CN2012101267881A priority Critical patent/CN102647584A/zh
Publication of CN102647584A publication Critical patent/CN102647584A/zh
Pending legal-status Critical Current

Links

Images

Abstract

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

Description

一种视频文件生成方法及系统
技术领域
本申请属于多媒体数据处理的技术领域,特别是一种视频文件生成方法及系统。
背景技术
如图1所示,现有技术中生成某一格式视频文件的流程为:
在步骤S101中,原始视频编码器将视频流写入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的损耗,使得多格式视频文件的生成效率得到了很大提高。
附图说明
图1是现有技术提供的视频文件生成方法的实现流程图;
图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格式等。
由上述可知,通过本申请实施例的方法,只需要一次编码就可以同步生成多个格式的视频文件,每增加一个视频文件格式,仅需要多写入一次文件即可,避免了不必要的编码和解码。
以下对各种视频格式文件的封装细节进行分析。其中,斜体部分为视频帧,前面为视频文件头,后面为视频文件尾。
avi的结构为
RIFF头,RIFF列表1,RIFF列表2(子列表,子列表...)
其中,媒体流格式的RIFF列表中,有一个RIFF子列表,保存了原始视频编码器版本的字段以及视频的长宽等信息。
保存媒体流数据的RIFF列表中有多个RIFF子列表,分别包含原始视频码流中的每一帧,以及每一帧的时间戳。
Mkv的结构为
EBML,Segment(Track(Video(Block,Block...)))
其中,EBML为MKV的文件头,Segment段里面包含了所有数据,数据中保存了Track段的信息。
Video段中保存了原始视频编码器版本的字段以及视频的长宽等信息,以及多个Block,每一个Block分别包含原始视频码流中的每一帧,以及每一帧的时间戳。
ts的结构为
ts包括了两种类型的数据段:PSI和PES。
结构为:PSI,PES,PES...
PSI为文件头,其中定义了原始视频编码器版本的字段以及视频的长宽等信息。
接下来的每一个PES分别包含原始视频码流中的每一帧,以及每一帧的时间戳。
mov、qt、mp4均是采用相同的QuickTime文件格式。
其结构为:ftyp段,mdat段,moov段(trak段(mdia段(stbl段,stbl段...)))
其中,ftyp段为文件头。
Mdat段中定义了随后moov段中的视频信息,包括原始视频编码器版本的字段以及视频的长宽等信息。
Moov段为视频数据段,其中包含了trak段。
Trak段中包含了media段。
Media段中为多个stbl段,每个stbl段分别包含原始视频码流中的每一帧,以及每一帧的时间戳。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
图5示出了本申请实施例提供的视频文件生成的装置的结构,为了便于说明,仅示出了与本申请实施例相关的部分。
原始视频码流获取单元11获取原始视频码流。
在本申请实施例中,原始视频码流为H.264码流。
如图6所示,作为本申请的一个实施例,原始视频码流获取单元11获取原始视频码流时,原始视频编码器111生成H.264码流并写入内存。原始视频码流读取模块112从内存中读取H.264码流。这样,原始视频码流仅在内存保留一次,可以降低系统损耗。
视频码流分割单元12将所述原始视频码流分割成原始视频帧,各原始视频帧分别具有对应的时间戳。
作为本申请的一个实施例,由于原始视频码流中每帧之间有分隔符,分割时按照分隔符来作分割。
如图7所示,分隔符识别模块121识别原始视频码流中每视频帧之间的分隔符。码流分割模块122按照分隔符将原始视频码流分割成原始视频帧。
视频文件生成单元13将各原始视频帧以及对应的时间戳封装为待生成视频格式文件。
作为本申请的一个实施例,如图8所示,在封装时,视频文件头写入模块131从原始视频码流中读取视频基本信息,按照待生成视频格式将视频基本信息写入待生成视频格式文件的文件头。
视频帧写入模块132按照时间戳的顺序将各原始视频帧写入待生成视频格式文件。
视频文件尾写入模块133在原始视频帧写入结束后,写入待生成视频格式文件的文件尾。
在本申请实施例中,视频基本信息为原始视频编码器版本的字段,以及视频的码率、长宽等信息。
在本申请实施例中,待生成视频格式文件的视频格式可以为avi格式、mkv格式、ts格式、mov格式、qt格式,或者mp4格式等。
在本申请实施例中,对各种格式视频帧的封装细节如上所述,不再赘述。
视频文件尾写入模块133在原始视频帧全部写入结束后,写入待生成视频文件格式的视频文件尾。
本申请实施例通过将原始视频码流分割后,封装成需要生成的视频文件格式,只需要一次编码就可以同步生成多个格式的视频文件,每增加一个视频文件格式,仅需要多写入一次文件,避免了不必要的编码和解码,降低了CPU的损耗,使得多格式视频文件的生成效率得到了很大提高。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
以上对本申请所提供的一种视频文件生成方法及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (12)

1.一种视频文件生成方法,其特征在于,所述方法包括:
获取原始视频码流;
将所述原始视频码流分割成原始视频帧,各原始视频帧分别具有对应的时间戳;
将各原始视频帧以及对应的时间戳封装为待生成视频格式文件。
2.如权利要求1所述的视频文件生成方法,其特征在于,所述原始视频码流为H.264码流。
3.如权利要求2所述的视频文件生成方法,其特征在于,所述获取原始视频码流的步骤包括:
生成H.264码流并写入内存;
从内存中读取所述H.264码流。
4.如权利要求1或2所述的视频文件生成方法,其特征在于,所述将所述原始视频码流分割成原始视频帧的步骤包括:
识别所述原始视频码流中每视频帧之间的分隔符;
按照所述分隔符将所述原始视频码流分割成原始视频帧。
5.如权利要求1所述的视频文件生成方法,其特征在于,所述将各原始视频帧以及对应的时间戳封装为待生成视频格式文件的步骤包括:
从所述原始视频码流中读取视频基本信息,按照待生成视频格式将所述视频基本信息写入所述待生成视频格式文件的文件头;
按照时间戳的顺序将各原始视频帧写入所述待生成视频格式文件;
各原始视频帧写入结束后,写入所述待生成视频格式文件的文件尾。
6.如权利要求5所述的视频文件生成方法,其特征在于,所述视频基本信息包括原始视频编码器版本的字段,以及视频的码率、长宽。
7.如权利要求1、2或3所述的视频文件生成方法,其特征在于,所述待生成视频格式文件的格式包括avi格式,mkv格式,ts格式,mov格式,qt格式,mp4格式。
8.一种视频文件生成系统,其特征在于,所述系统包括:
原始视频码流获取单元,用于获取原始视频码流;
视频码流分割单元,用于将所述原始视频码流分割成原始视频帧,各原始视频帧分别具有对应的时间戳;以及
视频文件生成单元,用于将各原始视频帧以及对应的时间戳封装为待生成视频格式文件。
9.如权利要求8所述的视频文件生成系统,其特征在于,所述原始视频码流为H.264码流。
10.如权利要求9所述的视频文件生成系统,其特征在于,所述原始视频码流获取单元包括:
原始视频编码器,用于生成H.264码流并写入内存;以及
原始视频码流读取模块,用于从内存中读取所述H.264码流。
11.如权利要求8或9所述的视频文件生成系统,其特征在于,所述视频码流分割单元包括:
分隔符识别模块,用于识别所述原始视频码流中每视频帧之间的分隔符;以及
码流分割模块,用于按照所述分隔符将所述原始视频码流分割成原始视频帧。
12.如权利要求8所述的视频文件生成系统,其特征在于,所述视频文件生成单元包括:
视频文件头写入模块,用于从所述原始视频码流中读取视频基本信息,按照待生成视频格式将所述视频基本信息写入所述待生成视频格式文件的文件头;
视频帧写入模块,用于按照时间戳的顺序将各原始视频帧写入所述待生成视频格式文件;以及,
视频文件尾写入模块,用于各原始视频帧写入结束后,写入所述待生成视频格式文件的文件尾。
CN2012101267881A 2012-04-26 2012-04-26 一种视频文件生成方法及系统 Pending CN102647584A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012101267881A CN102647584A (zh) 2012-04-26 2012-04-26 一种视频文件生成方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012101267881A CN102647584A (zh) 2012-04-26 2012-04-26 一种视频文件生成方法及系统

Publications (1)

Publication Number Publication Date
CN102647584A true CN102647584A (zh) 2012-08-22

Family

ID=46660132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012101267881A Pending CN102647584A (zh) 2012-04-26 2012-04-26 一种视频文件生成方法及系统

Country Status (1)

Country Link
CN (1) CN102647584A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357531A (zh) * 2015-12-15 2016-02-24 北京网博视界科技股份有限公司 基于视频局部编码快速切割封装方法
CN105357229A (zh) * 2015-12-22 2016-02-24 深圳市科漫达智能管理科技有限公司 一种视频处理方法及装置
CN109460151A (zh) * 2018-11-13 2019-03-12 江西师范大学 手形输入法
CN113055706A (zh) * 2019-12-27 2021-06-29 北京达佳互联信息技术有限公司 视频合成方法、装置、电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179736A (zh) * 2006-11-08 2008-05-14 中兴通讯股份有限公司 一种传输流节目转换成中国移动多媒体广播节目的方法
CN101193290A (zh) * 2006-11-22 2008-06-04 中兴通讯股份有限公司 一种mpeg-4的传输码流到互联网流媒体联盟流的实时转换系统
CN101207809A (zh) * 2006-12-19 2008-06-25 浙江工业大学 基于视频帧拆分的实时流媒体传输方法及系统
CN101272500A (zh) * 2008-05-14 2008-09-24 中兴通讯股份有限公司 一种视音频数据流的传输方法及系统
CN101562736A (zh) * 2008-04-14 2009-10-21 联咏科技股份有限公司 用来将传输串流转换成文件的方法及相关装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101179736A (zh) * 2006-11-08 2008-05-14 中兴通讯股份有限公司 一种传输流节目转换成中国移动多媒体广播节目的方法
CN101193290A (zh) * 2006-11-22 2008-06-04 中兴通讯股份有限公司 一种mpeg-4的传输码流到互联网流媒体联盟流的实时转换系统
CN101207809A (zh) * 2006-12-19 2008-06-25 浙江工业大学 基于视频帧拆分的实时流媒体传输方法及系统
CN101562736A (zh) * 2008-04-14 2009-10-21 联咏科技股份有限公司 用来将传输串流转换成文件的方法及相关装置
CN101272500A (zh) * 2008-05-14 2008-09-24 中兴通讯股份有限公司 一种视音频数据流的传输方法及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105357531A (zh) * 2015-12-15 2016-02-24 北京网博视界科技股份有限公司 基于视频局部编码快速切割封装方法
CN105357531B (zh) * 2015-12-15 2018-07-20 北京网博视界科技股份有限公司 基于视频局部编码快速切割封装方法
CN105357229A (zh) * 2015-12-22 2016-02-24 深圳市科漫达智能管理科技有限公司 一种视频处理方法及装置
CN105357229B (zh) * 2015-12-22 2019-12-13 深圳市科漫达智能管理科技有限公司 一种视频处理方法及装置
CN109460151A (zh) * 2018-11-13 2019-03-12 江西师范大学 手形输入法
CN113055706A (zh) * 2019-12-27 2021-06-29 北京达佳互联信息技术有限公司 视频合成方法、装置、电子设备和存储介质
CN113055706B (zh) * 2019-12-27 2023-06-20 北京达佳互联信息技术有限公司 视频合成方法、装置、电子设备和存储介质

Similar Documents

Publication Publication Date Title
CN104602105B (zh) 视频文件的播放方法及用户设备
CN102647584A (zh) 一种视频文件生成方法及系统
CN103533305B (zh) 一种b/s架构的免插件通用视频监控系统
CN109936715A (zh) 一种mp4文件的处理方法及其相关设备
CN105049920A (zh) 一种多媒体文件的录制方法和装置
CN104575547A (zh) 多媒体文件制作方法、播放方法及系统
CN105122370A (zh) 对按照容器格式的媒体文件进行的知晓语法的操纵
CN112188150A (zh) 一种利用重封装实现浏览器播放实时监控视频的方法
CN103430558A (zh) 用于优化视频流的方法
CN101489052B (zh) 字幕数据的处理方法及装置
CN102982046B (zh) 一种网页数据压缩存储方法和系统
CN102724553A (zh) 图像编码方法、图像解码方法及图像编码器和图像解码器
CN102279711B (zh) 基于插件的实时数据存储方法及装置
CN102955809A (zh) 媒体文件编辑和播放的方法和系统
US20180139480A1 (en) Systems and methods for digital video sampling and upscaling
CN103618902A (zh) 一种视频文件的转码方法、装置及系统
CN110545460B (zh) 一种媒体文件的预加载方法、装置及存储介质
CN103139227B (zh) 一种应用于移动终端的应用程序数据传输系统和方法
CN105704215A (zh) 文件共享系统及相应的文件发送、接收方法及装置
CN103139528B (zh) 一种音视频数据的处理方法及装置
CN103647970A (zh) 一种分布式转码的音视频同步方法及系统
CN104320454A (zh) 一种在http协议还原中实现自定义输出的方法及系统
CN104506966B (zh) 音视频数据的解码方法及装置
CN102646433B (zh) 数字法庭的流媒体实时录制文件的生成方法、装置和系统
CN104219538B (zh) 一种音视频实时采集上传及数据处理方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
DD01 Delivery of document by public notice

Addressee: Guangzhou Ncast Electronic Science & Technology Co., Ltd.

Document name: the First Notification of an Office Action

CB02 Change of applicant information

Address after: 510665, Guangzhou high tech Industrial Development Zone, Guangdong Science Town 162 science Avenue, creative building B2, building second, 201 units

Applicant after: Guangzhou Ncast Electronic Science & Technology Co., Ltd.

Address before: 510665, Lotte Road, north section of Ke Yun Road, Guangzhou, Guangdong, Tianhe District, 188, Lotte building, 407

Applicant before: Guangzhou Ncast Electronic Science & Technology Co., Ltd.

COR Change of bibliographic data
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120822