音视频同步的方法、装置、设备及计算机可读存储介质与流程

文档序号:14477623阅读:214来源:国知局
音视频同步的方法、装置、设备及计算机可读存储介质与流程

本申请涉及计算机技术领域,特别涉及一种音视频同步的方法,还涉及一种音视频同步的装置、设备及计算机可读存储介质。



背景技术:

在当今的多媒体交互系统中,其传输具有信息传送服务不可靠的特点,由此在数据传输过程中会遇到数据包丢失的问题,以致相应的数据信息到达的时延不同,最终会造成媒体流在播放时发生声像不同步的现象。

目前为止已有多种对应的同步方案和模型,如时间戳同步信道法,该方法是将媒体流与同步信号分开进行传输,即需要两个不同的信道,则会导致数据在传输时需要增加额外的信道话费;再如基于rtp/rtcp的同步机制,该方法在数据通信过程中,极易改变媒体流的发送过程,进一步导致媒体流在接收端的播放过程发生改变。

因此,如何提供一种解决上述问题的技术方案,是本领域技术人员亟待解决的问题。



技术实现要素:

本申请的目的是提供一种音视频同步的方法,该方法可以有效减少媒体流在播放过程中出现的音视频不同步的问题以及马赛克现象,极大地提高了音视频播放的流畅性;本申请的另一目的是提供一种音视频同步的装置、设备及计算机可读存储介质,均具有上述有益效果。

为解决上述技术问题,本申请提供了一种音视频同步的方法,该方法包括:

接收发送端发送的主频和辅频,并播放所述主频;

提取所述主频对应的第一主帧,并记录所述第一主帧的主时间戳;提取所述辅频对应的第一辅帧,并记录所述第一辅帧的辅时间戳;

判断所述主时间戳是否大于所述辅时间戳;

若所述主时间戳大于所述辅时间戳,则计算所述主时间戳与所述辅时间戳的差值,判断所述差值是否超出预设差值;若是,则删除所述第一辅帧,并提取下一辅帧,重新进行比较;若否,则播放所述辅频;

若所述主时间戳不大于所述辅时间戳,则计算所述主时间戳与所述辅时间戳的差值,判断所述差值是否超出所述预设差值;若是,则保存所述第一辅帧,并播放下一主帧,重新进行比较;若否,则播放所述辅频。

优选的,所述接收发送端发送的主频和辅频之前还包括:

所述发送端通过主线程采集所述主频,并保存至主缓存队列;通过辅线程采集所述辅频,并保存至辅缓存队列。

优选的,所述接收发送端发送的主频和辅频包括:

接收所述发送端通过发送线程交替发送的所述主频和所述辅频;

将所述主频保存至主缓存链表,将所述辅频保存至辅缓存链表。

为解决上述技术问题,本申请还提供了一种音视频同步的装置,包括:

接收模块,用于接收发送端发送的主频和辅频,并播放所述主频;

提取模块,用于提取所述主频对应的第一主帧,并记录所述第一主帧的主时间戳;提取所述辅频对应的第一辅帧,并记录所述第一辅帧的辅时间戳;

第一判断模块,用于判断所述主时间戳是否大于所述辅时间戳;

第二判断模块,用于若所述主时间戳大于所述辅时间戳,则计算所述主时间戳与所述辅时间戳的差值,判断所述差值是否超出预设差值;若是,则删除所述第一辅帧,并提取下一辅帧,重新进行比较;若否,则播放所述辅频;

第三判断模块,用于若所述主时间戳不大于所述辅时间戳,则计算所述主时间戳与所述辅时间戳的差值,判断所述差值是否超出所述预设差值;若是,则保存所述第一辅帧,并播放下一主帧,重新进行比较;若否,则播放所述辅频。

优选的,还包括:

采集模块,用于所述发送端通过主线程采集所述主频,并保存至主缓存队列;通过辅线程采集所述辅频,并保存至辅缓存队列。

优选的,所述接收模块包括:

接收子模块,用于接收所述发送端通过发送线程交替发送的所述主频和所述辅频;

保存子模块,用于将所述主频保存至主缓存链表,将所述辅频保存至辅缓存链表。

为解决上述技术问题,本申请还提供了一种音视频同步的设备,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任意一种所述的音视频同步的方法的步骤。

为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述音视频同步的方法的步骤。

本申请所提供的一种音视频同步的方法,包括接收发送端发送的主频和辅频,并播放所述主频;提取所述主频对应的第一主帧,并记录所述第一主帧的主时间戳;提取所述辅频对应的第一辅帧,并记录所述第一辅帧的辅时间戳;判断所述主时间戳是否大于所述辅时间戳;若所述主时间戳大于所述辅时间戳,则计算所述主时间戳与所述辅时间戳的差值,判断所述差值是否超出预设差值;若是,则删除所述第一辅帧,并提取下一辅帧,重新进行比较;若否,则播放所述辅频;若所述主时间戳不大于所述辅时间戳,则计算所述主时间戳与所述辅时间戳的差值,判断所述差值是否超出所述预设差值;若是,则保存所述第一辅帧,并播放下一主帧,重新进行比较;若否,则播放所述辅频。

可见,本申请所提供的技术方案,分别对视频和音频的时间戳进行了相应的比较,根据比较结果执行了相应的指令,有效减少了媒体流在播放过程中出现的音视频不同步的问题以及马赛克现象,极大地提高了音视频播放的流畅性;此外,该技术方案的实现也无需同步信号的传输,避免了额外的信道话费。

本申请还提供了一种音视频同步的装置、设备及计算机可读存储介质,均具有上述有益效果,在此不再赘述。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请所提供的一种音视频同步的方法的流程示意图;

图2为本申请所提供的一种音视频同步的装置的示意图;

图3为本申请所提供的一种音视频同步的设备的示意图。

具体实施方式

本申请的核心是提供一种音视频同步的方法,该方法可以有效减少媒体流在播放过程中出现的音视频不同步的问题以及马赛克现象,极大地提高了音视频播放的流畅性;本申请的另一核心是提供一种音视频同步的装置、设备及计算机可读存储介质,均具有上述有益效果。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

请参考图1,图1为本申请所提供的一种音视频同步的方法的流程示意图,该方法可以包括:

s101:接收发送端发送的主频和辅频,并播放主频;

s102:提取主频对应的第一主帧,并记录第一主帧的主时间戳;提取辅频对应的第一辅帧,并记录第一辅帧的辅时间戳;

具体的,发送端将采集到的音频和视频发送至接收端,将其中一个作为主频,另一个则作为辅频,并对主频进行播放。进一步,分别对主频对应的第一主帧和辅频对应的第一辅帧进行提取,同时分别记录第一主帧对应的主时间戳,和第一辅帧对应的辅时间戳,即可根据获得的主时间戳和辅时间戳进行后续音视频的同步处理。

例如,可以将音频作为主频,视频作为辅频,先对音频进行播放,进一步,提取音频对应的第一音频帧,同时记录第一音频帧对应的音频戳ta,提取视频对应的第一视频帧,同时记录第一视频帧对应的视频戳tv,根据获取的ta和tv进行音视频的同步处理。其中,对于音频戳ta和视频戳tv获取的顺序,本申请不做限定。

s103:判断主时间戳是否大于辅时间戳;

s104:若主时间戳大于辅时间戳,则计算主时间戳与辅时间戳的差值,判断差值是否超出预设差值;

s105:若差值超出预设差值,则删除第一辅帧,并提取下一辅帧,重新进行比较;

s106:若差值未超出预设差值,则播放辅频;

