CN111277885B - 音视频同步方法、装置、服务器和计算机可读存储介质 - Google Patents
音视频同步方法、装置、服务器和计算机可读存储介质 Download PDFInfo
- Publication number
- CN111277885B CN111277885B CN202010159616.9A CN202010159616A CN111277885B CN 111277885 B CN111277885 B CN 111277885B CN 202010159616 A CN202010159616 A CN 202010159616A CN 111277885 B CN111277885 B CN 111277885B
- Authority
- CN
- China
- Prior art keywords
- audio
- data
- video
- source data
- mixed
- 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/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
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
-
- 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
- H04N21/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明提供了一种音视频同步方法、装置、服务器和计算机可读存储介质,涉及多屏数据处理技术领域,包括将多个发送端的音频源数据和视频源数据分别缓存在每个发送端对应的音频缓冲区和视频缓冲区;周期性的从每个音频缓冲区获取多个发送端的第一指定时长的音频源数据进行混合,得到音频混合数据;确定音频混合数据中每个音频源数据的音频初始时间戳;基于每个音频源数据的音频初始时间戳判断视频混合数据中是否存在与同一发送端发送的音频源数据不同步的视频源数据;如果是,调节与视频源数据不同步的音频源数据的时延,以使音频混合数据与视频混合数据同步。本发明可以保证在多人连麦的情况下音视频数据保持同步,提升了用户体验。
Description
技术领域
本发明涉及多屏数据处理技术领域,尤其是涉及一种音视频同步方法、装置、服务器和计算机可读存储介质。
背景技术
目前,多屏业务在工作、社交、娱乐等方面均具有越来越多的应用,但当网络不稳定时会导致网络丢包率较高,传输控制协议(Transmission Control Protocol,TCP)的传输质量严重下降,重传拥塞导致音视频延时非常大,在无线信道下,易出现音视频长时间卡住不动然后快放的现象,效率低,占用系统资源高。诸如,在当前的直播多人连麦情况下,由于用户数据报文协议(UserDatagram Protocol,UDP)不能对所传数据提供担保,导致出现音视频数据不同步的现象。
针对上述由于音视频时延大导致音视频数据不同步的现象,目前尚未提出有效的解决方案。
发明内容
本发明的目的在于提供一种音视频同步方法、装置、服务器和计算机可读存储介质,可以保证在多人连麦的情况下音视频数据保持同步,提升了用户体验。
第一方面,实施例提供一种音视频同步方法,所述方法包括:接收多个发送端的音频源数据和视频源数据,并分别缓存在每个所述发送端对应的音频缓冲区和视频缓冲区;周期性的从每个所述音频缓冲区获取多个所述发送端的第一指定时长的所述音频源数据并进行混合,得到音频混合数据;确定所述音频混合数据中每个所述音频源数据的音频初始时间戳;基于每个所述音频源数据的所述音频初始时间戳判断视频混合数据中是否存在与同一所述发送端发送的所述音频源数据不同步的所述视频源数据;其中,所述视频混合数据为周期性的从每个所述视频缓冲区获取所述多个发送端的第二指定时长的所述视频源数据并进行混合得到的;如果是,调节与所述视频源数据不同步的所述音频源数据的时延,以使所述音频混合数据与视频混合数据同步。
在可选的实施方式中,所述方法还包括:将同步的所述音频混合数据与视频混合数据进行合并,得到目标混合数据;所述目标混合数据包括目标时间戳;将所述目标混合数据推送至内容分发网络CDN。
在可选的实施方式中,所述确定所述音频混合数据中每个所述音频源数据的音频初始时间戳的步骤,包括:基于当前输入每个所述音频缓冲区的所述音频源数据的当前时间戳和所述音频缓冲区的长度确定所述音频混合数据的每个所述音频源数据的音频初始时间戳。
在可选的实施方式中,所述视频源数据包括指定数量的帧图像;所述方法还包括:将多个所述视频源数据的当前帧图像进行合并,得到合并帧图像;基于所述第二指定时长的所述合并帧图像确定所述视频混合数据。
在可选的实施方式中,每个所述视频源数据包括视频初始时间戳;基于每个所述音频源数据的所述音频初始时间戳判断视频混合数据中是否存在与同一所述发送端发送的所述音频源数据不同步的所述视频源数据的步骤,包括:基于每个所述音频源数据的所述音频初始时间戳和每个所述视频源数据的所述视频初始时间戳判断所视频混合数据中是否存在与同一所述发送端发送的所述音频源数据不同步的所述视频源数据。
在可选的实施方式中,所述如果是,调节与所述视频源数据不同步的所述音频源数据的时延,以使所述音频混合数据与视频混合数据同步的步骤,包括:如果所述音频源数据快于所述视频源数据,则基于所述视频初始时间戳和所述音频时间戳确定第一时延;所述视频源数据将所述第一时延反馈到所述音频源数据,所述音频源数据基于所述第一时延调节所述音频源数据,以使所述音频混合数据与视频混合数据同步。
在可选的实施方式中,所述如果是,调节与所述视频源数据不同步的所述音频源数据的时延,以使所述音频混合数据与视频混合数据同步的步骤,还包括:如果所述音频源数据慢于所述视频源数据,则基于所述视频初始时间戳和所述音频时间戳确定第二时延;所述视频源数据将所述第二时延反馈到所述音频源数据,所述音频源数据基于所述第二时延调节所述音频源数据,以使所述音频混合数据与视频混合数据同步。
第二方面,实施例提供一种音视频同步装置,所述装置包括:数据接收模块,用于接收多个发送端的音频源数据和视频源数据,并分别缓存在每个所述发送端对应的音频缓冲区和视频缓冲区;音频混合模块,用于周期性的从每个所述音频缓冲区获取多个所述发送端的第一指定时长的所述音频源数据并进行混合,得到音频混合数据;确定模块,用于确定所述音频混合数据中每个所述音频源数据的音频初始时间戳;判断模块,用于基于每个所述音频源数据的所述音频初始时间戳判断视频混合数据中是否存在与同一所述发送端发送的所述音频源数据不同步的所述视频源数据;其中,所述视频混合数据为周期性的从每个所述视频缓冲区获取所述多个发送端的第二指定时长的所述视频源数据并进行混合得到的;同步模块,用于如果是,调节与所述视频源数据不同步的所述音频源数据的时延,以使所述音频混合数据与视频混合数据同步。
第三方面,实施例提供一种服务器,包括处理器和存储器;所述存储器上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如前述实施方式任一项音视频同步方法。
第四方面,实施例提供一种计算机可读存储介质,用于储存如前述实施方式任一项音视频同步方法所用的计算机软件指令。
本发明提供的音视频同步方法、装置、服务器和计算机可读存储介质,将接收到的多个发送端的音频源数据和视频源数据分别缓存在每个发送端对应的音频缓冲区和视频缓冲区,并周期性的从每个音频缓冲区获取多个发送端的第一指定时长的音频源数据并进行混合,得到音频混合数据,通过确定音频混合数据中每个音频源数据的音频初始时间戳,判断视频混合数据中是否存在与同一发送端发送的音频源数据不同步的视频源数据,其中,视频混合数据为周期性的从每个视频缓冲区获取多个发送端的第二指定时长的视频源数据并进行混合得到的,如果存在与音频源数据不同步的视频源数据,则调节与视频源数据不同步的音频源数据的时延,以使音频混合数据与视频混合数据同步。通过判断视频源数据和音频源数据是否同步,并在不同步时调节音频源数据的时延,可以使音频混合数据与视频混合数据保持同步。因此本发明实施例可以保证在多人连麦的情况下音视频数据同步,提升了用户体验。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种音视频同步方法的流程示意图;
图2为本发明实施例提供的一种音频源数据混合的示意图;
图3为本发明实施例提供的一种视频源数据混合的示意图;
图4为本发明实施例提供的一种音视频同步装置的结构示意图;
图5为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
在本发明的描述中,需要说明的是,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
考虑到由于音视频时延大导致的包乱序、包丢失、包重复的现象,本发明实施例提供了一种音视频同步方法、装置、服务器和计算机可读存储介质,可以保证在多人连麦的情况下音视频数据保持同步,进而提升用户体验。
为便于理解,首先对本发明实施例提供的一种音视频同步方法进行详细介绍,参见图1所示的一种音视频同步方法的流程示意图,该方法主要包括如下步骤S102至步骤S110:
步骤S102:接收多个发送端的音频源数据和视频源数据,并分别缓存在每个发送端对应的音频缓冲区和视频缓冲区。
上述发送端也即提供源数据的终端,源数据包括视频源数据和音频源数据,音频源数据和视频源数据是指接收的发送端的未经处理的数据。为了能够实现多屏互动,因此发送端可以为至少两个。当服务器接收到来自多个发送端的音频源数据和视频源数据后,为了能够分别对视频源数据和音频源数据进行处理,可以将每个发送端的音频源数据缓存到对应的音频缓冲区,将每个发送端的视频源数据缓存到对应的视频缓冲区。
步骤S104:周期性的从每个音频缓冲区获取多个发送端的第一指定时长的音频源数据并进行混合,得到音频混合数据。
在一种实施方式中,由于在传输时均为数据包的形式,因此需要周期性的从每个音频缓冲区获取上述多个发送端发送的音频源数据,第一指定时长为音频包的时长,诸如,若音频包是以每个20ms的形式进行传输,则第一指定时长为20ms。通过周期性的从每个发送端的音频缓冲区中获取每段为20ms的音频源数据,可以将每个周期的多个发送端的20ms的音频源数据进行混合,即把多个发送对应的多个音频源数据混合成为一个音频数据(也即音频混合数据)。
步骤S106:确定音频混合数据中每个音频源数据的音频初始时间戳。
在一种实施方式中,音频混合数据通常为PCM格式的数据,由于PCM格式的数据不具备时间的概念,为了能够满足音视频同步,需要确定当前使用的音频混合数据中的音频源数据是发送端发送的哪个时间段的数据,进而选取对应时间段的视频源数据进行匹配实现音视频同步。诸如,可以通过确定当前音频混合数据中每个音频源数据的音频初始时间戳获知当前使用的音频混合数据的为哪些时刻的音频源数据进行的混合。其中,初始时间戳为发送端在发送音频源数据时根据每个发送端的系统时间对音频源数据打的时间戳。
步骤S108:基于每个音频源数据的音频初始时间戳判断视频混合数据中是否存在与同一发送端发送的音频源数据不同步的视频源数据。
在一种实施方式中,视频混合数据为周期性的从每个视频缓冲区获取多个发送端的第二指定时长的视频源数据并进行混合得到的。由于每个视频源数据也包括视频初始时间戳,因此通过将音频初始时间戳和视频初始时间戳进行比较,可以判断当前同一发送端发送的音频源数据与视频源数据是否存在不同步的现象。
步骤S110:如果是,调节与视频源数据不同步的音频源数据的时延,以使音频混合数据与视频混合数据同步。
在一种实施方式中,如果同一发送端发送的音频源数据与视频源数据存在不同步的现象,可以通过调节与视频源数据不同步的音频源数据的时延,使音频混合数据中的音频源数据与视频混合数据中对应的视频源数据同步,通过调整数据缓冲区大小对音频数据源的时延进行调整,如果音频比视频快,则增加音频源数据的时延,否则降低音频源数据的时延,以使音频等待或者追赶视频,从而保证推流到内容分发网络(Content DeliveryNetwork,CDN)的数据为已经同步的音视频的数据。
本发明实施例提供的音视频同步方法,将接收到的多个发送端的音频源数据和视频源数据分别缓存在每个发送端对应的音频缓冲区和视频缓冲区,并周期性的从每个音频缓冲区获取多个发送端的第一指定时长的音频源数据并进行混合,得到音频混合数据(数据包的形式),通过确定音频混合数据中每个音频源数据的音频初始时间戳,判断视频混合数据(数据包的形式)中是否存在与同一发送端发送的音频源数据不同步的视频源数据,其中,视频混合数据为周期性的从每个视频缓冲区获取多个发送端的第二指定时长的视频源数据并进行混合得到的,如果存在与音频源数据不同步的视频源数据,则调节与视频源数据不同步的音频源数据的时延,以使音频混合数据与视频混合数据同步。通过判断视频源数据和音频源数据是否同步,并在不同步时调节音频源数据的时延,可以使音频混合数据与视频混合数据保持同步。因此本发明实施例可以保证在多人连麦的情况下音视频数据保持同步,提升了用户体验。
在一种实施方式中,将同步的音频混合数据与视频混合数据进行合并,得到目标混合数据,并将目标混合数据推送至内容分发网络CDN,其中,目标混合数据包括目标时间戳,目标时间戳为根据当前服务器的自然时间确定的。
在一种实施方式中,以3个发送端A、B、C为例,由于在对音频源数据或视频源数据进行混合时,通常为毫秒级的数据包,而人眼对于毫秒级的数据没有较强的辨识能力,因此第二指定时长与第一指定时长也可以不同,诸如,当音频源数据为20ms一个数据包进行混合时,视频源数据可以为30ms一个数据包进行混合,则发送端A、发送端B和发送端C发送的音频源数据和视频源数据如图2所示。
通过音频源数据的混合得到音频混合数据的流程可以参见图2所示的一种音频源数据混合的示意图,对于音频源数据的混合,由于混合后得到的音频混合数据通常为PCM格式,并没有时间的概念,因此需要通过每个音频源数据的初始音频时间戳确定音频混合数据中混了每个发送端的哪些数据。由于每个缓冲区(也即buffer)的长度是已知的,因此通过当前输入缓冲区的音频源数据的音频初始时间戳可以确定音频混合数据中每个发送端对应的音频源数据的音频初始时间戳,也即确定了当前的音频混合数据中包括哪些时刻的音频源数据。以发送端A为例,缓冲区A的长度为60,当前输入缓冲区A的音频源数据的音频初始时间戳为160ms,则可以判定当前进行混合的音频源数据为音频初始时间戳为100ms的数据。对发送端A、发送端B和发送端C均采用如上方式进行确定当前进行混合的音频源数据,进而确定音频混合数据。
在一种实施方式中,如果当前音频混合数据中包含发送端A的音频初始时间戳100ms、发送端B的音频初始时间戳300ms和发送端C的音频初始时间戳800ms的音频源数据,则当前的视频混合数据应该为与音频混合数据对应的数据,也即视频混合数据中包括发送端A的视频初始时间戳100ms、发送端B的视频初始时间戳300ms和发送端C的视频初始时间戳800ms的视频源数据。由于视频源数据均为指定数量的帧图像,因此视频混合数据为将发送端A、发送端B和发送端C的帧图像合并得到的新的图像,参见图3所示的一种视频源数据混合的示意图,通过将多个视频源数据的当前帧图像进行合并,得到合并帧图像,对每帧图像均进行合并后,基于第二指定时长(也即视频混合数据的数据包长度)的合并帧图像确定视频混合数据。
针对可能存在由于网络原因导致的音视频数据不匹配的情况,本发明实施例提供了一种视频源数据的反馈机制,通过基于每个音频源数据的音频初始时间戳和每个视频源数据的视频初始时间戳判断所视频混合数据中是否存在与同一发送端发送的音频源数据不同步的视频源数据,如果不同步,则视频源数据会将信息反馈给音频源数据。
在一种实施方式中,如果音频源数据快于视频源数据,则基于视频初始时间戳和音频时间戳确定第一时延,诸如,音频初始时间戳为1200ms的音频源数据已经到达服务器,但是视频初始时间戳为1000ms~1200ms的视频源数据还没有到达服务器,此时第一时延为200ms,如果直接按照现有的数据进行推流的话,可能会导致音画不同步的现象发生,因此通过200ms的第一时延调节音频源数据,从而使音视频数据同步。
在另一种实施方式中,如果音频源数据慢于视频源数据,则基于视频初始时间戳和音频时间戳确定第二时延,诸如,视频初始时间戳为1000ms~1200ms的视频源数据已经到达服务器,但是音频初始时间戳为800ms的音频源数据刚刚到达服务器,此时第二时延为-400ms(“-”仅代表音频源数据落后视频源数据),此时通过-400ms的第二时延调节音频源数据,以使音频混合数据与视频混合数据同步。
对于上述音视频同步方法,本发明实施例还提供一种音视频同步装置,参见图4所示的一种音视频同步装置的结构示意图,该装置主要包括:
数据接收模块402,用于接收多个发送端的音频源数据和视频源数据,并分别缓存在每个发送端对应的音频缓冲区和视频缓冲区;
音频混合模块404,用于周期性的从每个音频缓冲区获取多个发送端的第一指定时长的音频源数据并进行混合,得到音频混合数据;
确定模块406,用于确定音频混合数据中每个音频源数据的音频初始时间戳;
判断模块408,用于基于每个音频源数据的音频初始时间戳判断视频混合数据中是否存在与同一发送端发送的音频源数据不同步的视频源数据;其中,视频混合数据为周期性的从每个视频缓冲区获取多个发送端的第二指定时长的视频源数据并进行混合得到的;
同步模块410,用于如果是,调节与视频源数据不同步的音频源数据的时延,以使音频混合数据与视频混合数据同步。
本发明实施例提供的音视频同步装置,将接收到的多个发送端的音频源数据和视频源数据分别缓存在每个发送端对应的音频缓冲区和视频缓冲区,并周期性的从每个音频缓冲区获取多个发送端的第一指定时长的音频源数据并进行混合,得到音频混合数据(数据包的形式),通过确定音频混合数据中每个音频源数据的音频初始时间戳,判断视频混合数据(数据包的形式)中是否存在与同一发送端发送的音频源数据不同步的视频源数据,其中,视频混合数据为周期性的从每个视频缓冲区获取多个发送端的第二指定时长的视频源数据并进行混合得到的,如果存在与音频源数据不同步的视频源数据,则调节与视频源数据不同步的音频源数据的时延,以使音频混合数据与视频混合数据同步。通过判断视频源数据和音频源数据是否同步,并在不同步时调节音频源数据的时延,可以使音频混合数据与视频混合数据保持同步。因此本发明实施例可保证在多人连麦的情况下音视频数据保持同步,提升了用户体验。
在一种实施方式中,上述装置还包括:推流模块,用于将同步的音频混合数据与视频混合数据进行合并,得到目标混合数据;目标混合数据包括目标时间戳;将目标混合数据推送至内容分发网络CDN。
在一种实施方式中,上述确定模块406,进一步用于基于当前输入每个音频缓冲区的音频源数据的当前时间戳和音频缓冲区的长度确定音频混合数据的每个音频源数据的音频初始时间戳。
在一种实施方式中,视频源数据包括指定数量的帧图像;上述装置还包括:视频混合模块,用于将多个视频源数据的当前帧图像进行合并,得到合并帧图像;基于第二指定时长的合并帧图像确定视频混合数据。
在一种实施方式中,每个视频源数据包括视频初始时间戳;上述判断模块408,进一步用于基于每个音频源数据的音频初始时间戳和每个视频源数据的视频初始时间戳判断所视频混合数据中是否存在与同一发送端发送的音频源数据不同步的视频源数据。
在一种实施方式中,上述同步模块410,进一步用于如果音频源数据快于视频源数据,则基于视频初始时间戳和音频时间戳确定第一时延;视频源数据将第一时延反馈到音频源数据,音频源数据基于第一时延调节音频源数据,以使音频混合数据与视频混合数据同步。
在一种实施方式中,上述同步模块410,进一步用于如果音频源数据慢于视频源数据,则基于视频初始时间戳和音频时间戳确定第二时延;视频源数据将第二时延反馈到音频源数据,音频源数据基于第二时延调节音频源数据,以使音频混合数据与视频混合数据同步。
本发明实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。
该设备为一种服务器,具体的,该服务器包括处理器和存储装置;存储装置上存储有计算机程序,计算机程序在被所述处理器运行时执行如上所述实施方式的任一项所述的方法。
图5为本发明实施例提供的一种服务器的结构示意图,该服务器100包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。
其中,存储器51可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线52可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。
处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。
本发明实施例所提供的音视频同步方法、装置、服务器和计算机可读存储介质的计算机程序产品,包括存储了处理器可执行的非易失的程序代码的计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的可读存储介质的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (6)
1.一种音视频同步方法,其特征在于,所述方法包括:
接收多个发送端的音频源数据和视频源数据,并分别缓存在每个发送端对应的音频缓冲区和视频缓冲区,其中,所述视频源数据包括指定数量的帧图像;
周期性的从每个音频缓冲区获取所述多个发送端的第一指定时长的音频源数据并进行混合,得到音频混合数据;
将多个所述视频源数据的当前帧图像进行合并,得到合并帧图像,并基于第二指定时长的合并帧图像确定视频混合数据;
确定所述音频混合数据中每个音频源数据的音频初始时间戳;
基于每个音频源数据的所述音频初始时间戳,判断所述视频混合数据中是否存在与同一发送端发送的音频源数据不同步的视频源数据;所述第二指定时长与所述第一指定时长相同或不同;
在所述视频混合数据中存在与所述同一发送端发送的音频源数据不同步的视频源数据的情况下,调节与所述视频源数据不同步的音频源数据的时延,以使所述音频混合数据与所述视频混合数据同步;
将同步的所述音频混合数据与视频混合数据进行合并,得到目标混合数据,其中,所述目标混合数据包括目标时间戳;
将所述目标混合数据推送至内容分发网络CDN,
其中,所述调节与所述视频源数据不同步的音频源数据的时延,以使所述音频混合数据与所述视频混合数据同步,包括:
在所述音频源数据快于所述视频源数据的情况下,通过调整所述音频缓冲区的长度,增加所述音频数据源的时延,以使所述音频混合数据与视频混合数据同步;
在所述音频源数据慢于所述视频源数据的情况下,通过调整所述音频缓冲区的长度,降低所述音频数据源的时延,以使所述音频混合数据与视频混合数据同步。
2.根据权利要求1所述的方法,其特征在于,所述确定所述音频混合数据中每个所述音频源数据的音频初始时间戳的步骤,包括:
基于当前输入每个所述音频缓冲区的所述音频源数据的当前时间戳和所述音频缓冲区的长度确定所述音频混合数据的每个所述音频源数据的音频初始时间戳。
3.根据权利要求1所述的方法,其特征在于,每个所述视频源数据包括视频初始时间戳;基于每个所述音频源数据的所述音频初始时间戳判断视频混合数据中是否存在与同一所述发送端发送的所述音频源数据不同步的所述视频源数据的步骤,包括:
基于每个所述音频源数据的所述音频初始时间戳和每个所述视频源数据的所述视频初始时间戳判断所视频混合数据中是否存在与同一所述发送端发送的所述音频源数据不同步的所述视频源数据。
4.一种音视频同步装置,其特征在于,所述装置包括:
数据接收模块,用于接收多个发送端的音频源数据和视频源数据,并分别缓存在每个所述发送端对应的音频缓冲区和视频缓冲区,其中,所述视频源数据包括指定数量的帧图像;
音频混合模块,用于周期性的从每个所述音频缓冲区获取多个所述发送端的第一指定时长的所述音频源数据并进行混合,得到音频混合数据;
视频混合模块,用于将多个视频源数据的当前帧图像进行合并,得到合并帧图像,并基于第二指定时长的合并帧图像确定视频混合数据;
确定模块,用于确定所述音频混合数据中每个所述音频源数据的音频初始时间戳;
判断模块,用于基于每个所述音频源数据的所述音频初始时间戳判断视频混合数据中是否存在与同一所述发送端发送的所述音频源数据不同步的所述视频源数据;所述第二指定时长与所述第一指定时长相同或不同;
同步模块,用于在所述视频混合数据中存在与所述同一发送端发送的音频源数据不同步的视频源数据的情况下,调节与所述视频源数据不同步的音频源数据的时延,以使所述音频混合数据与所述视频混合数据同步;
推流模块,用于将同步的音频混合数据与视频混合数据进行合并,得到目标混合数据,并将目标混合数据推送至内容分发网络CDN,其中,所述目标混合数据包括目标时间戳;
其中,所述同步模块还用于:
在所述音频源数据快于所述视频源数据的情况下,通过调整所述音频缓冲区的长度,增加所述音频数据源的时延,以使所述音频混合数据与视频混合数据同步;
在所述音频源数据慢于所述视频源数据的情况下,通过调整所述音频缓冲区的长度,降低所述音频数据源的时延,以使所述音频混合数据与视频混合数据同步。
5.一种服务器,其特征在于,包括处理器和存储器;
所述存储器上存储有计算机程序,所述计算机程序在被所述处理器运行时执行如权利要求1至3任一项所述的方法。
6.一种计算机可读存储介质,其特征在于,用于储存如权利要求1至3任一项所述方法所用的计算机软件指令,所述计算机软件指令在被处理器运行时执行如权利要求1至3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010159616.9A CN111277885B (zh) | 2020-03-09 | 2020-03-09 | 音视频同步方法、装置、服务器和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010159616.9A CN111277885B (zh) | 2020-03-09 | 2020-03-09 | 音视频同步方法、装置、服务器和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111277885A CN111277885A (zh) | 2020-06-12 |
CN111277885B true CN111277885B (zh) | 2023-01-10 |
Family
ID=70999390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010159616.9A Active CN111277885B (zh) | 2020-03-09 | 2020-03-09 | 音视频同步方法、装置、服务器和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111277885B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860211B (zh) * | 2021-01-28 | 2022-12-27 | 成都极米科技股份有限公司 | 确定时延的方法、装置、终端与存储介质 |
CN114125576A (zh) * | 2021-11-29 | 2022-03-01 | 广州繁星互娱信息科技有限公司 | 多媒体资源的同步方法和装置、存储介质及电子设备 |
CN114245036B (zh) * | 2021-12-21 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 视频制作方法及装置 |
CN114125548B (zh) * | 2022-01-26 | 2022-04-19 | 广州长嘉电子有限公司 | 一种基于卫星信号的高清电视节目播放方法、装置及系统 |
CN117499688B (zh) * | 2023-12-29 | 2024-05-03 | 淘宝(中国)软件有限公司 | 直播连麦中音视频合流处理方法、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364952A (zh) * | 2011-10-25 | 2012-02-29 | 浙江万朋网络技术有限公司 | 一种多路音视频同时播放时处理音视频同步的方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7379653B2 (en) * | 2002-02-20 | 2008-05-27 | The Directv Group, Inc. | Audio-video synchronization for digital systems |
US7084898B1 (en) * | 2003-11-18 | 2006-08-01 | Cisco Technology, Inc. | System and method for providing video conferencing synchronization |
US8272008B2 (en) * | 2007-02-28 | 2012-09-18 | At&T Intellectual Property I, L.P. | Methods, systems, and products for retrieving audio signals |
US8954178B2 (en) * | 2007-09-30 | 2015-02-10 | Optical Fusion, Inc. | Synchronization and mixing of audio and video streams in network-based video conferencing call systems |
CN100579238C (zh) * | 2008-02-22 | 2010-01-06 | 上海华平信息技术股份有限公司 | 音视频缓存同步播放的方法 |
CN106375820B (zh) * | 2016-08-30 | 2018-07-06 | 京东方科技集团股份有限公司 | 对音频和视频信号进行同步的方法和装置 |
CN107846633B (zh) * | 2016-09-18 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 一种直播方法及系统 |
CN107801080A (zh) * | 2017-11-10 | 2018-03-13 | 普联技术有限公司 | 一种音视频同步方法、装置及设备 |
CN108259989B (zh) * | 2018-01-19 | 2021-09-17 | 广州方硅信息技术有限公司 | 视频直播的方法、计算机可读存储介质和终端设备 |
CN108769786B (zh) * | 2018-05-25 | 2020-12-29 | 网宿科技股份有限公司 | 一种合成音视频数据流的方法和装置 |
CN109729373B (zh) * | 2018-12-27 | 2020-12-08 | 广州华多网络科技有限公司 | 流媒体数据的混流方法、装置及存储介质、计算机设备 |
CN110602522B (zh) * | 2019-10-11 | 2021-08-03 | 西南民族大学 | 一种多路实时直播WebRTC流合成方法 |
-
2020
- 2020-03-09 CN CN202010159616.9A patent/CN111277885B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102364952A (zh) * | 2011-10-25 | 2012-02-29 | 浙江万朋网络技术有限公司 | 一种多路音视频同时播放时处理音视频同步的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111277885A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277885B (zh) | 音视频同步方法、装置、服务器和计算机可读存储介质 | |
CN113423018B (zh) | 一种游戏数据处理方法、装置及存储介质 | |
US20020184314A1 (en) | Method and system for transmitting multicast data signals | |
WO2020034082A1 (zh) | 基于切片的rtp流传输方法、装置、终端及服务器 | |
US10887646B2 (en) | Live streaming with multiple remote commentators | |
WO2017096935A1 (zh) | 一种快速频道切换方法、服务器及iptv系统 | |
EP3734927A1 (en) | Content service implementation method and device, and content delivery network node | |
CA2758763C (en) | Method and device for fast pushing unicast stream in fast channel change | |
CN111836074A (zh) | 一种连麦直播方法、装置及系统 | |
CN113727143A (zh) | 视频投屏方法、装置、计算机设备及存储介质 | |
CN111263240B (zh) | Iptv 4k音视频播放管理方法、装置、显示设备 | |
EP1783980A2 (en) | Client slide program identifier (PID) translation | |
CN112616065B (zh) | 一种屏幕镜像发起方法、装置、系统及可读存储介质 | |
CN113766251A (zh) | 直播连麦的处理方法、系统、服务器及存储介质 | |
CN108494792A (zh) | 一种flash播放器播放hls视频流的转换系统及其工作方法 | |
CN111866526B (zh) | 一种直播业务处理方法和装置 | |
US10999646B2 (en) | Information presenting method, terminal device, server and system | |
WO2022100528A1 (zh) | 音视频转发方法、装置、终端与系统 | |
CN108882010A (zh) | 一种多屏播放的方法及系统 | |
CN114553839A (zh) | Rtc数据的处理方法以及装置 | |
CN113194335B (zh) | 流媒体传输方法、传输设备和播放设备 | |
EP1993289A1 (en) | System having improved switching times between broadcast/multicast bearers | |
US9118803B2 (en) | Video conferencing system | |
WO2018171567A1 (zh) | 播放媒体流的方法、服务器及终端 | |
CN114449344A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210303 Address after: Room 1702-03, Lantian Hesheng building, 32 Zhongguancun Street, Haidian District, Beijing 100082 Applicant after: BEIJING CENTURY TAL EDUCATION TECHNOLOGY Co.,Ltd. Address before: 102200 b5-005 maker Plaza, 338 Huilongguan East Street, Huilongguan town, Changping District, Beijing Applicant before: Beijing three body cloud times Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |