CN102780929A - 一种通过处理时码跳变以使视音频同步的方法 - Google Patents

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

Info

Publication number
CN102780929A
CN102780929A CN2012101769252A CN201210176925A CN102780929A CN 102780929 A CN102780929 A CN 102780929A CN 2012101769252 A CN2012101769252 A CN 2012101769252A CN 201210176925 A CN201210176925 A CN 201210176925A CN 102780929 A CN102780929 A CN 102780929A
Authority
CN
China
Prior art keywords
pts
audio
current
last
saltus step
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
CN2012101769252A
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.)
China Digital Video Beijing Ltd
Original Assignee
China Digital Video Beijing 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 China Digital Video Beijing Ltd filed Critical China Digital Video Beijing Ltd
Priority to CN2012101769252A priority Critical patent/CN102780929A/zh
Publication of CN102780929A publication Critical patent/CN102780929A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

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

Description

一种通过处理时码跳变以使视音频同步的方法
技术领域
本发明涉及视音频剪辑领域,尤其涉及一种通过处理时码跳变以使视音频同步的方法。
背景技术
随着计算机处理能力的增强,视音频处理技术也有了长足的发展。视音频处理的过程中,视音频剪辑是最常用到的技术。
在数字电视系统中,模拟视音频信号按照MPEG-2的标准,经过抽样、量化及压缩编码形成基本码流ES,基本码流ES是不分段的连续码流。把基本码流分割成段,并加上对应的头文件打包形成的打包基本码流PES,PES包和包之间可以是不连续的。在传输时将PES包再分段打成有固定长度的传送码流TS(TransportStream)或可变长度的节目流PS(ProgramStream)。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流发生时码跳变后也可以实现最终播出时达到视音频同步,且使视频或音频本身不会因为时码的跳变而不连续,极大的提高了节目播出的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是 本发明实施例一种通过处理时码跳变以使视音频同步的方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种通过处理时码跳变以使视音频同步的方法,如图1,包括以下步骤:
步骤101,接收视音频数据;
步骤102,解析所述视音频数据,顺序获取显示时间标签(PTS);
判断所述当前PTS与上个PTS的绝对差值是否大于2秒,若是则判定发生跳变;
其中,若所述当前PTS的第33为是0,且所述上个PTS的第33为是1,则将所述上个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,判断当前PTS与上个PTS相比是否发生跳变,若是,进入步骤104,若否,进入步骤105,其中,所述当前PTS为视频流的PTS;步骤104,判断所述当前PTS对应的当前帧是否为关键帧(KeyFrame),若是,进入步骤106,若否,丢弃所述当前帧;步骤105,记录所述当前PTS,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,进入步骤109;步骤106,计算所述跳变的时长;步骤107,根据所述跳变的时长修改所述当前PTS,得到修改后的PTS,使所述修改后的PTS与所述上个PTS保持连续,生成衔接后的视频流;步骤108,判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的音频流;进入步骤109;步骤109,将所述衔接后的视频流和所述衔接后的音频流同步输出,使TS流发生时码跳变后也可以实现最终播出时达到视音频同步,且使视频或音频本身不会因为时码的跳变而不连续,极大的提高了节目播出的效果。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现,基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

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.如权利要求1所述方法,其特征在于,步骤105和步骤108所述判断是否有音频流发生跳变,若是,则将所述音频流进行衔接,生成衔接后的音频流具体包括以下步骤:
判断当前音频PTS与上个音频PTS相比是否发生跳变,若否,记录当前音频PTS,若是,计算所述跳变的时长;
根据所述跳变的时长修改所述当前音频PTS,得到修改后的音频PTS,使所述修改后的音频PTS与所述上个音频PTS保持连续,生成衔接后的音频流。
3.如权利要求1所述方法,其特征在于,步骤107所述根据所述跳变的时长修改所述当前PTS,得到修改后的PTS,使所述修改后的PTS与所述上个PTS保持连续之后还包括:
判断是否所有视频流都发生变化,若是,则处理所述所有视频流。
4.如权利要求2所述方法,其特征在于,所述根据所述跳变的时长修改所述当前音频PTS,得到修改后的音频PTS,使所述修改后的音频PTS与所述上个音频PTS保持连续之后还包括:
判断是否所有音频流都发生变化,若是,则处理所述所有音频流。
5.如权利要求1-4所述方法,其特征在于,所述上个PTS具体为:所述当前PTS之前最大的PTS。
6.如权利要求1-5所述方法,其特征在于,步骤102所述判断当前PTS与上个PTS相比是否发生跳变具体为:
判断所述当前PTS与上个PTS的绝对差值是否大于2秒,若是则判定发生跳变;
其中,若所述当前PTS的第33为是0,且所述上个PTS的第33为是1,则将所述上个PTS增加0x200000000再与所述当前PTS进行比较。
7.如权利要求1或2所述方法,其特征在于,所述计算所述跳变时长具体为:
跳变时长=当前PTS-上一帧视频持续时长-max(上一帧视频ui64PTS,上一帧音频ui64PTS);
其中,所述ui64PTS是将PTS预先定义为unsifned 64bit int类型的数据。
CN2012101769252A 2012-05-31 2012-05-31 一种通过处理时码跳变以使视音频同步的方法 Pending CN102780929A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012101769252A CN102780929A (zh) 2012-05-31 2012-05-31 一种通过处理时码跳变以使视音频同步的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012101769252A CN102780929A (zh) 2012-05-31 2012-05-31 一种通过处理时码跳变以使视音频同步的方法

Publications (1)

Publication Number Publication Date
CN102780929A true CN102780929A (zh) 2012-11-14

Family

ID=47125666

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012101769252A Pending CN102780929A (zh) 2012-05-31 2012-05-31 一种通过处理时码跳变以使视音频同步的方法

Country Status (1)

Country Link
CN (1) CN102780929A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106358077A (zh) * 2016-09-29 2017-01-25 北京奇艺世纪科技有限公司 一种视频直播方法及装置
CN106470291A (zh) * 2015-08-19 2017-03-01 飞思卡尔半导体公司 从音频/视频解码器中的时间同步中的中断中恢复
CN106507217A (zh) * 2016-10-27 2017-03-15 腾讯科技(北京)有限公司 视频流的时间戳的处理方法和装置
WO2018072098A1 (zh) * 2016-10-18 2018-04-26 深圳市福斯康姆智能科技有限公司 一种音视频同步方法和装置
CN113573119A (zh) * 2021-06-15 2021-10-29 荣耀终端有限公司 多媒体数据的时间戳生成方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020140858A1 (en) * 2001-03-29 2002-10-03 Winbond Electronics Corp. Synchronous decoding method for AV packets
CN1878315A (zh) * 2006-07-14 2006-12-13 杭州国芯科技有限公司 视音频同步方法
CN101500170A (zh) * 2008-01-28 2009-08-05 联发科技股份有限公司 用于补偿音频视频流中时序不匹配的方法
CN101533655A (zh) * 2008-12-19 2009-09-16 徐清华 基于高清媒体播放器的多个ts档视频文件的播放方法
CN101778269A (zh) * 2009-01-14 2010-07-14 扬智电子(上海)有限公司 机顶盒的音视频帧的同步方法
CN101984672A (zh) * 2010-11-03 2011-03-09 深圳芯邦科技股份有限公司 多线程的音视频同步控制方法及装置
CN102075803A (zh) * 2010-12-22 2011-05-25 Tcl通力电子(惠州)有限公司 一种播放音视频同步的方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020140858A1 (en) * 2001-03-29 2002-10-03 Winbond Electronics Corp. Synchronous decoding method for AV packets
CN1878315A (zh) * 2006-07-14 2006-12-13 杭州国芯科技有限公司 视音频同步方法
CN101500170A (zh) * 2008-01-28 2009-08-05 联发科技股份有限公司 用于补偿音频视频流中时序不匹配的方法
CN101533655A (zh) * 2008-12-19 2009-09-16 徐清华 基于高清媒体播放器的多个ts档视频文件的播放方法
CN101778269A (zh) * 2009-01-14 2010-07-14 扬智电子(上海)有限公司 机顶盒的音视频帧的同步方法
CN101984672A (zh) * 2010-11-03 2011-03-09 深圳芯邦科技股份有限公司 多线程的音视频同步控制方法及装置
CN102075803A (zh) * 2010-12-22 2011-05-25 Tcl通力电子(惠州)有限公司 一种播放音视频同步的方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106470291A (zh) * 2015-08-19 2017-03-01 飞思卡尔半导体公司 从音频/视频解码器中的时间同步中的中断中恢复
CN106358077A (zh) * 2016-09-29 2017-01-25 北京奇艺世纪科技有限公司 一种视频直播方法及装置
CN106358077B (zh) * 2016-09-29 2019-05-10 北京奇艺世纪科技有限公司 一种视频直播方法及装置
WO2018072098A1 (zh) * 2016-10-18 2018-04-26 深圳市福斯康姆智能科技有限公司 一种音视频同步方法和装置
CN106507217A (zh) * 2016-10-27 2017-03-15 腾讯科技(北京)有限公司 视频流的时间戳的处理方法和装置
CN106507217B (zh) * 2016-10-27 2019-07-02 腾讯科技(北京)有限公司 视频流的时间戳的处理方法和装置
CN113573119A (zh) * 2021-06-15 2021-10-29 荣耀终端有限公司 多媒体数据的时间戳生成方法及装置

Similar Documents

Publication Publication Date Title
US8606074B2 (en) Method and system for altering the presentation of broadcast content
US8966103B2 (en) Methods and system for processing time-based content
CN103024603B (zh) 一种用于解决播放网络视频时短时停顿的装置及方法
CN102780929A (zh) 一种通过处理时码跳变以使视音频同步的方法
JP2006081146A (ja) シーンチェンジ情報をビデオビットストリーム中に埋め込むシステムおよびその方法
US20130083859A1 (en) Method to match input and output timestamps in a video encoder and advertisement inserter
JP2006115457A (ja) マルチメディア編集情報をマルチメディアビットストリームに埋め込むシステムおよびその方法
CN102404624A (zh) 一种数字机顶盒用支持硬件解码的全格式媒体播放器
WO2017092434A1 (zh) 音视频实时传输方法及装置、音视频实时播放方法及装置
US20070165676A1 (en) Information processing device, information processing method, program, and data structure
CN102724559A (zh) 一种音视频编码同步方法和系统
US20140304303A1 (en) Syntax-aware manipulation of media files in a container format
CN102523510A (zh) 多屏互动方法、装置及数字电视一体机
US20070292103A1 (en) Method and system for altering the presentation of recorded content
MY173071A (en) Conditional access method and apparatus for simultaneously handling multiple television programmes
CN103491430A (zh) 流媒体数据处理方法和电子设备
CN101449584B (zh) 视频处理
CN104113778A (zh) 一种视频流解码方法及装置
US8359413B2 (en) Data stream buffer control using reference time and decoding time
CN104333764A (zh) 一种多路视频播放方法及装置
KR101439475B1 (ko) 동영상 복제 검출 및 추적 장치 및 방법
KR101199166B1 (ko) 보간 프레임 생성 시스템
KR20200041650A (ko) 참조 동영상의 메타 정보에 기반한 훼손 mp4 동영상 파일의 복구 방법 및 장치
CN106792111A (zh) 一种使用ffmpeg接口录制直播网站视频的方法及装置
CN103875252A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20121114