CN110996182B - 时间戳处理方法、装置、电子设备及计算机存储介质 - Google Patents
时间戳处理方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN110996182B CN110996182B CN201911148832.7A CN201911148832A CN110996182B CN 110996182 B CN110996182 B CN 110996182B CN 201911148832 A CN201911148832 A CN 201911148832A CN 110996182 B CN110996182 B CN 110996182B
- Authority
- CN
- China
- Prior art keywords
- timestamp
- frame
- video
- audio
- time stamp
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/854—Content authoring
- H04N21/8547—Content authoring involving timestamps for synchronizing content
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Television Signal Processing For Recording (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供了一种时间戳处理方法、装置、电子设备及计算机存储介质,以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列,并将第一视频帧时间戳序列中各视频帧的时间戳和第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序。保证输出的视频帧时间戳均匀递增,输出的音频帧时间戳均匀递增,且各音视频帧相互交错递增,规范时间戳,进而提高目标视频的上线转码成功率,提高目标视频的播放质量。
Description
技术领域
本发明涉及视频技术领域,尤其涉及一种时间戳处理方法、装置、电子设备及计算机存储介质。
背景技术
视频网站中内容的素材来源非常丰富,包括自制,用户上传,电视台信号收录,直播转点播等等。由于不同素材的编码方式、封装格式以及音视频的排列方式存在不同的情况,如果原素材的音视频时间戳不规范,在这些素材经过转码成运营码流后,容易产生音视频时间戳不均匀递增的问题,上线转码的成功率低。
发明内容
本发明实施例的目的在于提供一种时间戳处理方法、装置、电子设备及计算机存储介质,以实现目标视频音视频时间戳均匀递增。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种时间戳处理方法,包括:
以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列;
将所述第一视频帧时间戳序列中各视频帧的时间戳和所述第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列。
在本发明实施的第二方面,还提供了一种时间戳处理装置,包括:
生成模块,用于以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列;
第一排序模块,用于将所述第一视频帧时间戳序列中各视频帧的时间戳和所述第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列。
在本发明实施的第三方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现本发明实施例第一方面中所述的方法步骤。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的时间戳处理方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的时间戳处理方法。
本发明实施例提供的时间戳处理方法、装置、电子设备及计算机存储介质,以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为时间戳增量均匀递增生成第一视频帧时间戳序列,以目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为时间戳增量均匀递增生成第一音频帧时间戳序列,并将第一视频帧时间戳序列中各视频帧的时间戳和第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序。保证输出的视频帧时间戳均匀递增,输出的音频帧时间戳均匀递增,且各音视频帧相互交错递增,规范时间戳,进而提高目标视频的上线转码成功率,提高目标视频的播放质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中一种时间戳处理方法的流程图;
图2为本发明实施例中另一种时间戳处理方法的流程图;
图3是本发明实施例中一种时间戳处理装置的结构图;
图4是本发明实施例中另一种时间戳处理装置的结构图;
图5是本发明实施例中又一种时间戳处理装置的结构图;
图6是本发明实施例中一种电子设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为方便理解,在对本发明实施例中的技术方案进行描述时:
VSn表示目标视频中各视频帧在第一时间戳序列中的时间戳;Vn表示目标视频中各视频帧在第二时间戳序列中的时间戳,其中,n表示目标视频帧的帧数;Vfirst表示目标视频中第一个视频帧的时间戳;VDelay表示第一时间间隔,即视频帧时间戳增量;
ASm表示目标视频中各音频帧在第一时间戳序列中的时间戳,Am表示目标视频中各音频帧在第二时间戳序列中的时间戳,其中m表示目标音频帧的帧数;Afirst表示目标视频中第一个音频帧的时间戳;ADelay表示第二时间间隔,即音频帧时间戳增量。
实施例一
请参见图1,图1是本发明实施例提供的一种时间戳处理方法的流程图,该方法可以应用于服务器。
如图1所示,所述方法包括以下步骤:
步骤101、以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列;
步骤102、将所述第一视频帧时间戳序列中各视频帧的时间戳和所述第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列。
本发明实施例中,目标视频是未转码的源视频。所述目标视频中包含视频数据包和音频数据包,将视频数据包和音频数据包进行解码,将会得到视频数据对应的各视频帧的时间戳,以及音频数据对应的各音频帧的时间戳。由于视频网站上视频素材的来源各有不同,不同素材的编码方式和封装格式也千差万别,这将导致所述目标视频的时间戳可能不规范,需要根据所述目标视频进行时间戳均匀递增的修正,生成均匀递增的音视频帧时间戳序列。
在步骤101中,以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列,可以按照如下步骤进行:
S1、确定使视频帧均匀递增的第一时间间隔VDelay,以及使音频帧均匀递增的第二时间间隔ADelay。
其中,所述第一时间间隔VDelay可以根据所述目标视频中视频的帧率确定,具体的,可以表示为:
VDelay=1000ms/视频帧率。
假设视频帧率为25,则所述第一时间间隔为40ms,VDelay=40;
所述第二时间间隔ADelay可以根据所述目标视频中音频的帧采样率和音频采样率确定,具体的,可以表示为:
ADelay=帧采样数*1000ms/音频采样率。
其中,帧采样数由编码器的属性决定,若音频编码AAC(Advanced Audio Coding,高级音频编码)的采样率为44100,假设其帧采样数为1024,则所述第二时间间隔是23.22ms,ADelay=23.22。
S2、使各视频帧时间戳按照VDelay均匀递增,各音频帧的时间戳ADelay均匀递增,可以表示为:
VS(n+1)=VSn+VDelay;
AS(m+1)=ASm+ADelay。
S3、使各视频帧的时间戳以所述目标视频的第一个视频帧的时间戳为起始时间戳均匀递增,各音频帧的时间戳以所述目标视频的第一个音频帧的时间戳为为起始时间戳均匀递增。
其中,所述第一个视频帧的时间戳是指第一个视频帧的源时间戳,所述第一个音频帧的时间戳是指第一个音频帧的源时间戳,可以理解的是,在均匀递增修正过程中,第一个视频帧的时间戳是不变的,第一个音频帧的时间戳也是不变的。
由于所述目标视频是未经过转码的源视频,其第一个视频帧的时间戳和第一个音频帧的时间戳可能不为0,例如:从直播源中截取2分30秒至4分30 秒的片段形成目标视频,则目标视频的第一个帧的时间戳为2分30秒,针对上述情况,要对步骤S2中得到的时间戳加上一个初始值,即各视频帧的时间戳均加上所述目标视频的第一个视频帧的时间戳Vfirst,以及各音频帧的时间戳均加上所述目标视频的第一个音频帧的时间戳Afirst,具体的,可以表示为:
VSn=VSn+Vfirst;
ASm=ASm+Afirst。
由此生成第一视频帧时间戳序列VSn,以及第一音频帧时间戳序列ASm。
在步骤102中,将步骤101中生成的第一视频帧时间戳序列VSn,以及第一音频帧时间戳序列ASm,按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列。所述第一时间戳序列中,各视频帧的时间戳是按照 VDelay均匀递增的,各音频帧的时间戳是按照ADelay均匀递增的。
具体的,将步骤101中获得的第一视频帧时间戳序列VSn,以及第一音频帧时间戳序列ASm,按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列,可以理解为:
从第一视频帧时间戳序列中任意取出一个视频帧,以及从第一音频帧时间戳序列中任意取出一个音频帧,若视频帧的时间戳小于音频帧的时间戳,则先输出视频帧;若视频帧的时间戳大于音频帧的时间戳,则先输出音频帧;若视频帧的时间戳等于音频帧的时间戳,则同时输出视频帧和音频帧。
或者,可以这样理解:将第一视频帧时间戳序列中各视频帧的时间戳与第一音频帧时间戳序列中各音频帧的时间戳基于统一的基准时间轴,按照从小到大的顺序,各视频帧与各音频帧根据时间戳的大小相互交错递增,可以理解的是,在排序过程中,各视频帧之间的相对顺序不变,各音频帧时间戳之间的相对顺序也不变。
为方便理解,在此进行举例说明:
假设第一视频帧时间戳序列中的各视频帧的时间戳分别为:
V1=1s、V2=1.5s、V3=2s、V4=2.5s、···;
第一音频帧时间戳序列中的各音频帧的时间戳分别为:
A1=1s、A2=1.2s、A3=1.4s、A4=1.6s、···;
将他们按照从小到大的顺序进行排序,得到的所述目标视频对应的第一时间戳序列即为:
V1(A1)→A2→A3→V2→A4→V3→V4···。
需要说明的是,在此举例的时间戳数值不代表本实施例中音视频帧时间戳实际的数值,仅为说明作用。
通过排序,生成对应于目标视频的第一时间戳序列,第一时间戳序列上各音视频帧的时间戳处于同一时间轴上相互交错递增,对应于目标视频的各音视频帧相互交错排列,以实现目标视频的音视频数据的正常播放。
在本发明实施例中,以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列,并将第一视频帧时间戳序列中各视频帧的时间戳和第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序。保证输出的视频帧时间戳均匀递增,输出的音频帧时间戳均匀递增,且各音视频帧相互交错递增,规范时间戳,进而提高目标视频的上线转码成功率,提高目标视频的播放质量。
实施例二
请参见图2,图2是本发明实施例提供的另一种时间戳处理方法的流程图,该方法可以应用于服务器。
如图2所示,所述方法包括以下步骤:
步骤201、将目标视频的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列;
步骤202、以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列;
步骤203、将所述第一视频帧时间戳序列中各视频帧的时间戳和所述第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列;
步骤204、分别计算目标视频帧的时间戳偏移量与目标音频帧的时间戳偏移量,其中,所述目标视频帧与所述目标音频帧为所述第一时间戳序列中任意相邻的视频帧与音频帧,所述目标视频帧的偏移量为所述目标视频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值,所述目标音频帧的偏移量为所述目标音频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值;
步骤205、在所述目标视频帧的时间戳偏移量与所述目标音频帧的时间戳偏移量满足预设条件的情况下,对所述第一时间戳序列对应的音频帧进行修正。
本实施例中,在步骤202和步骤203对目标视频的音视频时间戳进行均匀递增修正之前,首先对未进行均匀递增处理的目标视频的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列。所述第二时间戳序列是所述目标视频的源时间戳序列,此时,各视频帧的时间戳非均匀递增,各音频帧的时间戳也是非均匀递增。
具体的,可以理解为:
从目标视频中任意取出一个视频帧,以及一个音频帧,若视频帧的源时间戳小于音频帧的源时间戳,则先输出视频帧;若视频帧的源时间戳大于音频帧的源时间戳,则先输出音频帧;视频帧的源时间戳等于音频帧的源时间戳,则同时输出视频帧和音频帧;
或者,可以理解为:将目标视频中各视频帧的源时间戳与各音频帧的源时间戳基于统一的基准时间轴,按照从小到大的顺序,各视频帧与各音频帧根据源时间戳的大小相互交错递增,可以理解的是,在排序过程中,各视频帧之间的相对顺序不变,各音频帧之间的相对顺序也不变。
为方便理解,在此进行举例说明:
假设目标视频中的各视频帧的源时间戳分别为:
V1=1s、V2=1.5s、V3=1.8s、V4=2.5s、···;
各音频帧的源时间戳分别为:
A1=1s、A2=1.3s、A3=1.4s、A4=1.6s、···。
则输出的第二时间戳序列即为:
V1(A1)→A2→A3→V2→A4→V3→V4···。
可以理解的是,相同视频数据的视频帧在第一时间戳序列和第二时间戳序列中相对于音频帧的位置可能因为修正而不同,但是相同视频数据的视频帧在第一时间戳序列和第二时间戳序列中的帧数n相同,同理,相同音频数据的音频帧在第一时间戳序列和第二时间戳序列中相对于视频帧的位置可能因为修正而不同,但是相同音频数据的音频帧在第一时间戳序列和第二时间戳序列中的帧数m相同。
需要说明的是,在此举例的时间戳数值不代表本实施例中音视频帧时间戳实际的数值,仅为说明作用。
可选的,步骤201包括:
分别获取所述目标视频的各视频帧的源时间戳和各音频帧的源时间戳;
若第一视频帧的源时间戳大于第二视频帧的源时间戳,分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正,其中,所述第一视频帧和所述第二视频帧为所述目标视频中任意相邻的两帧视频帧,且所述第二视频帧位于所述第一视频帧之后;
若第一音频帧的源时间戳大于第二音频帧的源时间戳,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正,其中,所述第一音频帧和所述第二音频帧为所述目标视频中任意相邻的两音频帧,所述第二音频帧位于所述第一音频帧之后。
本实施例中,可以针对目标视频中源视频帧时间戳序列可能存在的视频帧时间戳变小的情况,或者源音频帧时间戳序列可能存在音频帧时间戳变小的情况,对目标视频的源视频帧时间戳序列进行修正,或者对目标视频的源音频帧时间戳序列进行修正,以保证其时间戳是递增的。
本实施例中,第一视频帧和第二视频帧为所述目标视频中任意相邻的两帧视频帧,且第二视频帧位于第一视频帧之后,若第一视频帧的源时间戳大于第二视频帧的源时间戳,则说明第二视频帧的源时间戳出现了变小的情况,应当进行修正。为了保证在第二视频帧之后的音视频帧不出现错乱,且保证音画同步,在对第二视频帧进行修正的同时,也应当对位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行相应的修正。
同理,第一音频帧和第二音频帧为所述目标视频中任意相邻的两帧视频帧,且第二音频帧位于第一音频帧之后,若第一音频帧的源时间戳大于第二音频帧的源时间戳,则说明第二音频帧的源时间戳出现了变小的情况,应当进行修正。为了保证在第二音频帧之后的音视频帧不出现错乱,且保证音画同步,在对第二音频帧进行修正的同时,也应当对位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行相应的修正。
可选的,所述分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正,包括:
计算所述第一视频帧的源时间戳与第二视频帧的源时间戳的第一差值;
根据所述第一差值和第一时间间隔,分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正。
本实施例中,根据所述第一差值和第一时间间隔,分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正,可以为:
计算第一视频帧的源时间戳Vn与第二视频帧的源时间戳Vn+1的差值Vr;
修正后的Vn+1’=Vn+1+Vr+VDelay,同时位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳均加上一个相同的增量Vr+VDelay。
需要说明的是,所述根据所述第二差值和第一时间间隔,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正的实现形式不限于本实施例提供的内容,在此不作任何限定。
可选的,所述分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正,包括:
计算所述第一音频帧的源时间戳与第二音频帧的源时间戳的第二差值;
根据所述第二差值和第二时间间隔,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正;
本实施例中,根据所述第二差值和第二时间间隔,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正,可以为:
计算第一音频帧的源时间戳Am与第二音频帧的源时间戳Am+1的差值Ar;
则修正后的Am+1’=Am+1+Ar+ADelay,同时位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳均加上一个相同的增量Ar+ADelay。
需要说明的是,所述根据所述第二差值和第一时间戳增量,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正的实现形式不限于本实施例提供的内容,在此不作任何限定。
通过上述修正保证目标视频的源时间戳不存在音视频帧时间戳变小的情况,再将修正后的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列。
本实施例中,在步骤202和步骤203对目标视频的各视频帧的时间戳,以及各音频帧的时间戳进行均匀递增修正之前,对目标视频各视频帧的源时间戳以及各音频帧的源时间戳进行递增排序,得到第二时间戳序列,所述第二时间戳序列可以作为判断:均匀递增修正后的时间戳序列中音视频帧是否同步的依据,为了布局清楚,将在后文进行具体说明。
步骤202和步骤203具体实施过程可以分别参照图1所示实施例中对步骤 101和步骤102的说明即可,为避免重复,在此不再赘述。
本实施例中,结合第一时间戳序列中个音视频帧的时间戳以及第二时间戳序列中个音视频帧的时间戳,可以计算目标视频帧和目标音频帧的时间戳偏移量,以此判断目标视频经过修正后是否存在音画不同步的问题。
其中,所述目标视频帧的偏移量为所述目标视频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值,所述目标音频帧的偏移量为所述目标音频帧在所述第二时间戳序列的时间戳与其在所述第二时间戳序列中的时间戳的差值。
在步骤204中,首先根据所述第一时间戳序列,获取目标视频帧的时间戳和目标音频帧在所述第一时间戳序列中的时间戳;以及,根据所述第二时间戳序列,获取目标视频帧的时间戳和目标音频帧在所述第二时间戳序列中的时间戳。可以理解的是,相同视频数据的视频帧在第一时间戳序列和第二时间戳序列中的排序是相同的,以及,相同音频数据的音频帧在第一时间戳序列和第二时间戳序列中的排序也是相同的。
具体的,步骤204可以理解为:
S1、按照所述第一时间戳序列中音视频帧的顺序,从第一帧开始依次读取视频帧或者音频帧,并获取当前读取的视频帧或者音频帧的时间戳。
其中,所述第一帧可能是视频帧,也可能是音频帧,根据所述第一时间戳序列的具体情况确定。假设当前读取的是某一视频帧,则该视频帧为目标视频帧,由于是按照第一时间戳序列依次读取,因此目标音频帧为位于该视频帧之后,与该视频帧相邻的音频帧;假设当前读取的是某一音频帧,则该音频帧为目标音频帧,由于是按照第一时间戳序列依次读取,因此目标视频帧即为位于该音频帧之后,与该音频帧相邻的视频帧。
在确定目标视频帧和目标音频帧之后,获取所述目标视频帧在所述第一时间戳序列中的时间VSn和所述目标音频帧在所述第一时间戳序列中的时间戳 ASm,其中,n和m分别表示目标视频帧和目标音频帧的帧数,由于视频帧和音频帧的时间间隔可能不同,因此目标视频帧的帧数n和目标音频帧的帧数m 也可能不同。
为方便理解,在此举例说明:
假设第一时间戳序列为V1(A1)→A2→A3→V2→A4→V3→V4···为例,若当前读取的是第2帧视频帧V2,则V2为目标视频帧,在V2之后与V2相邻的音频帧为A4,则A4为目标音频帧;若当前读取的是第3帧音频帧A3,在 A3之后与A3相邻的音频帧为V2,则V2为目标视频帧。
由于相同数据的视频帧在第一时间戳序列和第二时间戳序列中的帧数n相同,相同音频数据的音频帧在第一时间戳序列中和第二时间戳序列中的帧数m 相同,因此,根据目标视频帧的帧数n和目标音频帧m可以获取目标视频帧和目标音频帧在所述第二时间戳序列中的时间戳Vn和Am。
S2、计算目标视频帧的时间戳偏移量与目标音频帧的时间戳偏移量。
具体的,所述目标视频帧的时间戳偏移量为所述目标视频帧在所述第二时间戳序列的时间戳Vn与其在所述第一时间戳序列中的时间戳VSn的差值ΔVn,即目标视频帧的源时间戳相对于均匀递增后的修正的时间戳的偏移量:
ΔVn=Vn-VSn
所述目标音频帧的时间戳偏移量为所述目标视频帧在所述第二时间戳序列的时间戳Am与其在所述第一时间戳序列中的时间戳ASm的差值ΔAm,即目标视频帧的源时间戳相对于均匀递增后的修正的时间戳的偏移量:
ΔAm=Am-ASm
本实施例中,目标音视频帧的时间戳偏移量可以表示目标音视频帧的源时间戳相比均匀递增时的递增快慢:若时间戳偏移量大于零,说明目标音视频帧的源时间戳非均匀递增,且相比均匀递增时递增过快;若时间戳偏移量小于零,说明目标音视频帧的源时间戳非均匀递增,且相比均匀递增时递增过快慢;若时间戳偏移量等于零,说明目标音视频帧的源时间戳就是均匀递增的。
为方便理解,在此举例说明:
以视频帧为例,假设第二时间戳序列中的视频帧时间戳序列,即未修正的非均匀递增的视频帧源时间戳序列为:
V1=1s、V2=1.7s、V3=2s、V4=2.3s、···,
假设VDelay=0.5s,经过均匀递增修正后的第一时间戳序列为:
VS1=1s、VS2=1.5s、VS3=2s、VS4=2.5s、···,
当目标视频帧为第2帧视频帧时,目标视频帧的偏移量ΔV3=0.2s,大于零,显然的,目标视频帧的源时间戳1.7s相比均匀递增时的时间戳1.5s递增过快;当目标视频帧为第4帧视频帧时,目标视频帧的偏移量ΔV3=-0.2s,小于零,显然的,目标视频帧的源时间戳2.3s相比均匀递增时的时间戳2.5s递增过慢。
需要说明的是,在此举例的时间戳数值不代表本实施例中音视频帧时间戳实际的数值,仅为说明作用。
由于所述目标视频帧与所述目标音频帧为所述第一时间戳序列中任意相邻的视频帧与音频帧,因此,通过计算并比较目标视频帧的时间戳偏移量和目标音频帧的时间戳偏移量,可以得知修正后的目标视频帧的时间戳与目标音频帧的时间戳相比源时间戳是否同步跳变,以判断基于第一时间戳序列的目标视频在播放时是否存在音画不同步的问题。
具体的,若目标视频帧源时间戳和目标音频帧源时间戳均相比均匀递增修正后递增过快,或者递增过慢,且快慢幅度相同,则说明修正后的目标视频帧与目标音频帧相比源时间戳是同步跳变的,音画仍然同步,不需要修正;若目标视频帧源时间戳和目标音频帧源时间戳相比均匀递增修正后均递增过快,或者递增过慢,且快慢幅度不同,则说明修正后的目标视频帧与目标音频帧不是同步跳变的,音画不同步,则需要修正。
可选的,步骤205包括:
计算所述目标视频帧的时间戳偏移量与所述目标音频帧的时间戳偏移量的偏移量差值;
若所述偏移量差值的绝对值大于预设阈值,对所述目标视频的音频帧进行修正。
本实施例中,考虑用户视觉和听觉感知的一般情况,同时为了减少不必要的修正,破坏音视频帧时间戳的稳定性,在一定范围内的音画不同步可以认为不会被用户感知,这种情况下,可以不对时间戳进行修正。也就是说,在所述目标视频帧的时间戳偏移量ΔVn与所述目标音频帧的时间戳偏移量ΔAm满足一定条件时,才进行修正。
本实施例中,所述偏移量差值为所述目标视频帧的时间戳偏移量ΔVn与所述目标音频帧的时间戳偏移量ΔAm的差值,即目标视频帧的时间戳偏移幅度与目标音频帧的时间戳偏移幅度的差值,可以用ΔT表示,具体的:
ΔT=ΔVn-ΔAm,即
ΔT=(Vn-VSn)-(Am-ASm)
ΔT的绝对值可以表示目标音频帧时间戳偏移量与目标音频帧时间戳偏移量的间隔,即音画不同步的幅度。
本实施例中,可以预设一个阈值,偏移量差值ΔT的绝对值大于所述预设阈值,则说明此时音画不同步的幅度已经可以被用户感知,需要对第一时间戳序列中对应的时间戳进行修正。
具体的,所述预设阈值可以按照如下步骤确定:
若第一时间间隔VDelay大于第二时间间隔ADelay,则所述预设阈值可以确定为第一时间间隔VDelay的1.5倍到3倍,优选地,所述预设阈值为第一时间间隔VDelay的2倍,需要说明的是,所述预设阈值最大不可超过100ms,否则可被用户感知;
若第一时间间隔VDelay小于第二时间间隔ADelay,则所述预设阈值可以确定为第二时间间隔ADelay的1.5倍到3倍,优选地,所述预设阈值为第二时间间隔ADelay的2倍,需要说明的是,所述预设阈值最大不可超过100ms,否则可被用户感知。
本实施例中,所述偏移量差值ΔT可以为正,也可以为负,以判断所述第一时间戳序列是否存在音画不同步的问题。若所述偏移量差值ΔT大于零,说明修正后的目标视频帧的时间戳比修正后的目标音频帧的时间戳跳变快,即目标视频在播放时,视频比音频快;若所述偏移量差值ΔT小于零,说明修正后的目标视频帧的时间戳比修正后的目标音频帧的时间戳跳变慢,即目标视频在播放时,音频比视频快;若所述偏移量差值ΔT等于零,说明修正后的目标视频帧与修正后的目标音频帧同步跳变。
为方便理解,在此举例说明:
假设第一时间间隔VDelay=0.2s,第二时间间隔为0.1s,则进行修正的预设阈值可以确定为0.4s。
假设目标视频帧在第一时间戳序列中的时间戳VSn=1.5s,目标视频帧在第二时间戳序列中的时间戳Vn=0.8s,即目标视频帧的时间戳偏移量ΔVn=-0.7s,即目标视频帧的源时间戳慢了0.7s,修正后的目标视频帧的时间戳向前跳变了 0.7s,分以下四种情况进行分析:
若目标音频帧在第一时间戳序列中的时间戳ASm=1.5s,目标音频帧在第二时间戳序列中的时间戳Am=0.8s,即目标视频帧的时间戳偏移量ΔAn=-0.7s,即目标音频帧的源时间戳慢了0.7s,修正后的目标音频帧的时间戳向前跳变了0.7s。此时,偏移量差值ΔT=0,显然的,目标音视频帧在修正前的时间戳均为0.8s,修正后均为1.5s,二者同步跳变的,音画仍然同步,不需要进行修正。
若目标音频帧在第一时间戳序列中的时间戳ASm=1.3s,目标音频帧在第二时间戳序列中的时间戳Am=0.8s,即目标视频帧的时间戳偏移量ΔAn=-0.5s,即目标音频帧的源时间戳快了0.5s,修正后的目标音频帧的时间戳向后跳变了0.5s。此时,偏移量差值ΔT=-0.2s,其绝对值小于预设阈值0.4s,此时,也不需要进行修正;
若目标音频帧在第一时间戳序列中的时间戳ASm=1s,目标音频帧在第二时间戳序列中的时间戳Am=0.8s,即目标视频帧的时间戳偏移量ΔAn=-0.2s,即目标音频帧的源时间戳快了0.2s,修正后的目标音频帧的时间戳向后跳变了0.2s。此时,偏移量差值ΔT=-0.5s,小于零,其绝对值大于预设阈值0.4s,需要进行修正,且目标音视频帧在修正前的时间戳均为0.8s,应该同时播放视频数据和音频数据,而修正后的目标音频帧在1s时就播放了音频数据,而目标视频帧在 1.5s时才播放视频数据,显然存在音画不同步,且音频快于视频;
若目标音频帧在第一时间戳序列中的时间戳ASm=2s,目标音频帧在第二时间戳序列中的时间戳Am=0.8s,即目标视频帧的时间戳偏移量ΔAn=-1.2s,即目标音频帧的源时间戳快了1.2s,修正后的目标音频帧的时间戳向后跳变了1.2s。此时,偏移量差值ΔT=0.5s,大于零,其绝对值大于预设阈值0.4s,需要进行修正,且目标音视频帧在修正前的时间戳均0.8s,应该同时播放视频数据和音频数据,而修正后的目标音频帧在2s时播放音频数据,而目标视频帧在1.5s时就播放视频数据,显然存在音画不同步,且视频快于音频。
需要说明的是,在此举例的时间戳数值不代表本实施例中音视频帧时间戳实际的数值,仅为说明作用。
可选的,步骤205包括如下一项:
若所述偏移量差值大于零,在所述目标音频帧之后得第一位置插入修正音频帧,其中,所述第一位置的时间戳与所述目标音频帧的时间戳间隔第二时间间隔;
若所述偏移量差值小于零,删除所述目标音频帧。
在本实施例中,若所述偏移量差值大于零,说明修正后的目标视频帧的时间戳比修正后的目标音频帧的时间戳跳变快,即目标视频在播放时,视频比音频快,可以在所述目标音频帧之后间隔第二时间间隔ADelay的第一位置插入修正音频帧,补上音频帧以使音视频帧的时间戳的跳变同步,进而实现音画同步,且同时保证了音频帧的时间戳按照。
若偏移量差值ΔT小于零,说明修正后的目标视频帧的时间戳比修正后的目标音频帧的时间戳跳变慢,即目标视频在播放时,音频比视频快,可以删除所述目标音频帧,以使音视频的跳变同步,进而实现音画同步。
需要说明的是,整个音画同步的修正过程,是按照第二时间戳中音视频帧的排列顺序依次读取音视频帧的时间戳,并通过上述步骤判断当前音视频帧是否存在音画不同步的情况,不论是插入修正音频帧还是删除目标音频帧,每修正一次之后,将继续读取之后的音视频帧,再根据具体情况进行修正或者不修正,以此类推。
可选的,所述修正音频帧为:与所述目标音频帧的音频数据相同的音频帧,或者空音频帧。
本实施例中,所述修正音频帧为与所述目标音频帧的音频数据相同的音频帧,可以理解为:将所述目标音频帧的音频数据复制形成一个新的音频帧,并将该音频帧插入到目标音频帧之后间隔第二时间间隔ADelay的第一位置。或者,可以将一个空音频帧插入到目标音频帧之后间隔第二时间间隔ADelay的第一位置。
本实施例中,在实施例一实现了音视频帧均匀递增的基础上,进一步修正音视频可能存在的音画不同步的问题,进一步保证目标视频时间戳的规范性,进一步提高目标视频上线转码成功率。
请参见图3,图3是本发明实施例提供的一种时间戳处理装置的结构图。
如图3所示,时间戳处理装置300包括:
生成模块301,用于以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列;
第一排序模块302,用于将所述第一视频帧时间戳序列中各视频帧的时间戳和所述第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列。
可选的,如图4所示,所述时间戳处理装置300还包括:
第二排序模块303,用于将目标视频的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列;
计算模块304,用于分别计算目标视频帧的时间戳偏移量与目标音频帧的时间戳偏移量,其中,所述目标视频帧与所述目标音频帧为所述第一时间戳序列中任意相邻的视频帧与音频帧;所述目标视频帧的偏移量为所述目标视频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值,所述目标音频帧的偏移量为所述目标音频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值;
修正模块305,用于在所述目标视频帧的时间戳偏移量与所述目标音频帧的时间戳偏移量满足预设条件的情况下,对所述第一时间戳序列对应的音频帧进行修正。
可选的,如图4所示,所述第二排序模块303包括:
获取单元3031,用于分别获取所述目标视频的各视频帧的源时间戳和各音频帧的源时间戳;
第一修正单元3032,用于若第一视频帧的源时间戳大于第二视频帧的源时间戳,分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正,其中,所述第一视频帧和所述第二视频帧为所述目标视频中任意相邻的两视频帧,且所述第二视频帧位于所述第一视频帧之后;
第二修正单元3033,用于若第一音频帧的源时间戳大于第二音频帧的源时间戳,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正,其中,所述第一音频帧和所述第二音频帧为所述目标视频中任意相邻的两音频帧,所述第二音频帧位于所述第一音频帧之后;
排序单元3034,用于将修正后的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列。
可选的,所述第一修正单元3032包括:
第一计算子单元,用于计算所述第一视频帧的源时间戳与第二视频帧的源时间戳的第一差值;
第一修正子单元,用于根据所述第一差值和第一时间间隔,分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正。
可选的,所述第二修正单元3033包括:
第二计算子单元,用于计算所述第一音频帧的源时间戳与第二音频帧的源时间戳的第二差值;
第二修正子单元,用于根据所述第二差值和第二时间间隔,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正。
可选的,如图5所示,所述修正模块305包括:
计算单元3051,用于计算所述目标视频帧的时间戳偏移量与所述目标音频帧的时间戳偏移量的偏移量差值;
第三修正单元3052,用于若所述偏移量差值的绝对值大于预设阈值,对所述第一时间戳序列对应的音频帧进行修正。
可选的,所述第三修正单元3052包括如下一项:
修正子单元,用于若所述偏移量差值大于零,在所述目标音频帧之后得第一位置插入修正音频帧,其中,所述第一位置的时间戳与所述目标音频帧的时间戳间隔第二时间间隔;
修正子单元,用于若所述偏移量差值小于零,删除所述目标音频帧。
可选的,所述修正音频帧为:
与所述目标音频帧的音频数据相同的音频帧,或者空音频帧。
请参见图6,图6是本发明实施例提供的一种电子设备的结构图。
如图6所示,电子设备600包括处理器601、通信接口602、存储器603及通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。
其中,存储器603用于存放计算机程序。
其中,处理器601用于执行存储器603上所存放的程序时,实现如下步骤:
以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列;
将所述第一视频帧时间戳序列中各视频帧的时间戳和所述第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列。
可选的,在所述以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列之前,所述方法还包括:
将目标视频的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列;
在所述将所述第一视频帧时间戳序列中各视频帧的时间戳和所述第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列之后,所述方法还包括:
分别计算目标视频帧的时间戳偏移量与目标音频帧的时间戳偏移量,其中,所述目标视频帧与所述目标音频帧为所述第一时间戳序列中任意相邻的视频帧与音频帧;所述目标视频帧的偏移量为所述目标视频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值,所述目标音频帧的偏移量为所述目标音频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值;
在所述目标视频帧的时间戳偏移量与所述目标音频帧的时间戳偏移量满足预设条件的情况下,对所述第一时间戳序列对应的音频帧进行修正。
可选的,所述将目标视频的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列,包括:
分别获取所述目标视频的各视频帧的源时间戳和各音频帧的源时间戳;
若第一视频帧的源时间戳大于第二视频帧的源时间戳,分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正,其中,所述第一视频帧和所述第二视频帧为所述目标视频中任意相邻的两帧视频帧,且所述第二视频帧位于所述第一视频帧之后;
若第一音频帧的源时间戳大于第二音频帧的源时间戳,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正,其中,所述第一音频帧和所述第二音频帧为所述目标视频中任意相邻的两音频帧,所述第二音频帧位于所述第一音频帧之后。
将修正后的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列。
可选的,所述分别对所述第二视频帧的源时间戳、位于所述第二视频帧之其后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正,包括:
计算所述第一视频帧的源时间戳与第二视频帧的源时间戳的第一差值;
根据所述第一差值和第一时间间隔,分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正。
可选的,所述分别对所述第二音频帧的源时间戳、位于所述第二音频帧之其后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正,包括:
计算所述第一音频帧的源时间戳与第二音频帧的时间戳的第二差值;
根据所述第二差值和第二时间间隔,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正。
可选的,所述在所述目标视频帧的时间戳偏移量与所述目标音频帧的时间戳偏移量满足预设条件的情况下,对所述第一时间戳序列对应的音频帧进行修正,包括:
计算所述目标视频帧的时间戳偏移量与所述目标音频帧的时间戳偏移量的偏移量差值;
若所述偏移量差值的绝对值大于预设阈值,对所述第一时间戳序列对应的音频帧进行修正。
可选的,所述对所述第一时间戳序列的音频帧进行修正,包括如下一项:
若所述偏移量差值大于零,在所述目标音频帧之后得第一位置插入修正音频帧,其中,所述第一位置的时间戳与所述目标音频帧的时间戳间隔第二时间间隔;
若所述偏移量差值小于零,删除所述目标音频帧。
可选的,所述修正音频帧包括:
与所述目标音频帧的音频数据相同的音频帧,或者空音频帧。
上述电子设备600提到的通信总线604可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线604可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口602用于上述电子设备600与其他设备之间的通信。
存储器603可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器601可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的时间戳处理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的时间戳处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种时间戳处理方法,其特征在于,包括以下步骤:
以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列;
将所述第一视频帧时间戳序列中各视频帧的时间戳和所述第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列;
在所述以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列之前,所述方法还包括:
将目标视频的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列;
在所述将所述第一视频帧时间戳序列中各视频帧的时间戳和所述第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列之后,所述方法还包括:
分别计算目标视频帧的时间戳偏移量与目标音频帧的时间戳偏移量,其中,所述目标视频帧与所述目标音频帧为所述第一时间戳序列中任意相邻的视频帧与音频帧,所述目标视频帧的偏移量为所述目标视频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值,所述目标音频帧的偏移量为所述目标音频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值;
计算所述目标视频帧的时间戳偏移量与所述目标音频帧的时间戳偏移量的偏移量差值;
若所述偏移量差值的绝对值大于预设阈值,对所述第一时间戳序列对应的音频帧进行修正。
2.根据权利要求1所述的方法,其特征在于,所述将目标视频的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列,包括:
分别获取所述目标视频的各视频帧的源时间戳和各音频帧的源时间戳;
若第一视频帧的源时间戳大于第二视频帧的源时间戳,分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正,其中,所述第一视频帧和所述第二视频帧为所述目标视频中任意相邻的两视频帧,且所述第二视频帧位于所述第一视频帧之后;
若第一音频帧的源时间戳大于第二音频帧的源时间戳,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正,其中,所述第一音频帧和所述第二音频帧为所述目标视频中任意相邻的两音频帧,所述第二音频帧位于所述第一音频帧之后;
将修正后的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列。
3.根据权利要求2所述的方法,其特征在于,所述分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正,包括:
计算所述第一视频帧的源时间戳与第二视频帧的源时间戳的第一差值;
根据所述第一差值和第一时间间隔,分别对所述第二视频帧的源时间戳、位于所述第二视频帧之后的视频帧的源时间戳和位于所述第二视频帧之后的音频帧的源时间戳进行修正。
4.根据权利要求2所述的方法,其特征在于,所述分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正,包括:
计算所述第一音频帧的源时间戳与第二音频帧的源时间戳的第二差值;
根据所述第二差值和第二时间间隔,分别对所述第二音频帧的源时间戳、位于所述第二音频帧之后的视频帧的源时间戳和位于所述第二音频帧之后的音频帧的源时间戳进行修正。
5.根据权利要求1所述的方法,其特征在于,所述对所述第一时间戳序列对应的音频帧进行修正,包括如下一项:
若所述偏移量差值大于零,在所述目标音频帧之后的第一位置插入修正音频帧,其中,所述第一位置的时间戳与所述目标音频帧的时间戳间隔第二时间间隔;
若所述偏移量差值小于零,删除所述目标音频帧。
6.根据权利要求5所述的方法,其特征在于,所述修正音频帧包括:
与所述目标音频帧的音频数据相同的音频帧,或者空音频帧。
7.一种时间戳处理装置,其特征在于,包括:
生成模块,用于以目标视频的第一个视频帧的时间戳为起始时间戳,以第一时间间隔为视频帧时间戳增量,生成均匀递增的第一视频帧时间戳序列,以及以所述目标视频的第一个音频帧的时间戳为起始时间戳,以第二时间间隔为音频帧时间戳增量,生成均匀递增的第一音频帧时间戳序列;
第一排序模块,用于将所述第一视频帧时间戳序列中各视频帧的时间戳和所述第一音频帧时间戳序列中各音频帧的时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第一时间戳序列;
所述装置还包括:
第二排序模块,用于将目标视频的各视频帧的源时间戳和各音频帧的源时间戳按照从小到大的顺序进行排序,得到对应于所述目标视频的第二时间戳序列;
计算模块,用于分别计算目标视频帧的时间戳偏移量与目标音频帧的时间戳偏移量,其中,所述目标视频帧与所述目标音频帧为所述第一时间戳序列中任意相邻的视频帧与音频帧;所述目标视频帧的偏移量为所述目标视频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值,所述目标音频帧的偏移量为所述目标音频帧在所述第二时间戳序列的时间戳与其在所述第一时间戳序列中的时间戳的差值;
修正模块,所述修正模块包括:
计算单元,用于计算所述目标视频帧的时间戳偏移量与所述目标音频帧的时间戳偏移量的偏移量差值;
第三修正单元,用于若所述偏移量差值的绝对值大于预设阈值,对所述第一时间戳序列对应的音频帧进行修正。
8.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1至6中任一所述的方法步骤。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911148832.7A CN110996182B (zh) | 2019-11-21 | 2019-11-21 | 时间戳处理方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911148832.7A CN110996182B (zh) | 2019-11-21 | 2019-11-21 | 时间戳处理方法、装置、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110996182A CN110996182A (zh) | 2020-04-10 |
CN110996182B true CN110996182B (zh) | 2021-07-23 |
Family
ID=70085784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911148832.7A Active CN110996182B (zh) | 2019-11-21 | 2019-11-21 | 时间戳处理方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110996182B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464256A (zh) * | 2020-04-14 | 2020-07-28 | 北京百度网讯科技有限公司 | 时间戳的校正方法、装置、电子设备和存储介质 |
CN112423121A (zh) * | 2020-08-11 | 2021-02-26 | 上海幻电信息科技有限公司 | 视频测试文件生成方法、装置及播放器测试方法、装置 |
CN113596549B (zh) * | 2020-10-13 | 2023-09-22 | 杭州涂鸦信息技术有限公司 | 基于不同参考时钟的音视频同步方法、装置和计算机设备 |
CN114374871B (zh) * | 2020-10-15 | 2023-11-14 | 瑞昱半导体股份有限公司 | 串流媒体的时戳处理方法 |
CN114630148B (zh) * | 2020-12-11 | 2023-11-14 | 上海哔哩哔哩科技有限公司 | 视频处理方法及装置 |
CN113573119B (zh) * | 2021-06-15 | 2022-11-29 | 荣耀终端有限公司 | 多媒体数据的时间戳生成方法及装置 |
CN113905266B (zh) * | 2021-10-11 | 2024-04-30 | 杭州萤石软件有限公司 | 音视频数据的处理方法、装置、设备及存储介质 |
CN113949898B (zh) * | 2021-10-13 | 2024-03-08 | 北京奇艺世纪科技有限公司 | 多媒体处理方法、装置、设备和存储介质 |
CN114979681A (zh) * | 2022-04-11 | 2022-08-30 | 上海哔哩哔哩科技有限公司 | 流媒体数据的时间戳更新方法及装置 |
CN115171241B (zh) * | 2022-06-30 | 2024-02-06 | 南京领行科技股份有限公司 | 一种视频帧定位方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105280205A (zh) * | 2014-05-30 | 2016-01-27 | 深圳锐取信息技术股份有限公司 | 非线性编辑软件音视频同步处理方法及装置 |
CN108391176A (zh) * | 2018-04-09 | 2018-08-10 | 四川百视通科技有限公司 | 一种rtmp协议到hls协议的实时转换系统及其工作方法 |
CN109640141A (zh) * | 2018-12-19 | 2019-04-16 | 深圳银澎云计算有限公司 | 一种音频时间戳的校正方法、校正装置及音视频终端 |
CN109905763A (zh) * | 2019-03-20 | 2019-06-18 | 四川长虹电器股份有限公司 | 优化播放器音频播放卡顿的方法 |
US10448123B1 (en) * | 2018-07-02 | 2019-10-15 | The Nielsen Company (Us), Llc | Methods and apparatus to extend a timestamp range supported by a watermark |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100180224A1 (en) * | 2009-01-15 | 2010-07-15 | Open Labs | Universal music production system with added user functionality |
-
2019
- 2019-11-21 CN CN201911148832.7A patent/CN110996182B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105280205A (zh) * | 2014-05-30 | 2016-01-27 | 深圳锐取信息技术股份有限公司 | 非线性编辑软件音视频同步处理方法及装置 |
CN108391176A (zh) * | 2018-04-09 | 2018-08-10 | 四川百视通科技有限公司 | 一种rtmp协议到hls协议的实时转换系统及其工作方法 |
US10448123B1 (en) * | 2018-07-02 | 2019-10-15 | The Nielsen Company (Us), Llc | Methods and apparatus to extend a timestamp range supported by a watermark |
CN109640141A (zh) * | 2018-12-19 | 2019-04-16 | 深圳银澎云计算有限公司 | 一种音频时间戳的校正方法、校正装置及音视频终端 |
CN109905763A (zh) * | 2019-03-20 | 2019-06-18 | 四川长虹电器股份有限公司 | 优化播放器音频播放卡顿的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110996182A (zh) | 2020-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110996182B (zh) | 时间戳处理方法、装置、电子设备及计算机存储介质 | |
CN109963184B (zh) | 一种音视频网络播放的方法、装置以及电子设备 | |
KR20210021099A (ko) | 프레임적으로 정확한 컨텐츠 수정을 용이하게 하기 위해, 낮은 레이트 핑거프린팅을 사용하는 보간을 기반으로 하는 시간 맵핑의 확립 및 사용 | |
US11792464B2 (en) | Determining context to initiate interactivity | |
KR101579224B1 (ko) | 라이브 미디어 컨텐츠 매칭을 위한 시스템들 및 방법들 | |
US9075806B2 (en) | Alignment and re-association of metadata for media streams within a computing device | |
TWI637630B (zh) | 一種在多媒體裝置之間用於促進音訊及視訊同步化之裝置 | |
CN103747287A (zh) | 应用于flash的视频播放速度调整的方法及系统 | |
US9262419B2 (en) | Syntax-aware manipulation of media files in a container format | |
AU2007243966B2 (en) | Method and apparatus for re-constructing media from a media representation | |
WO2018103696A1 (zh) | 媒体文件的播放方法、服务端、客户端及系统 | |
WO2017092333A1 (zh) | 一种视频的生成、播放方法和装置 | |
KR101741747B1 (ko) | 실시간 광고 삽입이 가능한 영상 광고 처리 장치 및 방법 | |
US11431775B2 (en) | System and method for data stream synchronization | |
US11134279B1 (en) | Validation of media using fingerprinting | |
CN105992022A (zh) | 一种在线录制下载方法及系统 | |
CN104113778A (zh) | 一种视频流解码方法及装置 | |
CN110087116B (zh) | 多码率直播视频流剪辑方法、装置、终端及存储介质 | |
US8331459B2 (en) | Method and apparatus for smooth digital media playback | |
CN114697712A (zh) | 一种媒体流的下载方法、装置、设备及存储介质 | |
US20070094579A1 (en) | Method for handling audio packet loss in a windows® media decoder | |
US11063997B1 (en) | Higher order manifest data compression | |
CN106534887B (zh) | 一种随机时间序列比较方法和装置 | |
CN117083864A (zh) | 用于均衡来自hbbtv服务的主音频及辅助音频的设备及方法 | |
TWI483613B (zh) | 視訊播放裝置及其操作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |