一种通过处理时码跳变以使视音频同步的方法技术

技术编号:7976690 阅读:294 留言:0更新日期:2012-11-16 02:05
本发明专利技术公开了一种通过处理时码跳变以使视音频同步的方法,通过判断当前PTS与上个PTS相比是否发生跳变;判断所述当前PTS对应的当前帧是否为关键帧,若否,丢弃所述当前帧;记录所述当前PTS,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接;计算所述跳变的时长;根据所述跳变的时长修改所述当前PTS,得到修改后的PTS,使所述修改后的PTS与所述上个PTS保持连续,生成衔接后的视频流;判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的音频流将所述衔接后的视频流和所述衔接后的音频流同步输出,使TS流发生时码跳变后也可以实现最终播出时达到视音频同步,且使视频或音频本身不会因为时码的跳变而不连续,极大的提高了节目播出的效果。

【技术实现步骤摘要】

本专利技术涉及视音频剪辑领域,尤其涉及。
技术介绍
随着计算机处理能力的增强,视音频处理技术也有了长足的发展。视音频处理的过程中,视音频剪辑是最常用到的技术。在数字电视系统中,模拟视音频信号按照MPEG-2的标准,经过抽样、量化及压缩编码形成基本码流ES,基本码流ES是不分段的连续码流。把基本码流分割成段,并加上对应的头文件打包形成的打包基本码流PES,PES包和包之间可以是不连续的。在传输时将 PES包再分段打成有固定长度的传送码流TS (TransportStream)或可变长度的节目流PS(ProgramStream)0 TS和PS分别适用于不同的场合应用,节目流PS适合在相对出错较少的环境下使用,其长度是变化的,而传送流TS能够把多个节目在基于一个或多个时间表示的基础上构成一个流,TS适合于出错较多的场合下使用。现有技术中,TS流中间的显示时间标签PTS或解码时间标签DTS等时码会发生跳变,由此会导致跳变处前后视音频的PTS和DTS不连续,甚至音频流和视频流跳变的程度还不一样,这就会造成TS流文件最终播出时视音频不同步,甚至视频或音频本身都不够连续。
技术实现思路
为解决上述问题,本专利技术提供,通过记录跳变前的PTS和DTS,并以此来调整跳变后的PTS和DTS,使视音频本身足够连续,并在此基础上进一步进行视音频同步处理,使TS流发生时码跳变后也可以实现最终播出时达到视音频同步,且使视频或音频本身不会因为时码的跳变而不连续,极大的提高了节目播出的效果。为达到上述目的,本专利技术实施例提供了,包括以下步骤步骤101,接收视音频数据;步骤102,解析所述视音频数据,顺序获取显示时间标签(PTS);步骤103,判断当前PTS与上个PTS相比是否发生跳变,若是,进入步骤104,若否,进入步骤105,其中,所述当前PTS为视频流的PTS ;步骤104,判断所述当前PTS对应的当前巾贞是否为关键巾贞(KeyFrame),若是,进入步骤106,若否,丢弃所述当前帧;步骤105,记录所述当前PTS,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,进入步骤109 ;步骤106,计算所述跳变的时长;步骤107,根据所述跳变的时长修改所述当前PTS,得到修改后的PTS,使所述修改后的PTS与所述上个PTS保持连续,生成衔接后的视频流;步骤108,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的首频流;进入步骤109 ;步骤109,将所述衔接后的视频流和所述衔接后的音频流同步输出。本专利技术实施例的技术方案带来的有益效果如下通过步骤101,接收视音频数据;步骤102,解析所述视音频数据,顺序获取显示时间标签(PTS);步骤103,判断当前PTS与上个PTS相比是否发生跳变,若是,进入步骤104,若否,进入步骤105,其中,所述当前PTS为视频流的PTS ;步骤104,判断所述当前PTS对应的当前帧是否为关键帧(KeyFrame),若是,进入步骤106,若否,丢弃所述当前帧;步骤105,记录所述当前PTS,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,进入步骤109 ;步骤106,计算所述跳变的时长;步骤107,根据所述跳变的时长修改所述当前PTS,得到修改后的PTS,使所述修改后的PTS与所 述上个PTS保持连续,生成衔接后的视频流;步骤108,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的音频流;进入步骤109 ;步骤109,将所述衔接后的视频流和所述衔接后的音频流同步输出,使TS流发生时码跳变后也可以实现最终播出时达到视音频同步,且使视频或音频本身不会因为时码的跳变而不连续,极大的提高了节目播出的效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I是本专利技术实施例流程图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供了,如图1,包括以下步骤步骤101,接收视音频数据;步骤102,解析所述视音频数据,顺序获取显示时间标签(PTS);判断所述当前PTS与上个PTS的绝对差值是否大于2秒,若是则判定发生跳变;其中,若所述当前PTS的第33为是0,且所述上个PTS的第33为是I,则将所述上个PTS增加0x200000000再与所述当前PTS进行比较。其中,计算所述跳变时长具体为跳变时长=当前PTS-上一帧视频持续时长-max (上一帧视频ui64PTS,上一帧音频 ui64PTS);其中,所述ui64PTS是将PTS预先定义为unsifned 64bit int类型的数据。步骤103,判断当前PTS与上个PTS相比是否发生跳变,若是,进入步骤104,若否,进入步骤105,其中,所述当前PTS为视频流的PTS ;步骤104,判断所述当前PTS对应的当前巾贞是否为关键巾贞(KeyFrame),若是,进入步骤106,若否,丢弃所述当前帧;步骤105,记录所述当前PTS,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,进入步骤109 ;其中,所述判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的音频流具备包括判断当前音频PTS与上个音频PTS相比是否发生跳变,若否,记录当前音频PTS,若是,计算所述跳变的时长; 根据所述跳变的时长修改所述当前音频PTS,得到修改后的音频PTS,使所述修改后的音频PTS与所述上个音频PTS保持连续,生成衔接后的音频流;判断是否所有音频流都发生变化,若是,则处理所述所有音频流。步骤106,计算所述跳变的时长;步骤107,根据所述跳变的时长修改所述当前PTS,得到修改后的PTS,使所述修改后的PTS与所述上个PTS保持连续,生成衔接后的视频流;判断是否所有视频流都发生变化,若是,则处理所述所有视频流。步骤108,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的首频流;进入步骤109 ;其中,所述判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的音频流具体包括判断当前音频PTS与上个音频PTS相比是否发生跳变,若否,记录当前音频PTS,若是,计算所述跳变的时长;根据所述跳变的时长修改所述当前音频PTS,得到修改后的音频PTS,使所述修改后的音频PTS与所述上个音频PTS保持连续,生成衔接后的音频流;判断是否所有音频流都发生变化,若是,则处理所述所有音频流。步骤109,将所述衔接后的视频流和所述衔接后的音频流同步输出。其中,上述步骤中,所述上个PTS具体为所述当前PTS之前最大的PTS。本专利技术实施例的技术方案带来的有益效果如下通过步骤101,接收视音频数据;步骤102,解析所述视音频数据,顺序获取显示时间标签(PTS);步骤103,判本文档来自技高网...

【技术保护点】
一种通过处理时码跳变以使视音频同步的方法,其特征在于,包括以下步骤:步骤101,接收视音频数据;步骤102,解析所述视音频数据,顺序获取显示时间标签(PTS);步骤103,判断当前PTS与上个PTS相比是否发生跳变,若是,进入步骤104,若否,进入步骤105,其中,所述当前PTS为视频流的PTS;步骤104,判断所述当前PTS对应的当前帧是否为关键帧(KeyFrame),若是,进入步骤106,若否,丢弃所述当前帧;步骤105,记录所述当前PTS,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,进入步骤109;步骤106,计算所述跳变的时长;步骤107,根据所述跳变的时长修改所述当前PTS,得到修改后的PTS,使所述修改后的PTS与所述上个PTS保持连续,生成衔接后的视频流;步骤108,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的音频流;进入步骤109;步骤109,将所述衔接后的视频流和所述衔接后的音频流同步输出。

【技术特征摘要】
1.一种通过处理时码跳变以使视音频同步的方法,其特征在于,包括以下步骤 步骤101,接收视音频数据; 步骤102,解析所述视音频数据,顺序获取显示时间标签(PTS); 步骤103,判断当前PTS与上个PTS相比是否发生跳变,若是,进入步骤104,若否,进入步骤105,其中,所述当前PTS为视频流的PTS ; 步骤104,判断所述当前PTS对应的当前巾贞是否为关键巾贞(KeyFrame),若是,进入步骤106,若否,丢弃所述当前帧; 步骤105,记录所述当前PTS,判断是否有音频流发生跳变,若是,则将所述音频流进行 衔接,进入步骤109 ; 步骤106,计算所述跳变的时长; 步骤107,根据所述跳变的时长修改所述当前PTS,得到修改后的PTS,使所述修改后的PTS与所述上个PTS保持连续,生成衔接后的视频流; 步骤108,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的音频流;进入步骤109 ; 步骤109,将所述衔接后的视频流和所述衔接后的音频流同步输出。2.如权利要求I所述方法,其特征在于,步骤105和步骤108所述判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的音频流具体包括以下步骤 判断当前音频PTS与上个音频PTS相比是否发生跳变,若否,记录当前音频PTS,若是,计算所述跳变的时长; 根据所述跳变的时长修改所述当前音频PTS,得到修改后的音频P...

【专利技术属性】
技术研发人员:夏永宏谷洁平
申请(专利权)人:新奥特北京视频技术有限公司
类型:发明
国别省市:

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

1