CN117241080A - 音视频处理方法及其装置、存储介质 - Google Patents
音视频处理方法及其装置、存储介质 Download PDFInfo
- Publication number
- CN117241080A CN117241080A CN202210631499.0A CN202210631499A CN117241080A CN 117241080 A CN117241080 A CN 117241080A CN 202210631499 A CN202210631499 A CN 202210631499A CN 117241080 A CN117241080 A CN 117241080A
- Authority
- CN
- China
- Prior art keywords
- audio
- video
- time
- sequence number
- data frame
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 62
- 230000001502 supplementing effect Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 claims description 4
- 238000000034 method Methods 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 5
- 230000007704 transition Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
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/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
-
- 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)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Television Signal Processing For Recording (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请提供了一种音视频处理方法及其装置、存储介质。其中,音视频处理方法通过获取视频数据帧、音频数据帧,并根据本次接收的视频数据帧的时间戳序号以及前两次接收的视频数据帧的时间戳序号确定视频序号跳变值,进而利用视频序号跳变值确定视频期望播放时间;并且同样的原理确定音频序号跳变值和音频期望播放时间;最后再利用音频期望播放时间和视频期望播放时间的对应关系完成了音视频同步。利用视频序号跳变阈值和音频序号跳变阈值确定是否出现跳变,进而可以利用序号跳变阈值作为确定期望播放时间的依据,并且因为音频期望播放时间和视频期望播放时间存在一致性,从而实现对音频数据和视频数据的同步。
Description
技术领域
本申请实施例涉及但不限于通信技术领域,尤其涉及一种音视频处理方法及其装置、存储介质。
背景技术
现有的音视频同步技术较多,但是,这些方法普遍都是采取丢帧或者重复帧的方法对视频流和音频流进行同步,而在实际应用中会遇到这样的场景:如果在网络另一侧的摄像头由于重启或者网络抖动导致摄像头的RTP(Real-time Transport Protocol,实时传输协议)时间戳在某一时刻发生了变化,但是在时间上和跳变之前的画面或者声音是连续的,在该场景下,如果继续采用现有方法进行音视频同步,则会导致长时间出现重复帧或者丢帧的情形,严重影响了用户端的观看体验。
发明内容
本申请实施例提供了一种音视频处理方法及其装置、存储介质,能够减少由于时间戳变化带来的重复帧或丢帧的现象。
第一方面,本申请实施例提供了一种音视频处理方法,所述音视频处理方法包括:
获取视频数据帧、音频数据帧;
根据本次接收的所述视频数据帧的时间戳序号以及前两次接收的所述视频数据帧的时间戳序号确定视频序号跳变值;
根据所述视频序号跳变值确定视频期望播放时间,所述视频期望播放时间表征所述视频数据帧对应的播放时间;
根据本次接收的所述音频数据帧的时间戳序号以及前两次接收的所述音频数据帧的时间戳序号确定音频序号跳变值;
根据所述音频序号跳变值确定音频期望播放时间,所述音频期望播放时间表征所述音频数据帧对应的播放时间,其中,所述音频期望播放时间与所述视频期望播放时间相一致;
根据所述音频期望播放时间和所述视频期望播放时间对所述音频数据帧和所述视频数据帧进行同步处理。
第二方面,本申请实施例还提供了一种音视频处理装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的音视频处理方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上述的音视频处理方法。
本申请实施例包括:获取视频数据帧、音频数据帧;根据本次接收的视频数据帧的时间戳序号以及前两次接收的视频数据帧的时间戳序号确定视频序号跳变值;根据视频序号跳变值确定视频期望播放时间,视频期望播放时间表征视频数据帧对应的播放时间;根据本次接收的音频数据帧的时间戳序号以及前两次接收的音频数据帧的时间戳序号确定音频序号跳变值;根据音频序号跳变值确定音频期望播放时间,音频期望播放时间表征音频数据帧对应的播放时间,其中,音频期望播放时间与视频期望播放时间相一致;根据音频期望播放时间和视频期望播放时间对音频数据帧和视频数据帧进行同步处理。利用视频数据帧的时间戳序号确定视频数据帧的视频序号跳变阈值,从而知晓视频的连续状态,确定是否出现跳变,进而可以利用视频序号跳变阈值来作为确定本次接收的视频数据帧的视频期望播放时间的依据,避免视频数据帧的播放时出现长时间重复帧或丢帧的情况,同时,也使得视频数据帧可以在视频期望播放时间的基础上实现准确播放;同理,在接收到音频数据帧时,可以利用音频数据帧的时间戳序号确定音频数据帧的音频序号跳变阈值,从而知晓音频的连续状态,确定是否出现跳变,进而可以利用音频序号跳变阈值来作为确定本次接收的音频数据帧的音频期望播放时间的依据,避免音频数据帧的播放时出现长时间重复帧或丢帧的情况,同时,也使得音频数据帧可以在音频期望播放时间的基础上实现准确播放。最终,又因为音频期望播放时间和视频期望播放时间存在一致性,从而使得接收的音频数据帧和视频数据帧可以在时间上实现准确对应,实现对音频数据和视频数据的同步。
附图说明
图1是本申请一个实施例提供的音视频处理方法的流程图;
图2是本申请一个实施例提供的确定视频序号跳变值的流程图;
图3是本申请一个实施例提供的确定音频序号跳变值的流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例提供了一种音视频处理方法及其装置、存储介质,在接收到视频数据帧时,可以利用视频数据帧的时间戳序号确定视频数据帧的视频序号跳变阈值,从而知晓视频的连续状态,确定是否出现跳变,进而可以利用视频序号跳变阈值来作为确定本次接收的视频数据帧的视频期望播放时间的依据,避免视频数据帧的播放时出现长时间重复帧或丢帧的情况,同时,也使得视频数据帧可以在视频期望播放时间的基础上实现准确播放;同理,在接收到音频数据帧时,可以利用音频数据帧的时间戳序号确定音频数据帧的音频序号跳变阈值,从而知晓音频的连续状态,确定是否出现跳变,进而可以利用音频序号跳变阈值来作为确定本次接收的音频数据帧的音频期望播放时间的依据,避免音频数据帧的播放时出现长时间重复帧或丢帧的情况,同时,也使得音频数据帧可以在音频期望播放时间的基础上实现准确播放。最终,因为音频期望播放时间和视频期望播放时间存在一致性,从而使得接收的音频数据帧和视频数据帧可以在时间上实现准确对应,实现对音频数据和视频数据的同步。
如图1所示,图1是本申请一个实施例提供的音视频处理方法的流程图。
如图1所示,该音视频处理方法包括步骤S100、步骤S200、步骤S300、步骤S400、步骤S500和步骤S600,
步骤S100:获取视频数据帧、音频数据帧;
步骤S200:根据本次接收的视频数据帧的时间戳序号以及前两次接收的视频数据帧的时间戳序号确定视频序号跳变值;
步骤S300:根据视频序号跳变值确定视频期望播放时间,视频期望播放时间表征视频数据帧对应的播放时间;
步骤S400:根据本次接收的音频数据帧的时间戳序号以及前两次接收的音频数据帧的时间戳序号确定音频序号跳变值;
步骤S500:根据音频序号跳变值确定音频期望播放时间,音频期望播放时间表征音频数据帧对应的播放时间,其中,音频期望播放时间与视频期望播放时间相一致;
步骤S600:根据音频期望播放时间和视频期望播放时间对音频数据帧和视频数据帧进行同步处理。
本实施例中,在接收到视频数据帧或音频数据帧时,可以获取视频数据帧或音频数据帧携带的时间戳序号,因此,可以直接通过本次接收的视频数据帧或音频数据帧的时间戳序号与前两次接收的视频数据帧或音频数据帧的时间戳序号,来确定视频序号跳变值或音频序号跳变值,进而确定是否出现了时间戳序号跳变,并根据音频序号跳变值来确定视频期望播放时间或音频播放期望时间,以确保不会因为出现时间戳序号变化较大导致需要长时间丢帧或补帧的情形出现。同时,因为视频期望播放时间和音频播放期望时间在时间上处于相一致的关系,从而只需要保证每次接收的视频数据帧与视频期望播放时间对应、每次接收的音频数据帧与音频播放期望时间对应,即可保证音视频实现同步。
具体的,在实时会议或直播等流媒体传输的场景中,接收到的视频数据帧会携带时间戳序号,同时,因为音视频数据发送端发送视频数据帧的连续性,那么在正常情形下,视频数据帧的时间戳序号应当是连续的,此时如果出现时间戳序号不连续,则说明视频流传输出现的问题。其中,时间戳序号跳变会导致时间戳序号出现较大的变化,因此,需要利用连续三次接收的视频数据帧的时间戳序号来计算视频序号跳变值,通过对视频序号跳变值进行分析,从而可以确定是否出现了跳变,进而再利用视频序号跳变值来完成在跳变状态下的视频期望播放时间的确定,以确定该视频数据帧对应的视频期望播放时间,确保该视频数据帧可以准时播放。
同理,音视频数据处理端接收到的音频数据帧同样会携带时间戳序号,同时,因为音视频数据发送端发送视频数据帧的连续性,那么在正常情形下,音频数据帧的时间戳序号也应当是连续的,此时如果出现时间戳序号不连续,则说明音频流传输出现的问题。其中,时间戳序号跳变会导致时间戳序号出现较大的变化,因此,需要利用连续三次接收的音频数据帧的时间戳序号来计算音频序号跳变值,通过对音频序号跳变值进行分析,从而可以确定是否出现了跳变,进而再利用音频序号跳变值来完成在跳变状态下的音频期望播放时间的确定,以确定该音频数据帧对应的音频期望播放时间,确保该音频数据帧可以准时播放。
为了更好的解释本申请的音视频处理方法的音视频同步原理,这里进行一个简述。接收到的每一帧视频数据帧都会对应一个视频期望播放时间,该视频数据帧在经过处理之后会在这个视频期望播放时间准时进行播放,即相当于在一个时间轴上的不同时刻对应设置了不同的视频数据帧,只需要按照设置好的流程完成对视频数据帧的播放即可。同理,不同的音频数据帧也可以在一个时间轴的不同时刻对应设置,此时只需要再保证音频期望播放时间与视频期望播放时间对应,则可以保证两者的在时间轴上对应,因此,在确定好第一帧音频数据帧的音频期望播放时间和第一帧视频数据帧的视频期望播放时间后,后续只要依据本申请的音视频处理方法对每一帧音频数据帧或视频数据帧完成对应的期望播放时间设置即可。
如图2所示,图2是本申请一个实施例提供的确定视频序号跳变值的流程图,是对步骤S200进行了进一步说明,步骤S200包括但不限于步骤:步骤S210、步骤S220和步骤S230,
步骤S210:根据前两次接收的视频数据帧的时间戳序号确定第一序号差值;
步骤S220:根据本次接收的视频数据帧的时间戳序号与上一次接收的视频数据帧的时间戳序号确定第二序号差值;
步骤S220:根据第二序号差值和第一序号差值计算得到视频序号跳变值。
这里引入了前两次时间戳序号来协同实现对时间戳错序号跳变程度的判断,利用三次接收视频数据帧的时间戳序号来确定视频序号跳变值,即第一序号差值和第二序号差值的比值,可以直接有效的知晓时间戳序号的跳变程度,便于后续判断是否出现时间戳序号跳变。
具体的,以三个视频数据帧的时间戳序号分别为xk-1、xk、xk+1为例,计算视频序号跳变值u的约束公式可以参考下式:
在一些实施例中,对步骤S300进行了进一步说明,步骤S300包括但不限于步骤:当视频序号跳变值大于预设的视频序号跳变阈值,在上一次接收的视频数据帧对应的视频期望播放时间上增加第一时间间隔,确定视频期望播放时间,得到第一视频期望播放时间,其中,第一时间间隔表征两次接收视频数据帧之间的时间间隔。
考虑到跳变时,时间戳序号跳变的数值较大,视频序号跳变阈值同样需要设置较大,从而可以与丢包造成的时间戳序号短时间缺失的情况相区分。在确定本次接收的视频数据帧的视频序号跳变值后,需要对视频序号跳变值进行判断,当视频序号跳变值大于视频序号跳变阈值时,则可以确定当前出现了时间戳序号跳变,此时,直接利用时间戳序号完成对视频期望播放时间的确定,容易出现视频期望播放时间不连续的情形。进一步考虑到出现时间戳序号跳变时,视频数据帧会正常发送,那么本次接收的视频数据帧的期望播放时间便可以根据第一时间间隔来确定。因此,在确定出现时间戳序号跳变后,只需要在上一次接收的视频数据帧对应的视频期望播放时间上增加第一时间间隔,即可确定本次接收的视频数据帧的视频期望播放时间,同时,该视频期望播放时间也会记作第一视频期望播放时间,用于后续更新初始视频时间戳序号、初始视频期望播放时间使用。
在一些实施例中,音视频处理方法还包括:当视频序号跳变值小于视频序号跳变阈值,根据初始视频时间戳序号、初始视频期望播放时间以及视频数据帧的时间戳序号确定视频期望播放时间,得到第二视频期望播放时间,其中,初始视频时间戳序号根据本次接收的视频数据帧的时间戳序号而得到;初始视频期望播放时间根据本次接收的视频数据帧的视频期望播放时间而得到。
没有出现时间戳序号跳变时,时间戳序号变化不会太大,在正常播放时,时间戳序号处于连续状态,在网络波动导致网络丢包出现视频数据帧缺帧时,缺失的时间戳序号也不会过多,此时则可以直接利用本次接收的视频数据帧的时间戳序号来完成视频期望播放时间的确定。进一步,本次接收的视频数据帧对应的视频序号跳变值小于预设的视频序号跳变阈值,则说明本次接收的视频数据帧是处于正常播放的状态或网络丢包的状态,没有出现跳变,此时根据预设的初始视频时间戳序号、初始视频期望播放时间以及本次接收的视频数据帧的时间戳序号便可以完成对本帧视频期望播放时间的快速确定。具体的,每两帧视频数据帧的播放时间间隔是固定的,那么只需要确定本次接收的视频数据帧与初始视频时间戳序号之间的差值,便可以在初始视频期望播放时间的基础上利用这一时间间隔完成对本次视频数据帧的期望播放时间的确定。
具体的,直接利用本次视频数据帧的时间戳序号与初始视频时间戳序号做差,从而可以确定间隔的时间戳序号数,再与每两次视频数据帧之间的播放时间间隔进行乘法运算,从而可以确定与初始视频期望播放时间之间的视频播放时间差,最后在初始视频期望播放时间的基础上加上视频播放时间差便可以确定本次接收的视频数据帧的视频期望播放时间。
在一些实施例中,初始视频时间戳序号和初始视频期望播放时间,由以下步骤得到:当视频数据帧为接收到的第一帧视频数据帧,将第一帧视频数据帧的时间戳序号确定为初始视频时间戳序号,将第一帧视频数据帧对应的视频期望播放时间确定为初始视频期望播放时间。
在接收到第一帧视频数据帧后,会开始初始化,此时,利用第一帧视频数据帧的时间戳序号来完成对初始视频时间戳序号的初始化赋值,利用第一帧视频数据帧的视频期望播放时间完成对初始视频期望播放时间的初始化赋值。
具体的,音视频处理方法还包括:
当视频序号跳变值大于视频序号跳变阈值,根据本次接收的视频数据帧的时间戳序号更新初始视频时间戳序号;
根据第一视频期望播放时间更新初始视频期望播放时间。
当视频数据帧出现时间戳序号跳变后,后续接收的所有视频数据帧的时间戳序号都会根据跳变后的时间戳序号进行赋值,因此,不能再使用第一帧视频数据帧对应的初始视频时间戳序号和初始视频期望播放时间来进行后续的视频期望播放时间计算,并且在每一次跳变后都同样不能再使用前一次的初始视频时间戳序号和初始视频期望播放时间。进一步,当出现时间戳序号跳变时,会先确定本次接收的视频数据帧的时间戳序号和第一视频期望播放时间,之后直接利用该时间戳序号和第一视频期望播放时间则可以完成对初始视频时间戳序号和初始视频期望播放时间的更新,后续则在更新后的初始视频时间戳序号和初始视频期望播放时间的基础上计算视频期望播放时间,从而保证了整个视频数据帧在时间轴上播放的准确性和流畅性。
在一些实施例中,当视频数据帧为接收到的第一帧视频数据帧,音视频处理方法,还包括:当接收第一帧视频数据帧的时间早于或等于接收第一帧音频数据帧的时间,将视频期望播放时间设置为预设时间值。
在对初始视频时间戳序号和初始视频期望播放时间进行初始化,初始视频时间戳序号可以直接从第一帧视频数据帧中获得,但是初始视频期望播放时间则无法直接得到,此时,则可以直接定义一个预设时间值作为起始时间,即初始视频期望播放时间即可。在一些实施例中,可以直接将预设时间值确定为0秒即可。
在一些实施例中,当视频数据帧为接收到的第一帧视频数据帧,音视频处理方法,还包括:当接收第一帧视频数据帧的时间晚于接收第一帧音频数据帧的时间,将接收第一帧视频数据帧与接收第一帧音频数据帧之间的时间间隔确定为视频期望播放时间。
实际操作时,可能会因为多种原因导致第一帧视频数据帧和第一帧音频数据帧在第一次发送时,会存在一定的时间间隔,那么在这种情况下,为了继续保证音频数据帧与视频数据帧之间的对应关系,则需要让两者在初始时,既保持固定的时间间隔,因此,在视频数据帧为第一帧且晚于第一帧音频数据帧时,则不能直接将视频期望播放时间确定为0秒,需要保持一个时间间隔的时间延迟。
具体的,为了更好的说明视频期望播放时间、时间戳序号、初始视频时间戳序号和初始视频期望播放时间的约束关系,具体可以参考以下约束公式:
式中,xstart为初始视频时间戳序号,xk为第k帧视频数据帧,tx为两次播放视频数据帧时间的时间间隔,abs(xstart)为初始视频期望播放时间,0即为0秒,Δ为第一帧视频数据帧与第一帧音频数据帧之间的时间间隔。
在视频数据帧为第一帧时,使用式(1)进行视频期望播放时间计算,并可以确定初始视频时间戳序号和初始视频期望播放时间。在视频数据帧传输未出现跳变时,使用式(2)完成视频期望播放时间的确定。在视频数据帧出现跳变时,则使用式(3)完成视频期望播放时间确定,并同时更新初始视频时间戳序号和初始视频期望播放时间。
在一些实施例中,音视频处理方法,还包括:
当超过预设的视频补帧时间阈值未接收到视频数据帧,复制上一次依次接收的视频数据帧;
根据第一时间间隔与上一次接收视频数据帧对应的视频期望播放时间确定复制的视频数据帧的视频期望播放时间,其中,第一时间间隔表征两次接收视频数据帧之间的时间间隔。
在视频数据传输时,如果出现了丢包的情况,那么可能会出现连续一定时间内没有视频数据帧的情况,此时,如果在确定视频序号跳变值后再进行补帧则会造成一定的延时,那么在此种情形下,则可以直接利用视频补帧时间阈值来复制前一帧,以补偿对本次视频数据帧的缺失即可,每超过一个视频补帧时间阈值没有接收到视频数据帧则依次利用前一帧完成补帧。直至正常接收到视频数据帧后,则会利用该视频数据帧完成对视频期望播放时间的确定。
如图3所示,图3是本申请一个实施例提供的确定音频序号跳变值的流程图,是对步骤S400进行了进一步说明,步骤S400包括但不限于步骤:步骤S410、步骤S420和步骤S430,
步骤S410:根据前两次接收的音频数据帧的时间戳序号确定第三序号差值;
步骤S420:根据本次接收的音频数据帧的时间戳序号与上一次接收的音频数据帧的时间戳序号确定第四序号差值;
步骤S430:根据第三序号差值和第四序号差值计算得到音频序号跳变值。
这里引入了前两次时间戳序号来协同实现对时间戳错序号跳变程度的判断,利用三次接收音频数据帧的时间戳序号来确定音频序号跳变值,即第三序号差值和第四序号差值的比值,可以直接有效的知晓时间戳序号的跳变程度,便于后续确定是否出现时间戳序号判断。计算音频序号跳变值的约束公式可以参考计算视频序号跳变值的约束公式。
在一些实施例中,对步骤S600进行了进一步说明,步骤S600包括但不限于步骤:当音频序号跳变值大于预设的音频序号跳变阈值,在上一次接收音频数据帧对应的音频期望播放时间上增加第二时间间隔,确定音频期望播放时间,得到第一音频期望播放时间,其中,第二时间间隔表征两次接收音频数据帧之间的时间间隔。
考虑到跳变时,时间戳序号跳变的数值较大,音频序号跳变阈值同样需要设置较大,从而可以与丢包造成的时间戳序号短时间缺失的情况相区分。在确定本次接收的音频数据帧的音频序号跳变值后,需要对音频序号跳变值进行判断,当音频序号跳变值大于音频序号跳变阈值时,则可以确定当前出现了时间戳序号跳变,此时,直接利用时间戳序号完成音频期望播放时间的确定,容易出现音频期望播放时间不连续的情形。进一步考虑到出现时间戳序号跳变时,音频数据帧会正常发送,那么本次接收的音频数据帧的音频期望播放时间便可以根据第二时间间隔来确定。因此,在确定出现时间戳序号跳变后,只需要在上一次接收的音频数据帧对应的音频期望播放时间上增加第二时间间隔,即可确定本次接收的音频数据帧的音频期望播放时间,同时,该音频期望播放时间也会记作第一音频期望播放时间,用于后续更新初始音频时间戳序号、初始音频期望播放时间使用。
在一些实施例中,音视频处理方法还包括:当音频序号跳变值小于音频序号跳变阈值,根据初始音频时间戳序号、初始音频期望播放时间以及音频数据帧的时间戳序号确定音频期望播放时间,得到第二音频期望播放时间,其中,初始音频时间戳序号根据本次接收的音频数据帧的时间戳序号而得到,初始音频期望播放时间根据本次接收的音频数据帧的音频期望播放时间而得到。
没有出现时间戳序号跳变时,时间戳序号变化不会太大,在正常播放时,时间戳序号处于连续状态,在网络波动导致网络丢包出现音频数据帧缺帧时,缺失的时间戳序号也不会过多,此时则可以直接利用本次接收的音频数据帧的时间戳序号来完成音频期望播放时间的确定。进一步,本次接收的音频数据帧对应的音频序号跳变值小于预设的音频序号跳变阈值,则说明本次接收的音频数据帧是处于正常播放的状态或网络丢包的状态,没有出现跳变,此时根据预设的初始音频时间戳序号、初始音频期望播放时间以及本次接收的音频数据帧的时间戳序号便可以完成对本帧音频期望播放时间的快速确定。具体的,每两帧音频数据帧的播放时间间隔是固定的,那么只需要确定本次接收的音频数据帧与初始音频时间戳序号之间的差值,便可以在初始音频期望播放时间的基础上利用这一时间间隔完成对本次音频数据帧的音频期望播放时间的确定。
具体的,直接利用本次音频数据帧的时间戳序号与初始音频时间戳序号做差,从而可以确定间隔的时间戳序号数,再与每两次音频数据帧之间的播放时间间隔进行乘法运算,从而可以确定与初始音频期望播放时间之间的音频播放时间差,最后在初始音频期望播放时间的基础上加上音频播放时间差便可以确定本次接收的音频数据帧的音频期望播放时间。
在一些实施例中,初始音频时间戳序号和初始音频期望播放时间,由以下步骤得到:当音频数据帧为接收到的第一帧音频数据帧,将第一帧音频数据帧的时间戳序号确定为初始音频时间戳序号,将第一帧音频数据帧对应的音频期望播放时间确定为初始音频期望播放时间。
在接收到第一帧音频数据帧后,会开始初始化,此时,利用第一帧音频数据帧的时间戳序号来完成对初始音频时间戳序号的初始化赋值,利用第一帧音频数据帧的音频期望播放时间完成对初始音频期望播放时间的初始化赋值。
具体的,音视频处理方法还包括:
当音频序号跳变值大于音频序号跳变阈值,根据本次接收的音频数据帧的时间戳序号更新初始音频时间戳序号;
根据第一音频期望播放时间更新初始音频期望播放时间。
当音频数据帧出现时间戳序号跳变后,后续接收的所有音频数据帧的时间戳序号都会根据跳变后的时间戳序号进行赋值,因此,不能再使用第一帧音频数据帧对应的初始音频时间戳序号和初始音频期望播放时间来进行后续的音频期望播放时间计算,并且在每一次跳变后都同样不能再使用前一次的初始音频时间戳序号和初始音频期望播放时间。进一步,当出现时间戳序号跳变时,会先确定本次接收的音频数据帧的时间戳序号和第一音频期望播放时间,之后直接利用该时间戳序号和第一音频期望播放时间则可以完成对初始音频时间戳序号和初始音频期望播放时间的更新,后续则在更新后的初始音频时间戳序号和初始音频期望播放时间的基础上计算音频期望播放时间,从而保证了整个音频数据帧在时间轴上播放的准确性和流畅性。
在一些实施例中,当音频数据帧为接收到的第一帧音频数据帧,音视频处理方法,还包括:当接收第一帧音频数据帧的时间早于或等于接收第一帧视频数据帧的时间,将音频期望播放时间设置为预设时间值。
在对初始音频时间戳序号和初始音频期望播放时间进行初始化,初始音频时间戳序号可以直接从第一帧音频数据帧中获得,但是初始音频期望播放时间则无法直接得到,此时,则可以直接定义一个预设时间值作为起始时间,即初始音频期望播放时间即可。在一些实施例中,可以直接将预设时间值确定为0秒即可。
在一些实施例中,当音频数据帧为接收到的第一帧音频数据帧,音视频处理方法,还包括:当接收第一帧音频数据帧的时间晚于接收第一帧视频数据帧的时间,将接收第一帧音频数据帧与接收第一帧视频数据帧之间的时间间隔确定为音频期望播放时间。
实际操作时,可能会因为多种原因导致第一帧视频数据帧和第一帧音频数据帧在第一次发送时,会存在一定的时间间隔,那么在这种情况下,为了继续保证音频数据帧与视频数据帧之间的对应关系,则需要让两者在初始时,既保持固定的时间间隔,因此,在音频数据帧为第一帧且晚于第一帧视频数据帧时,则不能直接将音频期望播放时间确定为0秒,需要保持一个时间间隔的时间延迟。
具体的,音频期望播放时间、时间戳序号、初始音频时间戳序号和初始音频期望播放时间的约束关系可以参考视频期望播放时间、视频数据帧的时间戳序号、初始视频时间戳序号和初始视频期望播放时间的约束关系。
在一些实施例中,音视频处理方法,还包括:
当超过预设的音频补帧时间阈值未接收到音频数据帧,复制上一次接收的音频数据帧;
根据第二时间间隔与上一次接收音频数据帧对应的音频期望播放时间确定复制的音频数据帧的音频期望播放时间,其中,第二时间间隔表征两次接收音频数据帧之间的时间间隔。
在音频数据传输时,如果出现了丢包的情况,那么可能会出现连续一定时间内没有音频数据帧的情况,此时,如果在确定音频序号跳变值后再进行补帧则会造成一定的延时,那么在此种情形下,则可以直接利用音频补帧时间阈值来复制前一帧,以补偿对本次音频数据帧的缺失即可,每超过一个音频补帧时间阈值没有接收到音频数据帧则依次利用前一帧完成补帧。直至正常接收到音频数据帧后,则会利用该音频数据帧完成对音频期望播放时间的确定。
为了更加清楚的说明本申请实施例提供的音视频处理方法的处理流程,下面以具体的示例进行说明。
该音视频处理方法包括以下步骤:
获取第一帧音频数据帧和第一帧视频数据帧,并根据第一帧视频数据帧确定视频数据流的初始视频期望播放时间和初始视频时间戳序号,根据第一帧音频数据帧确定音频数据流的初始音频期望播放时间和初始音频时间戳序号;第一次初始化时,初始视频时间戳序号和初始音频时间戳序号通常会保持一致,初始视频期望播放时间和初始音频期望播放时间则会根据NTP(Network Time Protocol,网络时间协议)协议确定一个时间间隔;
持续接收音频数据帧和视频数据帧,并且持续记录前两次接收的音频数据帧时间戳序号和视频数据帧的时间戳序号,在接收到本帧视频数据帧或音频数据帧之后便可利用对应的前两次记录的时间戳序号和本次的时间戳序号确定好视频序号跳变值或音频序号跳变值;
通过将视频序号跳变值与预设的视频序号跳变阈值比较或将音频序号跳变值与预设的音频跳变阈值比较,从而可以确定是否出现了时间戳序号跳变;
在确定视频数据帧或音频数据帧未出现时间戳序号跳变时,则可以直接利用初始视频时间戳序号、初始视频期望播放时间以及视频数据帧的时间戳序号确定视频期望播放时间,利用初始音频时间戳序号、初始音频期望播放时间以及音频数据帧的时间戳序号确定音频期望播放时间;
在确定视频数据帧或音频数据帧出现时间戳序号跳变后,则在上一次接收视频数据帧对应的视频期望播放时间上增加第一时间间隔,以确定跳变后的视频期望播放时间,同时,得到第一视频期望播放时间,并且可以根据第一视频期望播放时间来更新初始视频时间戳序号和初始视频时间戳序号,或者,可以依据与视频处理相同的原理完成对音频数据帧的处理,得到跳变后的音频期望播放时间,以及完成对初始音频时间戳序号和初始音频时间戳序号的更新;
此外,在确定出现网络丢包时,则可以直接对前一帧视频数据帧或音频数据帧进行复制,然后按照正常确定视频期望播放时间或音频期望播放时间的方式,完成设置即可,从而可以保证视频和音频播放完整性和流畅性。
本申请的音视频处理方法直接利用视频期望播放时间和音频期望播放时间构建时间轴,通过给每个视频数据帧和音频数据帧确定对应的视频期望播放时间和音频期望播放时间,使得每个视频数据帧和音频数据帧在时间轴具有唯一性,从而使得整个媒体流可以简单清晰的实现音视频同步。
另外,本申请的一个实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于执行如上述的音视频处理方法,例如,被上述音视频处理装置的实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的信息处理方法,例如,执行以上描述的图1中的方法、图2中的方法和图3中的方法。
另外,本申请的一个实施例还提供了一种音视频处理装置,该音视频处理装置包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的音视频处理方法。
实现上述实施例的音视频处理方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述实施例中的音视频处理方法,例如,执行以上描述的图1中的方法、图2中的方法和图3中的方法。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储单元技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
Claims (19)
1.一种音视频处理方法,包括:
获取视频数据帧、音频数据帧;
根据本次接收的所述视频数据帧的时间戳序号以及前两次接收的所述视频数据帧的时间戳序号确定视频序号跳变值;
根据所述视频序号跳变值确定视频期望播放时间,所述视频期望播放时间表征所述视频数据帧对应的播放时间;
根据本次接收的所述音频数据帧的时间戳序号以及前两次接收的所述音频数据帧的时间戳序号确定音频序号跳变值;
根据所述音频序号跳变值确定音频期望播放时间,所述音频期望播放时间表征所述音频数据帧对应的播放时间,其中,所述音频期望播放时间与所述视频期望播放时间相一致;
根据所述音频期望播放时间和所述视频期望播放时间对所述音频数据帧和所述视频数据帧进行同步处理。
2.根据权利要求1所述的音视频处理方法,其特征在于,所述根据本次接收的所述视频数据帧的时间戳序号以及前两次接收的所述视频数据帧的时间戳序号确定视频序号跳变值,包括:
根据前两次接收的所述视频数据帧的时间戳序号确定第一序号差值;
根据本次接收的所述视频数据帧的时间戳序号与上一次接收的所述视频数据帧的时间戳序号确定第二序号差值;
根据所述第二序号差值和所述第一序号差值计算得到所述视频序号跳变值。
3.根据权利要求1所述的音视频处理方法,其特征在于,所述根据所述视频序号跳变值确定视频期望播放时间,包括:
当所述视频序号跳变值大于预设的视频序号跳变阈值,在上一次接收的所述视频数据帧对应的所述视频期望播放时间上增加第一时间间隔,确定所述视频期望播放时间,得到第一视频期望播放时间,其中,所述第一时间间隔表征两次接收所述视频数据帧之间的时间间隔。
4.根据权利要求3所述的音视频处理方法,其特征在于,所述根据所述视频序号跳变值确定视频期望播放时间,包括:
当所述视频序号跳变值小于所述视频序号跳变阈值,根据初始视频时间戳序号、初始视频期望播放时间以及所述视频数据帧的时间戳序号确定所述视频期望播放时间,得到第二视频期望播放时间,其中,所述初始视频时间戳序号根据本次接收的所述视频数据帧的时间戳序号而得到;所述初始视频期望播放时间根据本次接收的所述视频数据帧的视频期望播放时间而得到。
5.根据权利要求4所述的音视频处理方法,其特征在于,所述初始视频时间戳序号和所述初始视频期望播放时间,由以下步骤得到:
当所述视频数据帧为接收到的第一帧视频数据帧,将所述第一帧视频数据帧的时间戳序号确定为所述初始视频时间戳序号,将所述第一帧视频数据帧对应的所述视频期望播放时间确定为所述初始视频期望播放时间。
6.根据权利要求4或5所述的音视频处理方法,其特征在于,所述音视频处理方法,还包括:
当所述视频序号跳变值大于所述视频序号跳变阈值,根据本次接收的所述视频数据帧的时间戳序号更新所述初始视频时间戳序号;
根据所述第一视频期望播放时间更新所述初始视频期望播放时间。
7.根据权利要求1所述的音视频处理方法,其特征在于,当所述视频数据帧为接收到的第一帧视频数据帧,所述音视频处理方法,还包括:
当接收所述第一帧视频数据帧的时间早于或等于接收第一帧音频数据帧的时间,将所述视频期望播放时间设置为预设时间值。
8.根据权利要求1所述的音视频处理方法,其特征在于,当所述视频数据帧为接收到的第一帧视频数据帧,所述音视频处理方法,还包括:
当接收所述第一帧视频数据帧的时间晚于接收第一帧音频数据帧的时间,将接收所述第一帧视频数据帧与接收所述第一帧音频数据帧之间的时间间隔确定为所述视频期望播放时间。
9.根据权利要求1所述的音视频处理方法,其特征在于,所述音视频处理方法,还包括:
当超过预设的视频补帧时间阈值未接收到所述视频数据帧,复制上一次接收的所述视频数据帧;
根据第一时间间隔与上一次接收所述视频数据帧对应的所述视频期望播放时间确定复制的所述视频数据帧的所述视频期望播放时间,其中,所述第一时间间隔表征两次接收所述视频数据帧之间的时间间隔。
10.根据权利要求1所述的音视频处理方法,其特征在于,所述根据本次接收的所述音频数据帧的时间戳序号以及前两次接收的所述音频数据帧的时间戳序号确定音频序号跳变值,包括:
根据前两次接收的所述音频数据帧的时间戳序号确定第三序号差值;
根据本次接收的所述音频数据帧的时间戳序号与上一次接收的所述音频数据帧的时间戳序号确定第四序号差值;
根据所述第三序号差值和所述第四序号差值计算得到所述音频序号跳变值。
11.根据权利要求1所述的音视频处理方法,其特征在于,所述根据所述音频序号跳变值确定音频期望播放时间,包括:
当所述音频序号跳变值大于预设的音频序号跳变阈值,在上一次接收所述音频数据帧对应的所述音频期望播放时间上增加第二时间间隔,确定所述音频期望播放时间,得到第一音频期望播放时间,其中,所述第二时间间隔表征两次接收所述音频数据帧之间的时间间隔。
12.根据权利要求11所述的音视频处理方法,其特征在于,所述音视频处理方法,还包括:
当所述音频序号跳变值小于所述音频序号跳变阈值,根据初始音频时间戳序号、初始音频期望播放时间以及所述音频数据帧的所述时间戳序号确定所述音频期望播放时间,得到第二音频期望播放时间,其中,所述初始音频时间戳序号根据本次接收的所述音频数据帧的时间戳序号而得到,所述初始音频期望播放时间根据本次接收的所述音频数据帧的所述音频期望播放时间而得到。
13.根据权利要求12所述的音视频处理方法,其特征在于,所述初始音频时间戳序号和所述初始音频期望播放时间,由以下步骤得到:
当所述音频数据帧为接收到的第一帧音频数据帧,将所述第一帧音频数据帧的时间戳序号确定为所述初始音频时间戳序号,将所述第一帧音频数据帧对应的所述音频期望播放时间确定为所述初始音频期望播放时间。
14.根据权利要求12或13所述的音视频处理方法,其特征在于,所述音视频处理方法,还包括:
当所述音频序号跳变值大于所述音频序号跳变阈值,根据本次接收的所述音频数据帧的时间戳序号更新所述初始音频时间戳序号;
根据所述第一音频期望播放时间更新所述初始音频期望播放时间。
15.根据权利要求1所述的音视频处理方法,其特征在于,当所述音频数据帧为接收到的第一帧音频数据帧,所述音视频处理方法,还包括:
当接收所述第一帧音频数据帧的时间早于或等于接收第一帧视频数据帧的时间,将所述音频期望播放时间设置为预设时间值。
16.根据权利要求1或15所述的音视频处理方法,其特征在于,当所述音频数据帧为接收到的第一帧音频数据帧,所述音视频处理方法,还包括:
当接收所述第一帧音频数据帧的时间晚于接收第一帧视频数据帧的时间,将接收所述第一帧所述音频数据帧与接收第一帧视频数据帧之间的时间间隔确定为所述音频期望播放时间。
17.根据权利要求1所述的音视频处理方法,其特征在于,所述音视频处理方法,还包括:
当超过预设的音频补帧时间阈值未接收到所述音频数据帧,复制上一次接收的所述音频数据帧;
根据第二时间间隔与上一次接收所述音频数据帧对应的所述音频期望播放时间确定复制的所述音频数据帧的所述音频期望播放时间,其中,所述第二时间间隔表征两次接收所述音频数据帧之间的时间间隔。
18.一种音视频处理装置,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至17中任意一项所述的音视频处理方法。
19.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1至17中任意一项所述的音视频处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210631499.0A CN117241080A (zh) | 2022-06-06 | 2022-06-06 | 音视频处理方法及其装置、存储介质 |
PCT/CN2023/095554 WO2023236767A1 (zh) | 2022-06-06 | 2023-05-22 | 音视频处理方法及其装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210631499.0A CN117241080A (zh) | 2022-06-06 | 2022-06-06 | 音视频处理方法及其装置、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117241080A true CN117241080A (zh) | 2023-12-15 |
Family
ID=89093552
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210631499.0A Pending CN117241080A (zh) | 2022-06-06 | 2022-06-06 | 音视频处理方法及其装置、存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117241080A (zh) |
WO (1) | WO2023236767A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4991129B2 (ja) * | 2005-07-19 | 2012-08-01 | Necディスプレイソリューションズ株式会社 | 映像音声再生装置および映像音声再生方法 |
CN101193311B (zh) * | 2006-12-21 | 2010-10-13 | 腾讯科技(深圳)有限公司 | 一种p2p系统中音视频数据的同步方法 |
CN102075803B (zh) * | 2010-12-22 | 2013-08-14 | Tcl通力电子(惠州)有限公司 | 一种播放音视频同步的方法 |
CN103731716B (zh) * | 2014-01-08 | 2017-01-18 | 珠海全志科技股份有限公司 | 一种ts流播放中的音视频同步方法 |
CN110225385B (zh) * | 2019-06-19 | 2021-09-10 | 鼎桥通信技术有限公司 | 一种音视频同步调整方法和装置 |
-
2022
- 2022-06-06 CN CN202210631499.0A patent/CN117241080A/zh active Pending
-
2023
- 2023-05-22 WO PCT/CN2023/095554 patent/WO2023236767A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023236767A1 (zh) | 2023-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102536652B1 (ko) | 대체 컨텐츠의 종료를 피대체 컨텐츠의 종료에 맞춰 정렬하는 것을 지원하기 위한 대체 컨텐츠 재생의 동적 감소 | |
JP2021530928A (ja) | フレーム精度のコンテンツ修正の円滑化を支援する、低レートフィンガープリンティングを用いた補間に基づく時間マッピングの確立及び使用 | |
CN109089130B (zh) | 一种调整直播视频的时间戳的方法和装置 | |
US8249419B2 (en) | Method for generating additional information for guaranteeing seamless playback between data streams, recording medium storing the information, and recording, editing and/or playback apparatus using the same | |
KR20210020166A (ko) | 시간적으로 정확한 미디어 컨텐츠 수정을 용이하게 하기 위한 핑거프린팅 레이트의 동적 제어 | |
US20180077443A1 (en) | Multimode synchronous rendering of audio and video | |
US11503366B2 (en) | Dynamic playout of transition frames while transitioning between play out of media streams | |
CN107426629B (zh) | 一种流媒体文件处理方法及直播系统 | |
JP2004208308A (ja) | オーディオフレームおよび/またはビデオフレームの再生を同期化する方法と装置、ビデオドライバ回路、デコーダボックス | |
KR20160022307A (ko) | 콘텐츠의 분산 재생의 동기화를 지원하기 위한 시스템 및 방법 | |
US20080145020A1 (en) | Recording device, recording method and reproducing device | |
RU2763518C1 (ru) | Способ, устройство и аппарат для добавления спецэффектов в видео и носитель данных | |
KR102566550B1 (ko) | 복수의 커넥티드 장치 간 디지털 콘텐츠의 재생 동기화를 맞추는 방법 및 이를 이용한 장치 | |
CN110089120B (zh) | 用于在多个远程设备上同步播放媒体项的系统和方法 | |
CN106385525A (zh) | 一种视频播放方法及装置 | |
CN117241080A (zh) | 音视频处理方法及其装置、存储介质 | |
KR101682978B1 (ko) | Precision Time Protocol를 이용한 영상 재생 동기화 시스템 및 방법 | |
JP2003283996A (ja) | タイムスタンプ付与装置およびそれを用いたデジタル録画装置 | |
CN112887772A (zh) | 影音串流的音频同步方法 | |
CN116567308A (zh) | 多流网络视频同步的方法、装置、设备及存储介质 | |
CN117201854A (zh) | 应用于视频同步播放系统的精确seek视频帧的方法、系统 | |
JP2001094907A (ja) | 蓄積型デジタル放送における映像音声の部分再生方法及び受信装置 | |
KR100657262B1 (ko) | 데이터열간의 연속 재생을 보장하기 위한 부가 정보를저장하는 기록 매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |