视频超快速粗编方法

文档序号:7550112阅读:478来源:国知局
专利名称:视频超快速粗编方法
技术领域
本发明涉及视频粗编方法,尤其涉及视频超快速粗编方法。
背景技术
一般而言,针对高清影片,在不改变原文件ES码流及图面质量的情况下,对影片的音视频合并及拆分可包括例如:添加新内容、删除部分影片数据等。然而,对不同媒体文件的拼接和拆分依然存在诸多挑战,存在对媒体文件的无缝拼接和拆分的需求。

发明内容
提供本发明内容是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。本发明提供了视频超快速粗编方法。该方法包括用于媒体文件拼接的方法和用于媒体文件拆分的方法。其中,用于媒体文件拼接的方法包括,以媒体文件中指定时间附近的最近关键帧为切入或切出点,对多个片段(segment)进行系统层拼接,并将拼接后的文件输出到指定目录。其中,片段可来自于不同文件,但是只有文件属性相同的文件才能够拼接,否则编辑模块会把错误上报。本发明支持以下系统层的拼接,但并不局限于此:传输系统(TransportSystem, TS)、Mpeg4系统(MP4)、节目系统(Program System, PS)。并且,本发明支持以下的文件格式:MPEG-2/TS、MPEG-4Partsl, 14&15、3GPP、MOV、ASF、GXF, MXF,支持以下的视频格式:MPEG-2、MPEG-4AVC (H.264)、VC_l/WMV9、Mpeg-4Part2、H.263,并支持以下的音频格式;MPEG-1、MPEG-2、MPEG-2AAC, AAC-Plus (MPEG-4AAC)、HE-AAC, PCM、WMA, AC3、Dolby E。用于媒体文件拆分的方法包括,将一个完整的媒体文件(例如,音视频文件)按照给定的时间点拆分为一个一个的片段,并将各个片段输出到指定目录。


图1描述了根据本发明的实施例的用于拼接媒体文件的方法的流程图100。图2描述了根据本发明的实施例的用于创建TS流的方法200。图3描述了根据本发明的实施例的用于创建MP4流的方法300。图4描述了根据本发明的实施例的用于创建PS流的方法400。图5描述了用于实现本发明的各实施例的系统框架500。
具体实施例方式
各实施例涉及视频超快速粗编方法。根据该方法,依据设定的片段的时间点信息,从媒体文件中抽取出相关的视频ES数据和音频ES数据,然后再使用这些视频ES数据和音频ES数据创建出媒体流。创建出来的媒体流能够在个人电脑和机顶盒中的媒体播放器中正常播放,并且相邻两个片段的接头处过渡流畅,没有马赛克。同时,创建出来的媒体流满足系统层的一般标准。例如,针对TS的标准为国际标准IS0&IEC13818-UETR290,针对MP4的标准为(N4270-1) ISO媒体文件格式规范,针对PS的标准为国际标准IS0&IEC13818-1。以下参考图1,图1描述了用于拼接媒体文件的方法的流程图100。在步骤102,根据设定的时间点来定位一个或多个媒体文件中的片段。在本发明中,媒体文件的类型可包括但不限于,TS文件、MP4文件和PS文件。以下简要描述下对上述几种类型的媒体文件的一般要求,以下要求仅为示例性而非限制。对TS文件的要求1、传输流(Transport Stream)的要求:1.传输流只能传输一个节目,即:仅支持单路传输流SPTS,不支持多路传输流MPTS。 传输流必须由长度为188字节的包组成。ii1.传输流必须由一个完整传输包开始,并且包含整数个传输包。iv.传输流中的内容不能被加密或者被加扰。V.仅支持节目关联表(PAT)包含在一个传输包中,不支持PAT跨多个传输包;仅支持节目映射表(PMT)包含在一个传输包中,不支持PMT跨多个传输包。v1.在传输流中,节目关联表PAT必须出现在任何该节目的节目映射表PMT之前。

vi1.在传输流中,节目映射表PMT必须位于任何该节目的数据或视频包之前。vii1.节目映射表PMT必须标识该节目所需要的所有PID (分包标识符)。ix.一个节目可以包含一个视频流和不多于四个(< 4)的音频流,不能包含字幕流。X.节目参考时钟(PCR)的PID必须与节目视频流的PID —致。x1.传输流中的时间戳必须正确。如果传输流中的时间戳有问题,不修正时间戳信
肩、O2.基本流(Elementary Stream)的要求1.支持的视频编译码器和音频编译码器为: 视频编译码器:]\^^8-2¥1(^0和!1.264。其中,H.264: V B帧图像不能被I帧和P帧图像参考,只能被其他B帧图像参考。V 比特流中需包含有 access_unit_delimiter_rbsp O。 音频编译码器=Mpeg-1音频层II和Dolby AC-3。ii节目中的每个流必须由完整的访问单元边界(access unit boundary)开始并且包含整数个访问单元。ii1.节目中的视频流和音频流必须符合T-STD缓冲模型。iv.对视频流的要求:.一个传输包只能包含来自一个打包基本流(PES )的数据。 每个PES包只能且必须包含一个完整的视频帧,或者是一个完整的视频域。V.对音频流的要求:.一个传输包只能包含来自一个打包基本流(PES )的数据。 每个PES包只能且必须包含一个或者多个完整的音频帧。
二、对MP4文件的要求1、支持的视频编译码器和音频编译码器为: 视频编译码器:]\^^8-4¥1(^0和!1.264。其中,H.264:.B帧图像不能被I帧和P帧图像参考,只能被其他B帧图像参考。.比特流中需包含有 access_unit_delimiter_rbsp O。 音频编译码器=Mpeg-1音频层II和AAC。三、对PS文件 的要求1、支持的视频编译码器和音频编译码器为: 视频编译码器:]\^^8-2¥1(^0和!1.264。其中,H.264:.B帧图像不能被I帧和P帧图像参考,只能被其他B帧图像参考。.比特流中需包含有 access_unit_delimiter_rbsp O。 音频编译码器=Mpeg-1音频层II和Dolby AC-3。在步骤104,从所定位的片段中提取视频ES数据和音频ES数据。在粗编时,一般以视频GOP (画面组)为基本的处理单元,一个片段中包含整数个G0P。在一个实施例中,可以使用有限状态机来从媒体流中提取视频ES数据和音频ES数据。根据一实施例,由于通常人们对图像的敏感度高于对声音的敏感度,因此两个片段过渡处的视频DTS (DecodingTime-Stamp,解码时间戳)需要保持连续。针对一个片段而言,在找到起始视频数据后,才开始寻找音频数据,并且在找到尾部视频数据后,才停止寻找音频数据,使得视频数据的持续时间大于等于音频数据的持续时间。并且,后一个片段的起始音频数据的时间戳需要大于等于前一个片段的尾部音频数据的时间戳和尾部音频数据的持续时间之和。根据一实施例,如果所提取的ES数据是H.264ES数据,那么还需修正H.264ES数据,使得修正后的
H.264ES数据能够满足IS0&IEC14496-10标准的约束。在步骤106,将所提取的视频ES数据和音频ES数据存储在数据列表中。根据一实施例,所提取的ES数据被存储在编译码器缓冲器(Codec Buffer)中。并且,数据列表中的每一条记录对应于一巾贞的视频ES/音频ES数据。在步骤108,判断是否还有需要处理的片段。如果有,则循环到步骤102,如果无,则继续到步骤110。在步骤110,使用所提取的视频ES数据和音频ES数据来创建出媒体流。根据一实施例,在一个或多个媒体文件是TS文件的情况下,所创建出的媒体流为TS流。图2描述了用于由视频ES数据和音频ES数据创建TS流的方法200。在202,根据所提取的视频ES数据和音频ES数据,分别创建出视频TS包和音频TS包。接着,以视频TS包为主体,执行步骤204-208。在204,按照设定的时间间隔将PAT表和PTM表插入到视频TS包中。在206,按照设定的时间间隔(例如:20毫秒)将具有PCR的TS包插入到视频TS包中。在一个实施例中,PCR= ((output_data_size*8)+88)*27000000/ts_bitrate。其中,output_data_size为PCR字段所在的TS包前(不包括PCR字段所在的TS包)已经输出的实际TS流的尺寸,以字节为单元;ts_bitrate为TS流的码率。在208,当当前音频TS包的DTS减去当前PCR的值约等于常量(例如,1000毫秒)时,插入音频TS包,如此不会出现音频缓冲器的溢出问题。接着可选地,在210,插入空包(Null Packet)。在一实施例中,每放入一个视频TS包后,都需要判断是否需要放入空包。具体判断方式如下:
首先,计算“目标TS流的尺寸”与“实际TS流的尺寸”间的差异delta:delta=(ts_bitrate氺video_packet_dts)-output_data_size。其中,ts_bitrate 是 TS 流的石马率,video_packet_dts是当前视频TS包的解码时间,output_data_size是当前TS包前(不包括当前TS包)已经输出的实际TS流的尺寸。其次,根据delta来判断是否需要放入空包:
权利要求
1.一种用于拼接媒体文件的方法,所述方法包括: 根据设定的时间点来定位一个或多个媒体文件中的多个片段; 从所定位的多个片段中提取视频ES数据和音频ES数据; 使用所提取的视频ES数据和音频ES数据来创建出单个媒体流。
2.如权利要求1所述的方法,其特征在于,从所定位的多个片段中提取视频ES数据和音频ES数据进一步包括,对于每一个片段,在找到起始视频数据后,才开始寻找音频数据,并且在找到尾部视频数据后,才停止寻找音频数据,使得视频数据的持续时间大于等于音频数据的持续时间。
3.如权利要求1所述的方法,其特征在于,从所定位的多个片段中提取视频ES数据和音频ES数据进一步包括,后一个片段的起始音频数据的时间戳大于等于前一个片段的尾部音频数据的时间戳和尾部音频数据的持续时间之和。
4.如权利要求1所述的方法,其特征在于,进一步包括将所提取的视频ES数据和音频ES数据存储在数据列表中。
5.如权利要求1所述的方法,其特征在于,在一个或多个媒体文件是TS文件的情况下,使用所提取的视频ES数据和音频ES数据来创建出单个媒体流进一步包括通过以下步骤来创建单个TS流: 根据所提取的视频ES数据和音频ES数据,分别创建出视频TS包和音频TS包; 以视频TS包为主体,执 行以下步骤: 按照设定的时间间隔将节目关联表(PAT)和节目映射表(PTM)定期插入到视频TS包中; 按照设定的时间间隔将具有节目参考时钟(PCR)的TS包定期插入到视频TS包中; 当当前音频TS包的解码时间(DTS)减去当前PCR的值约等于一常量时,插入音频TS包。
6.如权利要求5所述的方法,其特征在于,所述常量为1000毫秒。
7.如权利要求5所述的方法,其特征在于,进一步包括基于目标TS流的尺寸和实际TS流的尺寸之间的差异来判断是否插入空包。
8.如权利要求1所述的方法,其特征在于,在一个或多个媒体文件是MP4文件的情况下,使用所提取的视频ES数据和音频ES数据来创建出单个媒体流进一步包括通过以下步骤来创建单个MP4流: 依据设定的块尺寸,对所有的视频样本和音频样本进行拆分处理,形成音频块序列、视频块序列,其中一个块由一个或者若干个样本组成; 对所形成的音频块序列、视频块序列进行交错处理,形成“音频块、视频块、音频块、视频块........”这一媒体块序列信息; 依据所述媒体块序列信息,生成指示将媒体数据打包成流媒体的指示信息; 依据所述媒体块序列信息、所述指示信息,生成MP4流。
9.如权利要求8所述的方法,其特征在于,依据所述媒体块序列信息、所述指示信息,生成MP4流进一步包括: 基于所述媒体块序列信息、所述指示信息来生成mdat atom,所述mdat atom用于放置具体的媒体数据,包括音频数据、视频数据、指示数据;生成moov atom,所述moov atom用于放置媒体数据的索引信息; 添加ftyp atom,所述ftyp atom为MP4流的标识符; 其中所述ftyp atom、所述moov atom和所述mdat atom构成了一个完整的MP4流。
10.如权利要求1所述的方法,其特征在于,在一个或多个媒体文件是PS文件的情况下,使用所提取的视频ES数据和音频ES数据来创建出单个媒体流进一步包括通过以下步骤来创建单个PS流: 按照设定的时间间隔定期创建pack_header O ; 根据packjieader O中的SCR字段值,由视频ES数据和音频ES数据创建出PES_packet O,其中一个 pack_header ()对应一个 PES_packet (); 生成pack O序列。
11.如权利要求1所述的方法,其特征在于,所述方法是由编辑器执行的,内容管理系统经由http协议和xml模式与所述编辑器进 行对接,其中所述内容管理系统通过http协议对所述编辑器发送对媒体文件进行粗编的命令,并且所述编辑器用xml模式返回经编辑的数据。
12.—种用于拆分媒体文件的方法,所述方法包括: 根据设定的时间点来定位一个或多个媒体文件中的多个片段; 针对所定位的多个片段中的各个片段,提取视频ES数据和音频ES数据; 使用各个片段中所提取的视频ES数据和音频ES数据来创建出对应于各个片段的单个媒体流。
全文摘要
本发明提供了视频超快速粗编方法。该方法包括用于媒体文件拼接的方法以及用于媒体文件拆分的方法。
文档编号H04N21/2343GK103152607SQ201310009329
公开日2013年6月12日 申请日期2013年1月10日 优先权日2013年1月10日
发明者姚毅, 朱懿, 贾京峰, 颜新波 申请人:上海思华科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1