具体的,在获得主时间戳和辅时间戳之后,即可对二者进行比较,判断主时间戳是否大于辅时间戳,当主时间戳大于辅时间戳时,进一步可计算二者的差值,判断其差值是否超出预设差值,其中,该预设差值即为主频和辅频可同步进行播放的预设参数。若差值已超出预设差值,则说明第一辅帧相对于第一主帧滞后,即主频已经播放,而辅频还未播放,因此可以将第一辅帧删除,并提取下一辅帧,重新进行上述主时间戳与辅时间戳的比较,直至二者的差值不超出预设差值。若差值未超出预设差值,则说明第一主帧与第一辅帧是同步的,因此,即可对辅频进行播放,以实现辅频与主频的同步。

例如,对于上述音频作为主频,视频作为辅频的情况,可对相应的音频戳ta和视频戳tv进行比较。具体的,若ta>tv,计算ta-tv=m1,假设预设差值为m0,则对m1和m0进行比较,若m1>m0,则说明第一视频帧相对于第一音频帧滞后,即音频已经播放,而视频还未播放,故可将上述该第一视频帧删除,并提取下一视频帧,重新进行音频戳与视频戳的比较,直至m1<=m0;若m1<=m0,则说明第一音频帧与第一视频帧是同步的,因此,即可对视频进行播放,以实现视频与音频的同步。

s107:若主时间戳不大于辅时间戳,则计算主时间戳与辅时间戳的差值,判断差值是否超出预设差值;

s108:若差值超出预设差值,则保存第一辅帧,并播放下一主帧,重新进行比较;

s109:若差值未超出预设差值,则播放辅频。

具体的,当主时间戳不大于辅时间戳时,同样计算二者的差值,判断其差值是否超出预设差值。若差值已超出预设差值,则说明第一辅帧相对于第一主帧超前,即主频还未播放,而辅频已经播放,由于第一辅帧对应的主帧还未播放,因此可以先将第一辅帧保存,以备后续使用,并提取下一主帧进行播放,重新进行上述主时间戳与辅时间戳的比较,直至二者的差值不超出预设差值。若差值未超出预设差值,则说明第一主帧与第一辅帧是同步的,因此,即可对辅频进行播放,以实现辅频与主频的同步。

例如,对于上述音频作为主频,视频作为辅频的情况,若ta<=tv,计算tv-ta=m2,对m2和m0进行比较,若m2>m0,则说明第一视频帧相对于第一音频帧超前,即音频还未播放,而视频已经播放,故可将上述第一视频帧保存,并提取下一音频帧进行播放,重新进行音频戳与视频戳的比较,直至m2<=m0;若m2<=m0,则说明第一音频帧与第一视频帧是同步的,因此,即可对视频进行播放,以实现视频与音频的同步。

其中,对于上述预设差值m0,本申请中设定为160ms,当然,其取值并不唯一,可根据具体情况进行设定,在本申请中不做具体限定。

本申请所提供的音视频同步的方法,有效减少了媒体流在播放过程中出现的音视频不同步的问题以及马赛克现象,极大地提高了音视频播放的流畅性;此外,该技术方案的实现也无需同步信号的传输,避免了额外的信道话费。

在上述实施例的基础上:

作为一种优选实施例,接收发送端发送的主频和辅频之前还可以包括发送端通过主线程采集主频,并保存至主缓存队列;通过辅线程采集辅频,并保存至辅缓存队列。

具体的,发送端可以开启两个线程分别进行主频和辅频的采集,即通过主线程进行主频采集,通过辅线程进行辅频采集,并分别进行保存,将主频保存至主缓存队列,将辅频保存至辅缓存队列,等待后续的数据发送即可。其中,在采集到主频和辅频后,还可以将其进行打包,例如,rtp协议(real-timetransportprotocol,实时传输协议)详细说明了在互联网上传递音频和视频的标准数据包格式,故可以将主频打包为主rtp包,将辅频打包为辅rtp包,以rtp包的形式分别保存至对应的缓存队列。

本申请所提供的音视频同步的方法,将主频和辅频分别进行保存,并保存至相应的缓存队列,有效避免了数据混乱的问题,也更便于数据按顺序进行传输。

作为一种优选实施例,接收发送端发送的主频和辅频可以包括:接收发送端通过发送线程交替发送的主频和辅频;将主频保存至主缓存链表,将辅频保存至辅缓存链表。

具体的,在发送端分别对主频和辅频进行保存后,即可通过发送线程将二者发送至接收端,由于音频和视频的数据类型相同,故可以通过一个发送线程对主频和辅频交替发送,并传输至接收端的同一个端口。接收端在接收到主频和辅频后,则可分别保存至相应的缓存列表,即根据主rtp包和辅rtp包的序号,将主频保存至主缓存链表,将辅频保存至辅缓存链表。

本申请所提供的音视频同步的方法,可以将主频和辅频分别保存至相应的缓存链表,更便于主频帧和辅频帧按顺序进行提取;此外,通过一个发送线程对主频和辅频进行交替传输,无需额外的信道,降低了成本。

为解决上述问题,请参考图2,图2为本申请所提供的一种音视频同步的装置的示意图,该装置可以包括:

接收模块1,用于接收发送端发送的主频和辅频,并播放主频;

提取模块2,用于提取主频对应的第一主帧,并记录第一主帧的主时间戳;提取辅频对应的第一辅帧,并记录第一辅帧的辅时间戳;

第一判断模块3,用于判断主时间戳是否大于辅时间戳;

第二判断模块4,用于若主时间戳大于辅时间戳,则计算主时间戳与辅时间戳的差值,判断差值是否超出预设差值;若是,则删除第一辅帧,并提取下一辅帧,重新进行比较;若否,则播放辅频;

第三判断模块5,用于若主时间戳不大于辅时间戳,则计算主时间戳与辅时间戳的差值,判断差值是否超出预设差值;若是,则保存第一辅帧,并播放下一主帧,重新进行比较;若否,则播放辅频。

作为一种优选实施例,该装置还可以包括:

采集模块,用于发送端通过主线程采集主频,并保存至主缓存队列;通过辅线程采集辅频,并保存至辅缓存队列。

作为一种优选实施例,接收模块1可以包括:

接收子模块,用于接收发送端通过发送线程交替发送的主频和辅频;

保存子模块,用于将主频保存至主缓存链表,将辅频保存至辅缓存链表。

对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。

为解决上述问题,请参考图3,图3为本申请所提供的一种音视频同步的设备的示意图,该设备包括:

存储器10,用于存储计算机程序;

处理器20,用于执行上述存储器10存储的计算机程序时实现如下步骤:

接收发送端发送的主频和辅频,并播放主频;提取主频对应的第一主帧,并记录第一主帧的主时间戳;提取辅频对应的第一辅帧,并记录第一辅帧的辅时间戳;判断主时间戳是否大于辅时间戳;若主时间戳大于辅时间戳,则计算主时间戳与辅时间戳的差值,判断差值是否超出预设差值;若是,则删除第一辅帧,并提取下一辅帧,重新进行比较;若否,则播放辅频;若主时间戳不大于辅时间戳,则计算主时间戳与辅时间戳的差值,判断差值是否超出预设差值;若是,则保存第一辅帧,并播放下一主帧,重新进行比较;若否,则播放辅频。

对于本申请提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。

为解决上述问题,本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如下步骤:

接收发送端发送的主频和辅频,并播放主频;提取主频对应的第一主帧,并记录第一主帧的主时间戳;提取辅频对应的第一辅帧,并记录第一辅帧的辅时间戳;判断主时间戳是否大于辅时间戳;若主时间戳大于辅时间戳,则计算主时间戳与辅时间戳的差值,判断差值是否超出预设差值;若是,则删除第一辅帧,并提取下一辅帧,重新进行比较;若否,则播放辅频;若主时间戳不大于辅时间戳,则计算主时间戳与辅时间戳的差值,判断差值是否超出预设差值;若是,则保存第一辅帧,并播放下一主帧,重新进行比较;若否,则播放辅频。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的音视频同步的方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1