CN113747208A - 音视频数据同步方法、数据同步方法、服务端及接收端 - Google Patents
音视频数据同步方法、数据同步方法、服务端及接收端 Download PDFInfo
- Publication number
- CN113747208A CN113747208A CN202010464144.8A CN202010464144A CN113747208A CN 113747208 A CN113747208 A CN 113747208A CN 202010464144 A CN202010464144 A CN 202010464144A CN 113747208 A CN113747208 A CN 113747208A
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- sending
- time
- determining
- 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.)
- Granted
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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/242—Synchronization processes, e.g. processing of PCR [Program Clock References]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
- H04J3/0661—Clock or time synchronisation among packet nodes using timestamps
- H04J3/0667—Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
-
- 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/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)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供了一种音视频数据同步方法、数据同步方法、服务端及接收端。方法包括:接收发送端发送的第一数据包和第二数据包,第一数据包中包括音频数据,第二数据包中包括视频数据;生成与音频数据相对应的第一发送报文包、和与视频数据相对应的第二发送报文包;将第一数据包、第一发送报文包、第二数据包和第二发送报文包发送至接收端,以使接收端基于第一数据包、第一发送报文包、第二数据包和第二发送报文包对音频数据和视频数据进行数据同步。在接收端获取到第一数据包、第一发送报文包、第二数据包和第二发送报文包之后,可以基于第一数据包、第一发送报文包、第二数据包和第二发送报文包进行数据同步,保证了数据显示的质量和效果。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种音视频数据同步方法、数据同步方法、服务端及接收端。
背景技术
随着网络技术的飞速发展,数据传输的应用越来越广泛。在将多个不同类型的数据通过服务器在发送端与接收端之间进行数据传输时,由于不同类型的数据具有不同的传输速率,接收端所接收到的不同类型的数据的时间不同,例如:发送端通过服务器向接收端发送第一数据和第二数据,接收端在T1时刻接收到第一数据,在T2时刻接收到第二数据。此时,若接收端直接基于接收时间对第一数据和第二数据进行显示,则会出现对第一数据和第二数据的显示不同步的情况,进而降低了数据显示的质量和效果。
发明内容
本发明实施例提供了一种音视频数据同步方法、数据同步方法、服务端及接收端,可以实现对不同类型的数据进行数据同步操作,从而提高了对数据进行显示的质量和效果。
第一方面,本发明实施例提供了一种音视频数据同步方法,应用于服务端,所述方法包括:
接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
生成与所述音频数据相对应的第一发送报文包、和与所述视频数据相对应的第二发送报文包;
将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述音频数据和所述视频数据进行数据同步。
第二方面,本发明实施例提供了一种服务端,包括:
第一接收模块,用于接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
第一处理模块,用于生成与所述音频数据相对应的第一发送报文包、和与所述视频数据相对应的第二发送报文包;
第一发送模块,用于将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述音频数据和所述视频数据进行数据同步。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的一种音视频数据同步方法。
第四方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第一方面中的一种音视频数据同步方法。
第五方面,本发明实施例提供了一种音视频数据同步方法,应用于接收端,所述方法包括:
接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
基于所述第一数据包确定与所述音频数据相对应的第一RTP时间;并基于所述第二数据包确定与所述视频数据相对应的第二RTP时间;
基于所述第一发送报文包和所述第一RTP时间,确定与所述音频数据相对应的第一目标NTP时间,并基于所述第二发送报文包和所述第二RTP时间,确定与所述视频数据相对应的第二目标NTP时间;
根据所述第一目标NTP时间和所述第二目标NTP时间,对所述音频数据和所述视频数据进行数据同步。
第六方面,本发明实施例提供了一种接收端,包括:
第二接收模块,用于接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
第二确定模块,用于基于所述第一数据包确定与所述音频数据相对应的第一RTP时间;并基于所述第二数据包确定与所述视频数据相对应的第二RTP时间;
第二处理模块,用于基于所述第一发送报文包和所述第一RTP时间,确定与所述音频数据相对应的第一目标NTP时间,并基于所述第二发送报文包和所述第二RTP时间,确定与所述视频数据相对应的第二目标NTP时间;
第二同步模块,用于根据所述第一目标NTP时间和所述第二目标NTP时间,对所述音频数据和所述视频数据进行数据同步。
第七方面,本发明实施例提供一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第五方面中的一种音视频数据同步方法。
第八方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第五方面中的一种音视频数据同步方法。
第九方面,本发明实施例提供了一种数据同步方法,应用于服务端,所述方法包括:
接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括第一数据,所述第二数据包中包括第二数据,所述第一数据的数据类型与所述第二数据的数据类型不同;
生成与所述第一数据相对应的第一发送报文包、和与所述第二数据相对应的第二发送报文包;
将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述第一数据和所述第二数据进行数据同步。
第十方面,本发明实施例提供了一种服务端,包括:
第三接收模块,用于接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括第一数据,所述第二数据包中包括第二数据,所述第一数据的数据类型与所述第二数据的数据类型不同;
第三处理模块,用于生成与所述第一数据相对应的第一发送报文包、和与所述第二数据相对应的第二发送报文包;
第三发送模块,用于将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述第一数据和所述第二数据进行数据同步。
第十一方面,本发明实施例提供一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第九方面中的一种数据同步方法。
第十二方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第九方面中的一种数据同步方法。
第十三方面,本发明实施例提供一种数据同步方法,应用于接收端,所述方法包括:
接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,所述第一数据包中包括第一数据,所述第二数据包中包括第二数据,所述第一数据的数据类型与所述第二数据的数据类型不同;
基于所述第一数据包确定与所述第一数据相对应的第一RTP时间;并基于所述第二数据包确定与所述第二数据相对应的第二RTP时间;
基于所述第一发送报文包和所述第一RTP时间,确定与所述第一数据相对应的第一目标NTP时间,并基于所述第二发送报文包和所述第二RTP时间,确定与所述第二数据相对应的第二目标NTP时间;
根据所述第一目标NTP时间和所述第二目标NTP时间,对所述第一数据和所述第二数据进行数据同步。
第十四方面,本发明实施例提供一种接收端,包括:
第四接收模块,用于接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,所述第一数据包中包括第一数据,所述第二数据包中包括第二数据,所述第一数据的数据类型与所述第二数据的数据类型不同;
第四确定模块,用于基于所述第一数据包确定与所述第一数据相对应的第一RTP时间;并基于所述第二数据包确定与所述第二数据相对应的第二RTP时间;
第四处理模块,用于基于所述第一发送报文包和所述第一RTP时间,确定与所述第一数据相对应的第一目标NTP时间,并基于所述第二发送报文包和所述第二RTP时间,确定与所述第二数据相对应的第二目标NTP时间;
第四同步模块,用于根据所述第一目标NTP时间和所述第二目标NTP时间,对所述第一数据和所述第二数据进行数据同步。
第十五方面,本发明实施例提供一种电子设备,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第十三方面中的一种数据同步方法。
第十六方面,本发明实施例提供了一种计算机存储介质,用于储存计算机程序,所述计算机程序使计算机执行时实现上述第十三方面中的一种数据同步方法。
本实施例提供的上述技术方案,通过接收发送端发送的与第一数据相对应第一数据包和与第二数据相对应的第二数据包,并生成与所述第一数据相对应的第一发送报文包、和与所述第二数据相对应的第二发送报文包;而后将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,使得所述接收端可以基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述第一数据和所述第二数据进行数据同步,从而保证了对数据进行显示的质量和效果,进一步提高了该方法的实用性,有利于市场的推广与应用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种数据的同步系统的示意图;
图2为本发明实施例提供的一种数据同步方法的流程示意图;
图3为本发明实施例提供的生成与所述第一数据相对应的第一发送报文包的流程示意图;
图4为本发明实施例提供的基于所述第一本地NTP时间和所述第一原始发送报文包,生成与所述第一数据相对应的第一发送报文包的流程示意图;
图5为本发明实施例提供的根据所述第一原始发送报文包,确定与所述第一发送端RTP时间和所述第一发送端NTP相对应的第一映射关系的流程示意图;
图6为本发明实施例提供的基于所述第一传输速率和所述第一发送报文包,确定所述第一映射关系的流程示意图;
图7为本发明实施例提供的生成与所述第二数据相对应的第二发送报文包的流程示意图;
图8为本发明实施例提供的基于所述第二本地NTP时间和所述第二原始发送报文包,生成与所述第二数据相对应的第二发送报文包的流程示意图;
图9为本发明实施例提供的根据所述第二原始发送报文包,确定与所述第二发送端RTP时间和所述第二发送端NTP相对应的第二映射关系的流程示意图;
图10为本发明实施例提供的基于所述第二传输速率和所述第二发送报文包,确定所述第二映射关系的流程示意图;
图11为本发明实施例提供的另一种数据同步方法的流程示意图;
图12为本发明实施例提供的基于所述第一发送报文包和所述第一RTP时间,确定与所述第一数据相对应的第一目标NTP时间的流程示意图;
图13为本发明实施例提供的基于所述第二发送报文包和所述第二RTP时间,确定与所述第二数据相对应的第二目标NTP时间的流程示意图;
图14为本发明应用实施例提供的一种数据同步方法的信令图;
图15为本发明应用实施例提供的确定第一映射关系和第二映射关系的示意图;
图16为本发明应用实施例提供的根据所述第一目标NTP时间和所述第二目标NTP时间,对所述第一数据和所述第二数据进行数据同步的示意图;
图17为本发明实施例提供的一种音视频数据同步方法的流程示意图;
图18为本发明实施例提供的另一种音视频数据同步方法的流程示意图;
图19为本发明实施例提供的一种服务端的结构示意图;
图20为与图19所示实施例提供的一种服务端对应的电子设备的结构示意图;
图21为本发明实施例提供的一种接收端的结构示意图;
图22为与图21所示实施例提供的一种接收端对应的电子设备的结构示意图;
图23为本发明实施例提供的另一种服务端的结构示意图;
图24为与图23所示实施例提供的另一种服务端对应的电子设备的结构示意图;
图25为本发明实施例提供的另一种接收端的结构示意图;
图26为与图25所示实施例提供的另一种接收端对应的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
术语解释:
发送报文包(Sender Report,简称SR)包括:相对时间戳信息和固有时间戳信息。
实时传输协议数据包(Real-time Transport Protocol,简称RTP)包括:待传输的数据信息以及与数据信息相对应的相对时间戳信息。
网络时间协议(Network Time Protocol,简称NTP):用于进行网络时间同步的协议。
为了便于理解本申请的技术方案,下面对现有技术进行简要说明:
随着科学技术的飞速发展,音视频的实时通讯(Real-time communicatio,简称RTC)的需求越来越广泛。具体的,在发送端利用RFC3550传输协议将音视频数据通过选择性转发单元(Selective forwarding unit,简称SFU)传输至接收端时,接收端可以直接按照RFC3550传输协议所生成的SR包进行数据同步操作。然而,由于SFU单元与发送端之间的时间基准不同,因此,接收端无法实现对音视频进行准确地数据同步操作。
若SFU单元采用透传上行SR包的方式,虽然能够使得接收端准确地对音视频进行数据同步操作。但是,由于接收端接收到待传输数据的时间信息是发送端时间信息,因此,在计算SFU单元与接收端之间的下行往返时延(Round-Trip Time,简称RTT)时,所利用的是发送端时间信息,即此时所计算的下行RTT实际是发送端到接收端的整个通讯链路的往返时延RTT,而并不是服务端与接收端之间的下行时延。此时,若基于上述所计算的下行往返时延RTT对音视频数据的传输进程控制时,会影响音视频数据的传输策略(包括:丢包率、丢包重传操作、重传次数等等),进而会降低对音视频数据进行传输的质量和效率。
为了能够准确地计算出服务端与接收端之间的下行往返时延RTT、并且保证对音视频数据进行数据同步操作,参考附图1所示,本实施例提供了一种数据同步方法,该数据同步方法的执行主体为数据的同步系统,该同步系统可以包括发送端、服务端和接收端,其中,发送端通过服务端与接收端通信连接。具体的,
发送端,用于向服务器发送第一原始SR包、第一数据包、第二原始SR包、第二数据包,其中,第一数据包和第二数据包是满足实时传输协议RTP的数据包。
其中,第一数据包中包括第一数据,第二数据包中包括第二数据,第一数据的数据类型与第二数据的数据类型不同,并且第一数据包和所述第二数据包可以是满足实时传输协议RTP的数据包;第一原始SR包中包括与第一数据相对应的第一发送端NTP时间和第一发送端RTP时间,第二原始SR包中包括与第二数据相对应的第二发送端NTP时间和第二发送端RTP时间,可以理解的是,RTP时间是通过实时传输协议数据包RTP所获取到的时间信息,NTP时间是通过网络时间协议NTP所获取到的时间信息。
服务端,用于接收发送端所发送的第一原始SR包、第一数据包、第二原始SR包、第二数据包;获取与第一原始SR包相对应的第一本地NTP时间、以及与第二原始SR包相对应的第二本地NTP时间;基于第一本地NTP时间和第一原始SR包生成第一SR包,基于第二本地NTP时间和第二原始SR包生成第二SR包;而后将第一SR包、第二SR包、第一数据包和第二数据包发送至接收端。
接收端,用于接收第一SR包、第二SR包、第一数据包和第二数据包,而后基于第一SR包所确定的第一映射关系来确定与第一RTP时间相对应的第一目标NTP时间,基于第二SR包所确定的第二映射关系来确定与第二RTP时间相对应的第二目标NTP时间。获取第一目标NTP时间与第二目标NTP时间之间的时间差,基于时间差对第一数据和第二数据进行同步操作。
本实施例中,服务端通过接收发送端发送的第一数据包和第二数据包,而后确定与第一原始发送报文包相对应的第一本地NTP时间;基于第一本地NTP时间和第一原始发送报文包,生成与第一数据相对应的第一发送报文包,确定与第二原始发送报文包相对应的第二本地NTP时间;基于第二本地NTP时间和第二原始发送报文包,生成与第二数据相对应的第二发送报文包;而后将第一数据包、第一发送报文包、第二数据包和第二发送报文包发送至接收端,以使得接收端可以基于第一数据包、第一发送报文包、第二数据包和第二发送报文包对第一数据和第二数据进行数据同步,这样不仅有效地实现了对数据进行同步的操作,并且也可以基于服务端的本地NTP时间准确地计算出服务端与接收端之间的下行RTT,这样可以满足在特定应用场景下的数据同步操作及数据与传输协议之间的兼容性,进一步提高了对数据进行显示的质量和效果。
为了清楚地了解数据的同步系统中各个设备的数据的同步过程,下面分别对服务端以及接收端对数据的同步过程进行详细说明。
图2为本发明实施例提供的一种数据同步方法的流程示意图;参考附图2所示,本实施例提供了一种数据同步方法,该方法可以应用于服务端,即数据同步方法的执行主体可以为服务端,可以理解的是,该服务端可以应用于音视频通信的应用场景、视频点播的应用场景、视频直播的应用场景等等,该服务端可以实现为软件、或者软件和硬件的组合。具体的,该方法可以包括:
步骤S201:接收发送端发送的第一数据包和第二数据包,第一数据包中包括第一数据,第二数据包中包括第二数据,第一数据的数据类型与第二数据的数据类型不同。
其中,发送端和服务端可以通过预设传输协议进行数据传输操作,从而可以使得服务端可以接收到发送端所发送的第一数据包和第二数据包。在一些可实现的方式中,预设传输协议是实时传输协议RTP,此时,第一数据包和第二数据包可以是满足实时传输协议RTP的数据包。当然的,发送端和服务端可以通过其他的传输协议进行数据传输操作,第一数据包和第二数据包也可以是满足其他传输协议的数据包,本领域技术人员可以根据具体的应用需求和设计需求进行设置,在此不再赘述。
另外,第一数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据;第二数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据。可以理解的是,第一数据的数据类型和第二数据的数据类型并不限于上述所举例的数据类型,本领域技术人员可以根据不同的应用场景和应用需求来选择其他类型的第一数据和第二数据,只要能够使得第一数据的数据类型与第二数据的数据类型不同即可,在此不再赘述。
具体的,满足实时传输协议的数据包中可以包括待传输数据以及与待传输数据相对应的实时传输协议数据RTP时间信息。在第一数据包中包括第一数据时,该第一数据包中可以包括第一数据和与第一数据相对应的第一RTP时间;相类似的,在第二数据包中包括第二数据时,该第二数据包中可以包括第二数据和与第二数据相对应的第二RTP时间。
另外,本实施例对于服务端接收发送端发送的第一数据包和第二数据包的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如:发送端与服务端通讯连接(有线连接、无线连接等等),而后发送端可以基于预设的RFC3550算法将第一数据包和第二数据包传输至服务端,从而使得服务端可以接收到第一数据包和第二数据包。当然的,本领域技术人员也可以采用其他的算法将第一数据包和第二数据包传输至服务端,只要能够保证服务端可以准确地获取到第一数据包和第二数据包即可,在此不再赘述。
步骤S202:生成与第一数据相对应的第一发送报文包、和与第二数据相对应的第二发送报文包。
在服务端接收到第一数据包和第二数据包之后,可以生成与第一数据相对应的第一发送报文包和与第二数据相对应的第二发送报文包;其中,第一发送报文包中包括:服务端的第一本地NTP时间和与第一本地NTP时间相对应的第一虚拟RTP时间;第二发送报文包中包括:服务端的第二本地NTP时间和与第二本地NTP时间相对应的第二虚拟RTP时间。需要注意的是,上述的第一本地NTP时间用于确定与第一数据相对应的、服务端与接收端之间的第一往返时延;相类似的,第二本地NTP时间用于确定与第二数据相对应的、服务端与接收端之间的第二往返时延。
另外,本实施例对于生成与第一数据相对应的第一发送报文包、和与第二数据相对应的第二发送报文包的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如:可以预先获取与第一数据相对应的NTP时间与RTP时间之间的第一映射关系、与第二数据相对应的NTP时间与RTP时间之间的第二映射关系,而后获取服务端的针对第一数据的第一本地NTP时间、针对第二数据的第二本地NTP时间,而后基于第一映射关系和第一本地NTP时间获得第一虚拟RTP时间,基于第二映射关系和第二本地NTP时间获得第二虚拟RTP时间。在获取到第一本地NTP时间和第一虚拟RTP时间之后,可以基于第一本地NTP时间和第一虚拟RTP时间生成第一发送报文SR包。相类似的,在获取到第二本地NTP时间和第二虚拟RTP时间之后,可以基于第二本地NTP时间和第二虚拟RTP时间生成第二发送报文SR包。
当然的,本领域技术人员也可以采用其他的方式来生成与第一数据相对应的第一发送报文包、和与第二数据相对应的第二发送报文包,只要能够保证对第一发送报文包和第二发送报文包进行生成的准确可靠性即可,在此不再赘述。
步骤S203:将第一数据包、第一发送报文包、第二数据包和第二发送报文包发送至接收端,以使接收端基于第一数据包、第一发送报文包、第二数据包和第二发送报文包对第一数据和第二数据进行数据同步。
在服务端获取到第一数据包、第一发送报文包、第二数据包和第二发送报文之后,可以基于预设传输协议将第一数据包、第一发送报文包、第二数据包和第二发送报文包发送至接收端,以使得接收端可以接收到第一数据包、第一发送报文包、第二数据包和第二发送报文包。在第一数据包和第二数据包是满足实时传输协议RTP的数据包时,还可以基于第一数据包确定与第一数据相对应的第一RTP时间;基于第二数据包确定与第二数据相对应的第二RTP时间;基于第一发送报文包和第一RTP时间,确定与第一数据相对应的第一目标NTP时间,并基于第二发送报文包和第二RTP时间,确定与第二数据相对应的第二目标NTP时间;根据第一目标NTP时间和第二目标NTP时间,对第一数据和第二数据进行数据同步。
本实施例提供的数据同步方法,通过接收发送端发送的与第一数据相对应第一数据包和与第二数据相对应的第二数据包,并生成与第一数据相对应的第一发送报文包、和与第二数据相对应的第二发送报文包;而后将第一数据包、第一发送报文包、第二数据包和第二发送报文包发送至接收端,使得接收端可以基于第一数据包、第一发送报文包、第二数据包和第二发送报文包对第一数据和第二数据进行数据同步,从而保证了对数据进行显示的质量和效果;另外,由于服务端所发送的第一发送报文包和第二发送报文包中分别包括与第一数据相对应的第一本地NTP时间和与第二数据相对应的第二本地NTP时间,上述的第一本地NTP时间可以用于确定与第一数据相对应的、服务端与接收端之间的第一往返时延,第二本地NTP时间可以用于确定与第二数据相对应的、服务端与接收端之间的第二往返时延,从而有效地保证了对第一数据和第二数据进行传输的稳定可靠性,进一步提高了该方法的实用性,有利于市场的推广与应用。
图3为本发明实施例提供的生成与第一数据相对应的第一发送报文包的流程示意图;在上述实施例的基础上,参考附图3所示,本实施例对于生成与第一数据相对应的第一发送报文包的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,本实施例中的生成与第一数据相对应的第一发送报文包可以包括:
步骤S301:接收与第一数据相对应的第一原始发送报文包,第一原始发送报文包中包括第一发送端NTP时间和与第一发送端NTP时间相对应的第一发送端RTP时间。
步骤S302:确定与第一原始发送报文包相对应的第一本地NTP时间。
步骤S303:基于第一本地NTP时间和第一原始发送报文包,生成与第一数据相对应的第一发送报文包。
具体的,在发送端向服务端发送与第一数据相对应的第一原始发送报文包(以下称第一原始SR包)时,服务端即可获取到与第一数据相对应的第一原始SR包,上述的第一原始SR包中包括有与第一数据相对应的第一发送端NTP时间和第一发送端RTP时间。在服务端接收到第一原始SR包时,可以通过计时器或者其他检测装置确定与第一原始SR包相对应的第一本地NTP时间,可以理解的是,该第一本地NTP时间可以为服务端接收到第一原始SR包时所对应的服务端本地时间;或者,该第一本地NTP时间可以为服务端基于第一原始SR包生成第一发送报文包(以下称第一SR包)所对应的服务端本地时间。
在获取到第一本地NTP时间之后,可以基于第一本地NTP时间和第一原始发送报文包,生成与第一数据相对应的第一发送报文包。具体的,参考附图4所示,本实施例中的基于第一本地NTP时间和第一原始发送报文包,生成与第一数据相对应的第一发送报文包可以包括:
步骤S401:根据第一原始发送报文包,确定与第一发送端RTP时间和第一发送端NTP相对应的第一映射关系。
其中,在获取到第一原始SR包之后,则可以基于第一原始SR包确定第一发送端RTP时间和第一发送端NTP时间之间的第一映射关系。可以理解的是,在第一原始SR包的个数不同时,确定第一映射关系的实现方式可以不同。
具体的,一种可实现的方式,在第一原始发送报文包的个数为至少两个时,根据第一原始发送报文包,确定与第一发送端RTP时间和第一发送端NTP相对应的第一映射关系可以包括:基于至少两个第一原始发送报文包中包括的第一发送端NTP时间和第一发送端RTP时间,确定第一映射关系。
举例来说,第一原始SR1包中包括:NTP1时间和RTP1时间,第一原始SR2包中包括:NTP2时间和RTP2时间,其中,第一原始SR1包和第一原始SR2包均对应于第一数据。在获取到第一原始SR1包和第二原始SR2包之后,可以基于NTP1时间(相当于x1)、RTP1时间(相当于y1)、NTP2时间(相当于x2)和RTP2时间(相当于y2)来确定用于标识发送端RTP时间和发送端NTP之间对应关系的第一映射关系。假设第一映射关系为预设的直线关系,此时的第一映射关系可以表达为:
另一种可实现的方式,参考附图5所示,在第一原始发送报文包的个数为一个时,根据第一原始发送报文包,确定与第一发送端RTP时间和第一发送端NTP相对应的第一映射关系可以包括:
步骤S4011:获取与第一原始发送报文包相对应的第一传输速率。
步骤S4012:基于第一传输速率和第一发送报文包,确定第一映射关系。
其中,预先配置有与第一原始SR包相对应的第一传输速率,该第一传输速率可以为与第一原始SR包相对应的数据采样率,在确定第一原始SR包之后,可以基于第一原始SR包与第一传输速率之间的映射关系来确定与第一原始SR包相对应的第一传输速率。在获取到第一传输速率之后,可以基于第一传输速率和第一发送报文包确定第一映射关系。具体的,参考附图6所示,基于第一传输速率和第一发送报文包,确定第一映射关系可以包括:
步骤S40121:将第一传输速率确定为第一映射关系相对应的第一倾斜率。
步骤S40122:基于第一倾斜率和第一发送报文包中包括的第一发送端RTP时间和第一发送端NTP时间,确定第一映射关系。
具体的,在获取到第一传输速率之后,可以将第一传输速率确定为与第一映射关系相对应的第一倾斜率,而后基于第一倾斜率和第一发送报文包中包括的第一发送RTP时间和第一发送端NTP时间来确定第一映射关系。
举例来说,第一原始SR包中包括:NTP1时间和RTP1时间,并且,该第一原始SR包所对应的第一传输速率为k1。在获取到第一原始SR包和第一传输速率k1之后,可以基于NTP1时间(相当于x1)、RTP1时间(相当于y1)和第一传输速率k1来确定用于标识发送端RTP时间和发送端NTP之间对应关系的第一映射关系,假设第一映射关系为预设的直线关系,此时的第一映射关系可以表达为:y-y1=k1(x-x1)。
可以理解的是,第一映射关系的确定方式并不限于上述所限定的实现方式,本领域技术人员还可以采用其他的方式来获取第一映射关系,只要能够保证对第一映射关系进行确定的准确可靠性即可,在此不再赘述。
通过上述方式来确定第一映射关系,有效地实现了通过不同个数的第一原始发送报文包采用不同的实现方式来确定第一映射关系,不仅保证了对第一映射关系进行确定的准确可靠性,并且有效地保证了对第一映射关系进行确定的灵活可靠性,进一步提高了该方法的实用性。
步骤S402:基于第一映射关系,确定与第一本地NTP时间相对应的第一虚拟RTP时间。
在获取到第一映射关系之后,由于第一映射关系用于标识发送端RTP时间与发送端NTP时间之间的映射关系,为了能够保证对服务端与接收端之间的下行RTT计算的准确可靠性,服务端与发送端可以对应同一映射关系。因此,在获取到第一映射关系和第一本地NTP时间之后,可以基于第一映射关系来确定与第一本地NTP时间相对应的第一虚拟RTP时间。
步骤S403:根据第一本地NTP时间和第一虚拟RTP时间,生成与第一数据相对应的第一发送报文包。
在获取到第一本地NTP时间和第一虚拟RTP时间之后,可以基于第一本地NTP时间和第一虚拟RTP时间生成与第一数据相对应的第一发送报文包,此时的第一发送报文包中可以包括第一本地NTP时间和第一虚拟RTP时间,从而有效地保证了对第一发送报文包进行生成的准确可靠性,进一步提高了对数据进行同步处理的质量和效率。
图7为本发明实施例提供的生成与第二数据相对应的第二发送报文包的流程示意图;在上述实施例的基础上,参考附图7所示,本实施例对于生成与第二数据相对应的第二发送报文包的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,较为优选的,本实施例中的生成与第二数据相对应的第二发送报文包可以包括:
步骤S701:接收与第二数据相对应的第二原始发送报文包,第二原始发送报文包中包括第二发送端NTP时间和与第二发送端NTP时间相对应的第二发送端RTP时间。
步骤S702:确定与第二原始发送报文包相对应的第二本地NTP时间。
步骤S703:基于第二本地NTP时间和第二原始发送报文包,生成与第二数据相对应的第二发送报文包。
具体的,在发送端向服务端发送与第二数据相对应的第二原始发送报文包(以下称第二原始SR包)时,服务端即可获取到与第二数据相对应的第二原始SR包,上述的第二原始SR包中包括有与第二数据相对应的第二发送端NTP时间和第二发送端RTP时间。在服务端接收到第二原始SR包时,可以通过计时器或者其他检测装置确定与第二原始SR包相对应的第二本地NTP时间,可以理解的是,该第二本地NTP时间可以为服务端接收到第二原始SR包时所对应的服务端本地时间;或者,该第二本地NTP时间可以为服务端基于第二原始SR包生成第二发送报文包(以下称第二SR包)所对应的服务端本地时间。
在获取到第二本地NTP时间之后,可以基于第二本地NTP时间和第二原始发送报文包,生成与第二数据相对应的第二发送报文包。具体的,参考附图8所示,本实施例中的基于第二本地NTP时间和第二原始发送报文包,生成与第二数据相对应的第二发送报文包可以包括:
步骤S801:根据第二原始发送报文包,确定与第二发送端RTP时间和第二发送端NTP相对应的第二映射关系。
其中,在获取到第二原始SR包之后,则可以基于第二原始SR包确定第二发送端RTP时间和第二发送端NTP时间之间的第二映射关系。可以理解的是,在第二原始SR包的个数不同时,确定第二映射关系的实现方式可以不同。
具体的,一种可实现的方式,在第二原始发送报文包的个数为至少两个时,根据第二原始发送报文包,确定与第二发送端RTP时间和第二发送端NTP相对应的第二映射关系可以包括:基于至少两个第二原始发送报文包中包括的第二发送端NTP时间和第二发送端RTP时间,确定第二映射关系。
举例来说,第二原始SR1包中包括:NTP3时间和RTP3时间,第二原始SR2包中包括:NTP4时间和RTP4时间,其中,第二原始SR1包和第二原始SR2包均对应于第二数据。在获取到第二原始SR1包和第二原始SR2包之后,可以基于NTP3时间(相当于x3)、RTP3时间(相当于y3)、NTP4时间(相当于x4)和RTP4时间(相当于y4)来确定用于标识发送端RTP时间和发送端NTP之间对应关系的第二映射关系。假设第二映射关系为预设的直线关系,此时的第二映射关系可以表达为:
另一种可实现的方式,参考附图9所示,在第二原始发送报文包的个数为一个时,根据第二原始发送报文包,确定与第二发送端RTP时间和第二发送端NTP相对应的第二映射关系可以包括:
步骤S8011:获取与第二原始发送报文包相对应的第二传输速率。
步骤S8012:基于第二传输速率和第二发送报文包,确定第二映射关系。
其中,预先配置有与第二原始SR包相对应的第二传输速率,该第二传输速率可以为与第二原始SR包相对应的数据采样率,在确定第二原始SR包之后,可以基于第二原始SR包与第二传输速率之间的映射关系来确定与第二原始SR包相对应的第二传输速率。在获取到第二传输速率之后,可以基于第二传输速率和第二发送报文包确定第二映射关系。具体的,参考附图10所示,基于第二传输速率和第二发送报文包,确定第二映射关系可以包括:
步骤S80121:将第二传输速率确定为第二映射关系相对应的第二倾斜率。
步骤S80122:基于第二倾斜率和第二发送报文包中包括的第二发送端RTP时间和第二发送端NTP时间,确定第二映射关系。
具体的,在获取到第二传输速率之后,可以将第二传输速率确定为与第二映射关系相对应的第二倾斜率,而后基于第二倾斜率和第二发送报文包中包括的第二发送RTP时间和第二发送端NTP时间来确定第二映射关系。
举例来说,第二原始SR包中包括:NTP2时间和RTP2时间,并且,该第二原始SR包所对应的第二传输速率为k2。在获取到第二原始SR包和第二传输速率k2之后,可以基于NTP2时间(相当于x2)、RTP2时间(相当于y2)和第二传输速率k2来确定用于标识发送端RTP时间和发送端NTP之间对应关系的第二映射关系,假设第二映射关系为预设的直线关系,此时的第二映射关系可以表达为:y-y2=k2(x-x2)。
可以理解的是,第二映射关系的确定方式并不限于上述所限定的实现方式,本领域技术人员还可以采用其他的方式来获取第二映射关系,只要能够保证对第二映射关系进行确定的准确可靠性即可,在此不再赘述。
通过上述方式来确定第二映射关系,有效地实现了通过不同个数的第二原始发送报文包采用不同的实现方式来确定第二映射关系,不仅保证了对第二映射关系进行确定的准确可靠性,并且有效地保证了对第二映射关系进行确定的灵活可靠性,进一步提高了该方法的实用性。
步骤S802:基于第二映射关系,确定与第二本地NTP时间相对应的第二虚拟RTP时间。
在获取到第二映射关系之后,由于第二映射关系用于标识发送端RTP时间与发送端NTP时间之间的映射关系,为了能够保证对服务端与接收端之间的下行RTT计算的准确可靠性,服务端与发送端可以对应同一映射关系。因此,在获取到第二映射关系和第二本地NTP时间之后,可以基于第二映射关系来确定与第二本地NTP时间相对应的第二虚拟RTP时间。
步骤S803:根据第二本地NTP时间和第二虚拟RTP时间,生成与第二数据相对应的第二发送报文包。
在获取到第二本地NTP时间和第二虚拟RTP时间之后,可以基于第二本地NTP时间和第二虚拟RTP时间生成与第二数据相对应的第二发送报文包,此时的第二发送报文包中可以包括第二本地NTP时间和第二虚拟RTP时间,从而有效地保证了对第二发送报文包进行生成的准确可靠性,进一步提高了对数据进行同步处理的质量和效率。
图11为本发明实施例提供的另一种数据同步方法的流程示意图;参考附图11所示,本实施例提供了另一种数据同步方法,该方法可以应用于接收端,即数据同步方法的执行主体可以为接收端,可以理解的是,该接收端可以实现为软件、或者软件和硬件的组合。具体的,该方法可以包括:
步骤S1101:接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,第一数据包中包括第一数据,第二数据包中包括第二数据,第一数据的数据类型与第二数据的数据类型不同。
其中,第一数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据;第二数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据。可以理解的是,第一数据的数据类型和第二数据的数据类型并不限于上述所举例的数据类型,本领域技术人员可以根据不同的应用场景和应用需求来选择其他类型的第一数据和第二数据,只要能够使得第一数据的数据类型与第二数据的数据类型不同即可,在此不再赘述。
具体的,实时传输协议数据包中包括待传输数据以及与待传输数据相对应的实时传输协议数据RTP时间信息。在第一数据包中包括第一数据时,该第一数据包中可以包括第一数据和与第一数据相对应的第一RTP时间;相类似的,在第二数据包中包括第二数据时,该第二数据包中可以包括第二数据和与第二数据相对应的第二RTP时间。
另外,第一发送报文包中包括:服务端的第一本地NTP时间和与第一本地NTP时间相对应的第一虚拟RTP时间,可以理解的是,第一本地NTP时间与第一虚拟RTP时间之间的对应关系与第一数据相对应的发送端NTP时间和发送端RTP时间之间的对应关系相同。并且,上述的第一本地NTP时间用于确定与第一数据相对应的、服务端与接收端之间的第一往返时延。
相类似的,第二发送报文包中包括:服务端的第二本地NTP时间和与第二本地NTP时间相对应的第二虚拟RTP时间,可以理解的是,第二本地NTP时间与第二虚拟RTP时间之间的对应关系与第二数据相对应的发送端NTP时间和发送端RTP时间之间的对应关系相同。并且,第二本地NTP时间用于确定与第二数据相对应的、服务端与接收端之间的第二往返时延。
另外,本实施例对于接收端接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包的具体实现方式不做限定,本领域技术人员可以根据具体的应用需求和设计需求进行设置,例如:发送端与服务端通讯连接(有线连接、无线连接等等),而后发送端可以基于预设的RFC3550算法将第一数据包、第一发送报文包、第二数据包、第二发送报文包传输至接收端,从而使得接收端可以接收到第一数据包、第一发送报文包、第二数据包和第二发送报文包。当然的,本领域技术人员也可以采用其他的算法将第一数据包、第一发送报文包、第二数据包、第二发送报文包传输至接收端,只要能够保证接收端可以准确地获取到第一数据包、第一发送报文包、第二数据包、第二发送报文包即可,在此不再赘述。
步骤S1102:基于第一数据包确定与第一数据相对应的第一RTP时间;并基于第二数据包确定与第二数据相对应的第二RTP时间。
由于第一数据包中包括第一数据和与第一数据相对应的第一RTP时间,因此,通过第一数据包可以确定与第一数据相对应的第一RTP时间。相类似的,由于第二数据包中包括第二数据和与第二数据相对应的第二RTP时间,因此,通过第二数据包可以确定与第二数据相对应的第二RTP时间。
步骤S1103:基于第一发送报文包和第一RTP时间,确定与第一数据相对应的第一目标NTP时间,并基于第二发送报文包和第二RTP时间,确定与第二数据相对应的第二目标NTP时间。
在获取到第一发送报文包和第一RTP时间之后,可以基于第一发送报文包和第一RTP时间来确定与第一数据相对应的第一目标NTP时间。具体的,参考附图12所示,本实施例中的基于第一发送报文包和第一RTP时间,确定与第一数据相对应的第一目标NTP时间可以包括:
步骤S11031:基于第一发送报文包确定第一映射关系,第一映射关系用于标识与第一数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系。
步骤S11032:根据第一映射关系和第一RTP时间,确定第一目标NTP时间。
其中,第一发送报文包中包括服务端的第一本地NTP时间和与第一本地NTP时间相对应的第一虚拟RTP时间,上述第一本地NTP时间与第一虚拟RTP时间所对应的映射关系与发送端RTP时间与发送端NTP时间之间的对应关系相同。因此,在获取到第一发送报文包之后,可以基于第一发送报文包来确定与发送端的第一数据相对应的第一映射关系,该第一映射关系用于标识与第一数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系。具体的,本实施例中的基于第一发送报文包来确定第一映射关系的具体实现方式与上述根据第一原始发送报文包确定与第一发送端RTP时间和第一发送端NTP相对应的第一映射关系的具体实现方式相类似,具体可参考上述陈述内容,在此不再赘述。
在获取到第一映射关系之后,可以基于第一映射关系和第一RTP时间来确定第一目标NTP时间,该第一目标NTP时间与第一RTP时间相对应。
相类似的,在获取到第二发送报文包和第二RTP时间之后,可以基于第二发送报文包和第二RTP时间来确定与第二数据相对应的第二目标NTP时间。具体的,参考附图13所示,本实施例中的基于第二发送报文包和第二RTP时间,确定与第二数据相对应的第二目标NTP时间可以包括:
步骤S11033:基于第二发送报文包确定第二映射关系,第二映射关系用于标识与第二数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系。
步骤S11034:根据第二映射关系和第二RTP时间,确定第二目标NTP时间。
其中,第二发送报文包中包括服务端的第二本地NTP时间和与第二本地NTP时间相对应的第二虚拟RTP时间,上述第二本地NTP时间与第二虚拟RTP时间所对应的映射关系与发送端RTP时间与发送端NTP时间之间的对应关系相同。因此,在获取到第二发送报文包之后,可以基于第二发送报文包来确定与发送端的第二数据相对应的第二映射关系,该第二映射关系用于标识与第二数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系。具体的,本实施例中的基于第二发送报文包来确定第二映射关系的具体实现方式与上述根据第二原始发送报文包确定与第二发送端RTP时间和第二发送端NTP相对应的第二映射关系的具体实现方式相类似,具体可参考上述陈述内容,在此不再赘述。
在获取到第二映射关系之后,可以基于第二映射关系和第二RTP时间来确定第二目标NTP时间,该第二目标NTP时间与第二RTP时间相对应。
步骤S1104:根据第一目标NTP时间和第二目标NTP时间,对第一数据和第二数据进行数据同步。
在获取到第一目标NTP时间和第二目标NTP时间之后,可以根据第一目标NTP时间和第二目标NTP时间对第一数据和第二数据进行数据同步。具体的,根据第一目标NTP时间和第二目标NTP时间,对第一数据和第二数据进行数据同步可以包括:
步骤S11041:获取第一目标NTP时间和第二目标NTP时间之间的NTP时间差。
步骤S11042:根据NTP时间差对第一数据和第二数据进行数据同步。
具体的,由于在同一设备上第一数据所对应的第一目标NTP时间与第二数据所对应的第二目标NTP时间为同一时间基准,因此,为了能够实现对第一数据和第二数据进行同步操作,可以获取到第一目标NTP时间与第二目标NTP时间之间的NPT时间差,而后可以基于NTP时间差对第一数据和第二数据进行数据同步操作,从而有效地保证了对第一数据和第二数据进行显示的质量和效率。
本实施例提供的数据同步方法,通过接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,第一数据包中包括第一数据,第二数据包中包括第二数据,第一数据的数据类型与第二数据的数据类型不同,基于第一数据包确定与第一数据相对应的第一RTP时间;并基于第二数据包确定与第二数据相对应的第二RTP时间,而后基于第一发送报文包和第一RTP时间,确定与第一数据相对应的第一目标NTP时间,并基于第二发送报文包和第二RTP时间,确定与第二数据相对应的第二目标NTP时间;并根据第一目标NTP时间和第二目标NTP时间,对第一数据和第二数据进行数据同步,有效地实现了对不同类型的数据进行数据同步操作,从而提高了对数据进行显示的质量和效果,进一步保证了该方法的实用性。
具体应用时,参考附图14-图16所示,本应用实施例提供了一种数据同步方法,该数据同步方法的执行主体可以包括发送端、服务端和接收端,该数据同步方法可以使用服务端的本地时间来计算服务端与接收端之间的下行RTT,从而保证了对下行RTT时间进行计算的准确可靠性;另外,接收端可以通过所接收到的服务端的SR包中的时间映射关系来对不同的数据进行数据同步操作,从而保证了对数据进行显示的质量和效率。下面以音频数据作为第一数据、视频数据作为第二数据为例,对数据的同步操作进行说明,具体的,该方法可以包括:
步骤1:发送端获取音频数据和视频数据,生成与音频数据相对应的第一原始SR包和第一RTP包、与视频数据相对应的第二原始SR包和第二RTP包。
其中,第一原始SR包中包括与音频数据相对应的第一发送端RTP时间戳和第一发送端NTP时间戳,第一RTP包中包括音频数据和与音频数据相对应的第一发送端RTP时间戳;第二原始SR包中包括与视频数据相对应的第二发送端RTP时间戳和第二发送端NTP时间戳,第二RTP包中包括视频数据和与视频数据相对应的第二发送端RTP时间戳。
步骤2:发送端将第一原始SR包、第一RTP包、第二原始SR包和第二RTP包发送端服务端。
步骤3:服务端接收发送端所发送的第一原始SR包、第一RTP包、第二原始SR包和第二RTP包。
步骤4:获取与第一原始SR包相对应的第一本地NTP时间、以及与第二原始SR包相对应的第二本地NTP时间;基于第一本地NTP时间和第一原始SR包生成第一SR包,基于第二本地NTP时间和第二原始SR包生成第二SR包,具体的,使用创建第一SR包的服务端本地时间作为此第一SR包的NTP时间戳,相类似的,使用创建第二SR包的服务端本地时间作为此第二SR包的NTP时间戳。
需要注意的是,第一SR包中包括的RTP时间和NTP时间之间的映射关系与第一原始SR包中包括的发送端RTP时间和发送端NTP时间之间的映射关系相同。
以音频数据的第一映射关系为直线映射关系为例进行说明,在获取到针对音频数据的第一SR包和第二SR包时,可以基于第一SR包和第二SR包来确定第一映射关系。举例来说,参考附图15所示,SR1包中包括:ntp1时间和rtp1时间,SR2包中包括:ntp2时间和rtp2时间,基于上述的SR1包和SR2包来确定第一映射关系,具体的,Y=rate*X+offset,其中,rate为针对音频数据的采样率,具体的,rate=(rtp2-rtp1)/(ntp2-ntp1),offset=rtp1-(rate*ntp1)。通过上述过程有效地计算出RTP时间和NTP时间之间的第一映射关系。
相类似的,视频数据所对应的第二映射关系也可以为直线映射关系,该第二映射关系的具体确定方式与上述音频数据所对应的第一映射关系的确定方式相类似,具体可参考上述陈述内容,在此不再赘述。
步骤5:将第一SR包、第二SR包、第一RTP包和第二RTP包发送至接收端。
步骤6:接收端接收第一SR包、第二SR包、第一RTP包和第二RTP包。
步骤7:基于第一SR包所确定的第一映射关系确定与第一RTP时间相对应的第一NTP时间,基于第二SR包所确定的第二映射关系确定与第二RTP时间相对应的第二NTP时间。获取第一NTP时间与第二NTP时间之间的时间差,基于时间差对第一数据和第二数据进行同步操作。
由于同一台设备上的音频数据和视频数据所对应的本地时间是一样的,也即:本地时间所对应的NTP格式时间是在同一个坐标系上,因此,可以将NTP时间作为横轴X,单位是ms,而将RTP时间戳的值作为纵轴Y,此时,通过上述所计算的映射关系可以确定第一NTP时间和第二NTP时间。
举例来说,参考附图16所示,在获取到与音频数据相对应的第一映射关系之后,可以基于第一映射关系和rtp_a,确定与音频数据相对应的NTP_a。相类似的,在获取到与视频数据相对应的第二映射关系之后,可以基于第二映射关系和rtp_v,确定与视频数据相对应的NTP_v。
在获取到NTP_v和NTP_a之后,可以获取NTP_v和NTP_a之间的时间差,通过时间差可以对音频数据和视频数据进行同步操作,具体的,在NTP_a大于NTP_v时,则可以控制音频数据延时显示,使得音频数据和视频数据可以实现数据的同步操作。
步骤8:接收端通过第一SR包中包括的第一本地NTP时间来计算服务端与接收端之间的第一RTT时间;接收端通过第二SR包中包括的第二本地NTP时间来计算服务端与接收端之间的第二RTT时间。
本应用实施例提供的数据的同步方法,服务端通过接收发送端发送的第一实时传输协议RTP包和第二实时传输协议RTP包,而后确定与第一原始发送报文包相对应的第一本地NTP时间;基于第一本地NTP时间和第一原始发送报文包,生成与第一数据相对应的第一发送报文包,确定与第二原始发送报文包相对应的第二本地NTP时间;基于第二本地NTP时间和第二原始发送报文包,生成与第二数据相对应的第二发送报文包;而后将第一实时传输协议RTP包、第一发送报文包、第二实时传输协议RTP包和第二发送报文包发送至接收端,以使得接收端可以基于第一实时传输协议RTP包、第一发送报文包、第二实时传输协议RTP包和第二发送报文包对第一数据和第二数据进行数据同步,这样不仅有效地实现了对数据进行同步的操作,并且也可以基于服务端的本地NTP时间准确地计算出服务端与接收端之间的下行RTT,这样可以满足在特定应用场景下的数据同步操作及数据与传输协议之间的兼容性,进一步提高了对数据进行显示的质量和效果。
图17为本发明实施例提供的一种音视频数据同步方法的流程示意图;参考附图17所示,本实施例提供了一种音视频数据同步方法,该方法可以应用于服务端,即服务端可以应用于音视频通信的应用场景,该服务端可以实现为软件、或者软件和硬件的组合。具体的,该方法可以包括:
步骤S1701:接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据。
步骤S1702:生成与所述音频数据相对应的第一发送报文包、和与所述视频数据相对应的第二发送报文包。
步骤S1703:将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述音频数据和所述视频数据进行数据同步。
在一种可实现的方式,第一数据包和第二数据包是满足实时传输协议RTP的数据包。
在一种可实现的方式,所述第一发送报文包中包括:所述服务端的第一本地NTP时间和与所述第一本地NTP时间相对应的第一虚拟RTP时间;所述第二发送报文包中包括:所述服务端的第二本地NTP时间和与所述第二本地NTP时间相对应的第二虚拟RTP时间。
在一种可实现的方式,生成与所述音频数据相对应的第一发送报文包可以包括:接收与所述音频数据相对应的第一原始发送报文包,所述第一原始发送报文包中包括第一发送端NTP时间和与所述第一发送端NTP时间相对应的第一发送端RTP时间;确定与所述第一原始发送报文包相对应的第一本地NTP时间;基于所述第一本地NTP时间和所述第一原始发送报文包,生成与所述音频数据相对应的第一发送报文包。
在一种可实现的方式,基于所述第一本地NTP时间和所述第一原始发送报文包,生成与所述音频数据相对应的第一发送报文包可以包括:根据所述第一原始发送报文包,确定与所述第一发送端RTP时间和所述第一发送端NTP相对应的第一映射关系;基于所述第一映射关系,确定与所述第一本地NTP时间相对应的第一虚拟RTP时间;根据所述第一本地NTP时间和所述第一虚拟RTP时间,生成与所述音频数据相对应的第一发送报文包。
在一种可实现的方式,所述第一原始发送报文的个数为至少两个;根据所述第一原始发送报文包,确定与所述第一发送端RTP时间和所述第一发送端NTP相对应的第一映射关系可以包括:基于至少两个所述第一原始发送报文包中包括的第一发送端NTP时间和第一发送端RTP时间,确定所述第一映射关系。
在一种可实现的方式,根据所述第一原始发送报文包,确定与所述第一发送端RTP时间和所述第一发送端NTP相对应的第一映射关系可以包括:获取与所述第一原始发送报文包相对应的第一传输速率;基于所述第一传输速率和所述第一发送报文包,确定所述第一映射关系。
在一种可实现的方式,基于所述第一传输速率和所述第一发送报文包,确定所述第一映射关系可以包括:将所述第一传输速率确定为所述第一映射关系相对应的第一倾斜率;基于所述第一倾斜率和所述第一发送报文包中包括的第一发送端RTP时间和第一发送端NTP时间,确定所述第一映射关系。
在一种可实现的方式,生成与所述视频数据相对应的第二发送报文包可以包括:接收与所述视频数据相对应的第二原始发送报文包,所述第二原始发送报文包中包括第二发送端NTP时间和与所述第二发送端NTP时间相对应的第二发送端RTP时间;确定与所述第二原始发送报文包相对应的第二本地NTP时间;基于所述第二本地NTP时间和所述第二原始发送报文包,生成与所述视频数据相对应的第二发送报文包。
在一种可实现的方式,基于所述第二本地NTP时间和所述第二原始发送报文包,生成与所述视频数据相对应的第二发送报文包可以包括:根据所述第二原始发送报文包,确定与所述第二发送端RTP时间和所述第二发送端NTP相对应的第二映射关系;基于所述第二映射关系,确定与所述第二本地NTP时间相对应的第二虚拟RTP时间;根据所述第二本地NTP时间和所述第二虚拟RTP时间,生成与所述视频数据相对应的第二发送报文包。
在一种可实现的方式,所述第二原始发送报文的个数为至少两个;根据所述第二原始发送报文包,确定与所述第二发送端RTP时间和所述第二发送端NTP相对应的第二映射关系可以包括:基于至少两个所述第二原始发送报文包中包括的第二发送端NTP时间和第二发送端RTP时间,确定所述第二映射关系。
在一种可实现的方式,根据所述第二原始发送报文包,确定与所述第二发送端RTP时间和所述第二发送端NTP相对应的第二映射关系可以包括:获取与所述第二原始发送报文包相对应的第二传输速率;基于所述第二传输速率和所述第二发送报文包,确定所述第二映射关系。
在一种可实现的方式,基于所述第二传输速率和所述第二发送报文包,确定所述第二映射关系可以包括:将所述第二传输速率确定为所述第二映射关系相对应的第二倾斜率;基于所述第二倾斜率和所述第二发送报文包中包括的第二发送端RTP时间和第二发送端NTP时间,确定所述第二映射关系。
在一种可实现的方式,所述第一本地NTP时间用于确定与所述音频数据相对应的、所述服务端与所述接收端之间的第一往返时延;所述第二本地NTP时间用于确定与所述视频数据相对应的、所述服务端与所述接收端之间的第二往返时延。
本实施例中的上述方法的执行过程和技术效果可参见图1-图10、图14-图16所示实施例中的描述,在此不再赘述。
图18为本发明实施例提供的另一种音视频数据同步方法的流程示意图;参考附图18所示,本实施例提供了另一种音视频数据同步方法,该方法可以应用于接收端,即接收端可以应用于音视频通信的应用场景,该接收端可以实现为软件、或者软件和硬件的组合。具体的,该方法可以包括:
步骤S1801:接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据。
步骤S1802:基于所述第一数据包确定与所述音频数据相对应的第一RTP时间;并基于所述第二数据包确定与所述视频数据相对应的第二RTP时间。
步骤S1803:基于所述第一发送报文包和所述第一RTP时间,确定与所述音频数据相对应的第一目标NTP时间,并基于所述第二发送报文包和所述第二RTP时间,确定与所述视频数据相对应的第二目标NTP时间。
步骤S1804:根据所述第一目标NTP时间和所述第二目标NTP时间,对所述音频数据和所述视频数据进行数据同步。
在一种可实现的方式,所述音频数据包中包括与所述音频数据相对应的第一RTP时间,所述视频数据包中包括与所述视频数据相对应的第二RTP时间。
在一种可实现的方式,所述第一发送报文包中包括:所述服务端的第一本地NTP时间和与所述第一本地NTP时间相对应的第一虚拟RTP时间;所述第二发送报文包中包括:所述服务端的第二本地NTP时间和与所述第二本地NTP时间相对应的第二虚拟RTP时间。
在一种可实现的方式,基于所述第一发送报文包和所述第一RTP时间,确定与所述音频数据相对应的第一目标NTP时间可以包括:基于所述第一发送报文包确定第一映射关系,所述第一映射关系用于标识与所述音频数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系;根据所述第一映射关系和所述第一RTP时间,确定所述第一目标NTP时间。
在一种可实现的方式,基于所述第二发送报文包和所述第二RTP时间,确定与所述视频数据相对应的第二目标NTP时间可以包括:基于所述第二发送报文包确定第二映射关系,所述第二映射关系用于标识与所述视频数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系;根据所述第二映射关系和所述第二RTP时间,确定所述第二目标NTP时间。
在一种可实现的方式,根据所述第一目标NTP时间和所述第二目标NTP时间,对所述音频数据和所述视频数据进行数据同步可以包括:获取所述第一目标NTP时间和所述第二目标NTP时间之间的NTP时间差;根据所述NTP时间差对所述音频数据和所述视频数据进行数据同步。
在一种可实现的方式,所述第一本地NTP时间用于确定与所述音频数据相对应的、所述服务端与所述接收端之间的第一往返时延;所述第二本地NTP时间用于确定与所述视频数据相对应的、所述服务端与所述接收端之间的第二往返时延。
本实施例中的上述方法的执行过程和技术效果可参见图1-图16所示实施例中的描述,在此不再赘述。
图19为本发明实施例提供的一种服务端的结构示意图;参考附图19所示,本实施例提供了一种服务端,该服务端可以执行上述图17所示的音视频数据同步方法。该服务端可以包括:第一接收模块11、第一处理模块12和第一发送模块13。具体的,
第一接收模块11,用于接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
第一处理模块12,用于生成与所述音频数据相对应的第一发送报文包、和与所述视频数据相对应的第二发送报文包;
第一发送模块13,用于将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述音频数据和所述视频数据进行数据同步。
在一些实例中,所述第一数据包和所述第二数据包是满足实时传输协议RTP的数据包。
在一些实例中,第一发送报文包中包括:服务端的第一本地NTP时间和与第一本地NTP时间相对应的第一虚拟RTP时间;第二发送报文包中包括:服务端的第二本地NTP时间和与第二本地NTP时间相对应的第二虚拟RTP时间。
在一些实例中,在第一处理模块12生成与第一数据相对应的第一发送报文包时,该第一处理模块12可以用于执行:接收与第一数据相对应的第一原始发送报文包,第一原始发送报文包中包括第一发送端NTP时间和与第一发送端NTP时间相对应的第一发送端RTP时间;确定与第一原始发送报文包相对应的第一本地NTP时间;基于第一本地NTP时间和第一原始发送报文包,生成与第一数据相对应的第一发送报文包。
在一些实例中,在第一处理模块12基于第一本地NTP时间和第一原始发送报文包,生成与第一数据相对应的第一发送报文包时,该第一处理模块12可以用于执行:根据第一原始发送报文包,确定与第一发送端RTP时间和第一发送端NTP相对应的第一映射关系;基于第一映射关系,确定与第一本地NTP时间相对应的第一虚拟RTP时间;根据第一本地NTP时间和第一虚拟RTP时间,生成与第一数据相对应的第一发送报文包。
在一些实例中,第一原始发送报文的个数为至少两个;在第一处理模块12根据第一原始发送报文包,确定与第一发送端RTP时间和第一发送端NTP相对应的第一映射关系时,该第一处理模块12可以用于执行:基于至少两个第一原始发送报文包中包括的第一发送端NTP时间和第一发送端RTP时间,确定第一映射关系。
在一些实例中,在第一处理模块12根据第一原始发送报文包,确定与第一发送端RTP时间和第一发送端NTP相对应的第一映射关系时,该第一处理模块12可以用于执行:获取与第一原始发送报文包相对应的第一传输速率;基于第一传输速率和第一发送报文包,确定第一映射关系。
在一些实例中,在第一处理模块12基于第一传输速率和第一发送报文包,确定第一映射关系时,该第一处理模块12可以用于执行:将第一传输速率确定为第一映射关系相对应的第一倾斜率;基于第一倾斜率和第一发送报文包中包括的第一发送端RTP时间和第一发送端NTP时间,确定第一映射关系。
在一些实例中,在第一处理模块12生成与第二数据相对应的第二发送报文包时,该第一处理模块12可以用于执行:接收与第二数据相对应的第二原始发送报文包,第二原始发送报文包中包括第二发送端NTP时间和与第二发送端NTP时间相对应的第二发送端RTP时间;确定与第二原始发送报文包相对应的第二本地NTP时间;基于第二本地NTP时间和第二原始发送报文包,生成与第二数据相对应的第二发送报文包。
在一些实例中,在第一处理模块12基于第二本地NTP时间和第二原始发送报文包,生成与第二数据相对应的第二发送报文包时,该第一处理模块12可以用于执行:根据第二原始发送报文包,确定与第二发送端RTP时间和第二发送端NTP相对应的第二映射关系;基于第二映射关系,确定与第二本地NTP时间相对应的第二虚拟RTP时间;根据第二本地NTP时间和第二虚拟RTP时间,生成与第二数据相对应的第二发送报文包。
在一些实例中,第二原始发送报文的个数为至少两个;在第一处理模块12根据第二原始发送报文包,确定与第二发送端RTP时间和第二发送端NTP相对应的第二映射关系时,该第一处理模块12可以用于执行:基于至少两个第二原始发送报文包中包括的第二发送端NTP时间和第二发送端RTP时间,确定第二映射关系。
在一些实例中,在第一处理模块12根据第二原始发送报文包,确定与第二发送端RTP时间和第二发送端NTP相对应的第二映射关系时,该第一处理模块12可以用于执行:获取与第二原始发送报文包相对应的第二传输速率;基于第二传输速率和第二发送报文包,确定第二映射关系。
在一些实例中,在第一处理模块12基于第二传输速率和第二发送报文包,确定第二映射关系时,该第一处理模块12可以用于执行:将第二传输速率确定为第二映射关系相对应的第二倾斜率;基于第二倾斜率和第二发送报文包中包括的第二发送端RTP时间和第二发送端NTP时间,确定第二映射关系。
在一些实例中,第一数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据;第二数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据。
在一些实例中,第一本地NTP时间用于确定与第一数据相对应的、服务端与接收端之间的第一往返时延;第二本地NTP时间用于确定与第二数据相对应的、服务端与接收端之间的第二往返时延。
图19所示装置可以执行图17所示实施例的方法,本实施例未详细描述的部分,可参考对图17所示实施例的相关说明。该技术方案的执行过程和技术效果参见图17所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图19所示服务端的结构可实现为一电子设备,该电子设备可以是具有数据处理能力的终端设备(例如:手机、平板电脑)、服务器等各种设备。如图20所示,该电子设备可以包括:第一处理器21和第一存储器22。其中,第一存储器22用于存储支持电子设备执行上述图17所示实施例中提供的音视频数据同步方法的程序,第一处理器21被配置为用于执行第一存储器22中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第一处理器21执行时能够实现如下步骤:
接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
生成与所述音频数据相对应的第一发送报文包、和与所述视频数据相对应的第二发送报文包;
将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述音频数据和所述视频数据进行数据同步。
可选地,第一处理器21还用于执行前述图17所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括第一通信接口23,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图17所示方法实施例中音视频数据同步方法所涉及的程序。
图21为本发明实施例提供的一种接收端的结构示意图;参考附图21所示,本实施例提供了一种接收端,该接收端可以执行上述图18所示的音视频数据同步方法。该接收端可以包括:第二接收模块31、第二确定模块32、第二处理模块33和第二同步模块34。具体的,
第二接收模块31,用于接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
第二确定模块32,用于基于所述第一数据包确定与所述音频数据相对应的第一RTP时间;并基于所述第二数据包确定与所述视频数据相对应的第二RTP时间;
第二处理模块33,用于基于所述第一发送报文包和所述第一RTP时间,确定与所述音频数据相对应的第一目标NTP时间,并基于所述第二发送报文包和所述第二RTP时间,确定与所述视频数据相对应的第二目标NTP时间;
第二同步模块34,用于根据所述第一目标NTP时间和所述第二目标NTP时间,对所述音频数据和所述视频数据进行数据同步。
在一些实例中,所述音频数据包中包括与所述音频数据相对应的第一RTP时间,所述视频数据包中包括与所述视频数据相对应的第二RTP时间。
在一些实例中,所述第一发送报文包中包括:所述服务端的第一本地NTP时间和与所述第一本地NTP时间相对应的第一虚拟RTP时间;所述第二发送报文包中包括:所述服务端的第二本地NTP时间和与所述第二本地NTP时间相对应的第二虚拟RTP时间。
在一些实例中,基于所述第一发送报文包和所述第一RTP时间,确定与所述音频数据相对应的第一目标NTP时间可以包括:基于所述第一发送报文包确定第一映射关系,所述第一映射关系用于标识与所述音频数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系;根据所述第一映射关系和所述第一RTP时间,确定所述第一目标NTP时间。
在一些实例中,基于所述第二发送报文包和所述第二RTP时间,确定与所述视频数据相对应的第二目标NTP时间可以包括:基于所述第二发送报文包确定第二映射关系,所述第二映射关系用于标识与所述视频数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系;根据所述第二映射关系和所述第二RTP时间,确定所述第二目标NTP时间。
在一些实例中,根据所述第一目标NTP时间和所述第二目标NTP时间,对所述音频数据和所述视频数据进行数据同步可以包括:获取所述第一目标NTP时间和所述第二目标NTP时间之间的NTP时间差;根据所述NTP时间差对所述音频数据和所述视频数据进行数据同步。
在一些实例中,所述第一本地NTP时间用于确定与所述音频数据相对应的、所述服务端与所述接收端之间的第一往返时延;所述第二本地NTP时间用于确定与所述视频数据相对应的、所述服务端与所述接收端之间的第二往返时延。
图21所示装置可以执行图18所示实施例的方法,本实施例未详细描述的部分,可参考对图18所示实施例的相关说明。该技术方案的执行过程和技术效果参见图18所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图21所示接收端的结构可实现为一电子设备,该电子设备可以是具有数据处理能力的终端设备(例如:手机、平板电脑)等各种设备。如图22所示,该电子设备可以包括:第二处理器41和第二存储器42。其中,第二存储器42用于存储支持电子设备执行上述图18所示实施例中提供的音视频数据同步方法的程序,第二处理器41被配置为用于执行第二存储器42中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第二处理器41执行时能够实现如下步骤:
接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括第一数据,所述第二数据包中包括第二数据,所述第一数据的数据类型与所述第二数据的数据类型不同;
生成与所述第一数据相对应的第一发送报文包、和与所述第二数据相对应的第二发送报文包;
将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述第一数据和所述第二数据进行数据同步。
可选地,第二处理器41还用于执行前述图18所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括第二通信接口43,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图18所示方法实施例中音视频数据同步方法所涉及的程序。
图23为本发明实施例提供的另一种服务端的结构示意图;参考附图23所示,本实施例提供了一种服务端,该服务端可以执行上述图2所示的数据同步方法。该服务端可以包括:第三接收模块51、第三处理模块52和第三发送模块53。具体的,
第三接收模块51,用于接收发送端发送的第一数据包和第二数据包,第一数据包中包括第一数据,第二数据包中包括第二数据,第一数据的数据类型与第二数据的数据类型不同;
第三处理模块52,用于生成与第一数据相对应的第一发送报文包、和与第二数据相对应的第二发送报文包;
第三发送模块53,用于将第一数据包、第一发送报文包、第二数据包和第二发送报文包发送至接收端,以使接收端基于第一数据包、第一发送报文包、第二数据包和第二发送报文包对第一数据和第二数据进行数据同步。
在一些实例中,所述第一数据包和所述第二数据包是满足实时传输协议RTP的数据包。
在一些实例中,第一发送报文包中包括:服务端的第一本地NTP时间和与第一本地NTP时间相对应的第一虚拟RTP时间;第二发送报文包中包括:服务端的第二本地NTP时间和与第二本地NTP时间相对应的第二虚拟RTP时间。
在一些实例中,在第三处理模块52生成与第一数据相对应的第一发送报文包时,该第三处理模块52可以用于执行:接收与第一数据相对应的第一原始发送报文包,第一原始发送报文包中包括第一发送端NTP时间和与第一发送端NTP时间相对应的第一发送端RTP时间;确定与第一原始发送报文包相对应的第一本地NTP时间;基于第一本地NTP时间和第一原始发送报文包,生成与第一数据相对应的第一发送报文包。
在一些实例中,在第三处理模块52基于第一本地NTP时间和第一原始发送报文包,生成与第一数据相对应的第一发送报文包时,该第三处理模块52可以用于执行:根据第一原始发送报文包,确定与第一发送端RTP时间和第一发送端NTP相对应的第一映射关系;基于第一映射关系,确定与第一本地NTP时间相对应的第一虚拟RTP时间;根据第一本地NTP时间和第一虚拟RTP时间,生成与第一数据相对应的第一发送报文包。
在一些实例中,第一原始发送报文的个数为至少两个;在第三处理模块52根据第一原始发送报文包,确定与第一发送端RTP时间和第一发送端NTP相对应的第一映射关系时,该第三处理模块52可以用于执行:基于至少两个第一原始发送报文包中包括的第一发送端NTP时间和第一发送端RTP时间,确定第一映射关系。
在一些实例中,在第三处理模块52根据第一原始发送报文包,确定与第一发送端RTP时间和第一发送端NTP相对应的第一映射关系时,该第三处理模块52可以用于执行:获取与第一原始发送报文包相对应的第一传输速率;基于第一传输速率和第一发送报文包,确定第一映射关系。
在一些实例中,在第三处理模块52基于第一传输速率和第一发送报文包,确定第一映射关系时,该第三处理模块52可以用于执行:将第一传输速率确定为第一映射关系相对应的第一倾斜率;基于第一倾斜率和第一发送报文包中包括的第一发送端RTP时间和第一发送端NTP时间,确定第一映射关系。
在一些实例中,在第三处理模块52生成与第二数据相对应的第二发送报文包时,该第三处理模块52可以用于执行:接收与第二数据相对应的第二原始发送报文包,第二原始发送报文包中包括第二发送端NTP时间和与第二发送端NTP时间相对应的第二发送端RTP时间;确定与第二原始发送报文包相对应的第二本地NTP时间;基于第二本地NTP时间和第二原始发送报文包,生成与第二数据相对应的第二发送报文包。
在一些实例中,在第三处理模块52基于第二本地NTP时间和第二原始发送报文包,生成与第二数据相对应的第二发送报文包时,该第三处理模块52可以用于执行:根据第二原始发送报文包,确定与第二发送端RTP时间和第二发送端NTP相对应的第二映射关系;基于第二映射关系,确定与第二本地NTP时间相对应的第二虚拟RTP时间;根据第二本地NTP时间和第二虚拟RTP时间,生成与第二数据相对应的第二发送报文包。
在一些实例中,第二原始发送报文的个数为至少两个;在第三处理模块52根据第二原始发送报文包,确定与第二发送端RTP时间和第二发送端NTP相对应的第二映射关系时,该第三处理模块52可以用于执行:基于至少两个第二原始发送报文包中包括的第二发送端NTP时间和第二发送端RTP时间,确定第二映射关系。
在一些实例中,在第三处理模块52根据第二原始发送报文包,确定与第二发送端RTP时间和第二发送端NTP相对应的第二映射关系时,该第三处理模块52可以用于执行:获取与第二原始发送报文包相对应的第二传输速率;基于第二传输速率和第二发送报文包,确定第二映射关系。
在一些实例中,在第三处理模块52基于第二传输速率和第二发送报文包,确定第二映射关系时,该第三处理模块52可以用于执行:将第二传输速率确定为第二映射关系相对应的第二倾斜率;基于第二倾斜率和第二发送报文包中包括的第二发送端RTP时间和第二发送端NTP时间,确定第二映射关系。
在一些实例中,第一数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据;第二数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据。
在一些实例中,第一本地NTP时间用于确定与第一数据相对应的、服务端与接收端之间的第一往返时延;第二本地NTP时间用于确定与第二数据相对应的、服务端与接收端之间的第二往返时延。
图23所示装置可以执行图1-图10、图14-图16所示实施例的方法,本实施例未详细描述的部分,可参考对图1-图10、图14-图16所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1-图10、图14-图16所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图23所示服务端的结构可实现为一电子设备,该电子设备可以是具有数据处理能力的终端设备(例如:手机、平板电脑)、服务器等各种设备。如图24所示,该电子设备可以包括:第三处理器61和第三存储器62。其中,第三存储器62用于存储支持电子设备执行上述图1-图10、图14-图16所示实施例中提供的数据同步方法的程序,第三处理器61被配置为用于执行第三存储器62中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第三处理器61执行时能够实现如下步骤:
接收发送端发送的第一数据包和第二数据包,第一数据包中包括第一数据,第二数据包中包括第二数据,第一数据的数据类型与第二数据的数据类型不同;
生成与第一数据相对应的第一发送报文包、和与第二数据相对应的第二发送报文包;
将第一数据包、第一发送报文包、第二数据包和第二发送报文包发送至接收端,以使接收端基于第一数据包、第一发送报文包、第二数据包和第二发送报文包对第一数据和第二数据进行数据同步。
可选地,第三处理器61还用于执行前述图1-图10、图14-图16所示实施例中的全部或部分步骤。
其中,电子设备的结构中还可以包括第三通信接口63,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图1-图10、图14-图16所示方法实施例中数据同步方法所涉及的程序。
图25为本发明实施例提供的另一种接收端的结构示意图;参考附图25所示,本实施例提供了一种接收端,该接收端可以执行上述图11所示的数据同步方法。该服务端可以包括:第四接收模块71、第四确定模块72、第四处理模块73和第四同步模块73。具体的,
第四接收模块71,用于接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,第一数据包中包括第一数据,第二数据包中包括第二数据,第一数据的数据类型与第二数据的数据类型不同;
第四确定模块72,用于基于第一数据包确定与第一数据相对应的第一RTP时间;并基于第二数据包确定与第二数据相对应的第二RTP时间;
第四处理模块73,用于基于第一发送报文包和第一RTP时间,确定与第一数据相对应的第一目标NTP时间,并基于第二发送报文包和第二RTP时间,确定与第二数据相对应的第二目标NTP时间;
第四同步模块74,用于根据第一目标NTP时间和第二目标NTP时间,对第一数据和第二数据进行数据同步。
在一些实例中,第一数据包中包括与第一数据相对应的第一RTP时间,第二数据包中包括与第二数据相对应的第二RTP时间。
在一些实例中,第一发送报文包中包括:服务端的第一本地NTP时间和与第一本地NTP时间相对应的第一虚拟RTP时间;第二发送报文包中包括:服务端的第二本地NTP时间和与第二本地NTP时间相对应的第二虚拟RTP时间。
在一些实例中,在第四处理模块33基于第一发送报文包和第一RTP时间,确定与第一数据相对应的第一目标NTP时间时,该第四处理模块33可以用于执行:基于第一发送报文包确定第一映射关系,第一映射关系用于标识与第一数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系;根据第一映射关系和第一RTP时间,确定第一目标NTP时间。
在一些实例中,在第四处理模块73基于第二发送报文包和第二RTP时间,确定与第二数据相对应的第二目标NTP时间时,该第四处理模块33可以用于执行:基于第二发送报文包确定第二映射关系,第二映射关系用于标识与第二数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系;根据第二映射关系和第二RTP时间,确定第二目标NTP时间。
在一些实例中,在第四同步模块74根据第一目标NTP时间和第二目标NTP时间,对第一数据和第二数据进行数据同步时,该第四同步模块74可以用于执行:获取第一目标NTP时间和第二目标NTP时间之间的NTP时间差;根据NTP时间差对第一数据和第二数据进行数据同步。
在一些实例中,第一数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据;第二数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据。
在一些实例中,第一本地NTP时间用于确定与第一数据相对应的、服务端与接收端之间的第一往返时延;第二本地NTP时间用于确定与第二数据相对应的、服务端与接收端之间的第二往返时延。
图25所示装置可以执行图1、图11-图16所示实施例的方法,本实施例未详细描述的部分,可参考对图1、图11-图16所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1、图11-图16所示实施例中的描述,在此不再赘述。
在一个可能的设计中,图25所示接收端的结构可实现为一电子设备,该电子设备可以是具有数据处理能力的终端设备(例如:手机、平板电脑)等各种设备。如图26所示,该电子设备可以包括:第四处理器81和第四存储器82。其中,第四存储器82用于存储支持电子设备执行上述图1、图11-图16所示实施例中提供的数据同步方法的程序,第四处理器81被配置为用于执行第四存储器82中存储的程序。
程序包括一条或多条计算机指令,其中,一条或多条计算机指令被第四处理器81执行时能够实现如下步骤:
接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,第一数据包中包括第一数据,第二数据包中包括第二数据,第一数据的数据类型与第二数据的数据类型不同;
基于第一数据包确定与第一数据相对应的第一RTP时间;并基于第二数据包确定与第二数据相对应的第二RTP时间;
基于第一发送报文包和第一RTP时间,确定与第一数据相对应的第一目标NTP时间,并基于第二发送报文包和第二RTP时间,确定与第二数据相对应的第二目标NTP时间;
根据第一目标NTP时间和第二目标NTP时间,对第一数据和第二数据进行数据同步。
其中,电子设备的结构中还可以包括第四通信接口83,用于电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存电子设备所用的计算机软件指令,其包含用于执行上述图1、图11-图16所示方法实施例中数据同步方法所涉及的程序。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以计算机产品的形式体现出来,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例提供的数据同步方法可以由某种程序/软件来执行,该程序/软件可以由网络侧提供,该程序/软件比如可以是前述实施例中提及的即时通信应用程序,前述实施例中提及的预测终端可以将该程序/软件下载到本地的非易失性存储介质中,并在其需要执行前述数据同步方法时,通过CPU将该程序/软件读取到内存中,进而由CPU执行该程序/软件以实现前述实施例中所提供的数据同步方法,执行过程可以参见前述图1至图20中的示意。
本发明实施例提供的数据同步方法可以由某种程序/软件来执行,该程序/软件可以由网络侧提供,该程序/软件比如可以是前述实施例中提及的即时通信应用程序,前述实施例中提及的训练终端可以将该程序/软件下载到本地的非易失性存储介质中,并在其需要执行前述数据同步方法时,通过CPU将该程序/软件读取到内存中,进而由CPU执行该程序/软件以实现前述实施例中所提供的数据同步方法,执行过程可以参见前述图1至图20中的示意。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程设备的处理器以产生一个机器,使得通过计算机或其他可编程设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (38)
1.一种音视频数据同步方法,其特征在于,应用于服务端,所述方法包括:
接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
生成与所述音频数据相对应的第一发送报文包、和与所述视频数据相对应的第二发送报文包;
将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述音频数据和所述视频数据进行数据同步。
2.根据权利要求1所述的方法,其特征在于,所述第一数据包和所述第二数据包是满足实时传输协议RTP的数据包。
3.一种音视频数据同步方法,其特征在于,应用于接收端,所述方法包括:
接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
基于所述第一数据包确定与所述音频数据相对应的第一RTP时间;并基于所述第二数据包确定与所述视频数据相对应的第二RTP时间;
基于所述第一发送报文包和所述第一RTP时间,确定与所述音频数据相对应的第一目标NTP时间,并基于所述第二发送报文包和所述第二RTP时间,确定与所述视频数据相对应的第二目标NTP时间;
根据所述第一目标NTP时间和所述第二目标NTP时间,对所述音频数据和所述视频数据进行数据同步。
4.一种数据同步方法,其特征在于,应用于服务端,所述方法包括:
接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括第一数据,所述第二数据包中包括第二数据,所述第一数据的数据类型与所述第二数据的数据类型不同;
生成与所述第一数据相对应的第一发送报文包、和与所述第二数据相对应的第二发送报文包;
将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述第一数据和所述第二数据进行数据同步。
5.根据权利要求4所述的方法,其特征在于,所述第一数据包和所述第二数据包是满足实时传输协议RTP的数据包。
6.根据权利要求5所述的方法,其特征在于,
所述第一发送报文包中包括:所述服务端的第一本地NTP时间和与所述第一本地NTP时间相对应的第一虚拟RTP时间;
所述第二发送报文包中包括:所述服务端的第二本地NTP时间和与所述第二本地NTP时间相对应的第二虚拟RTP时间。
7.根据权利要求6所述的方法,其特征在于,生成与所述第一数据相对应的第一发送报文包,包括:
接收与所述第一数据相对应的第一原始发送报文包,所述第一原始发送报文包中包括第一发送端NTP时间和与所述第一发送端NTP时间相对应的第一发送端RTP时间;
确定与所述第一原始发送报文包相对应的第一本地NTP时间;
基于所述第一本地NTP时间和所述第一原始发送报文包,生成与所述第一数据相对应的第一发送报文包。
8.根据权利要求7所述的方法,其特征在于,所述基于所述第一本地NTP时间和所述第一原始发送报文包,生成与所述第一数据相对应的第一发送报文包,包括:
根据所述第一原始发送报文包,确定与所述第一发送端RTP时间和所述第一发送端NTP相对应的第一映射关系;
基于所述第一映射关系,确定与所述第一本地NTP时间相对应的第一虚拟RTP时间;
根据所述第一本地NTP时间和所述第一虚拟RTP时间,生成与所述第一数据相对应的第一发送报文包。
9.根据权利要求8所述的方法,其特征在于,所述第一原始发送报文的个数为至少两个;根据所述第一原始发送报文包,确定与所述第一发送端RTP时间和所述第一发送端NTP相对应的第一映射关系,包括:
基于至少两个所述第一原始发送报文包中包括的第一发送端NTP时间和第一发送端RTP时间,确定所述第一映射关系。
10.根据权利要求8所述的方法,其特征在于,根据所述第一原始发送报文包,确定与所述第一发送端RTP时间和所述第一发送端NTP相对应的第一映射关系,包括:
获取与所述第一原始发送报文包相对应的第一传输速率;
基于所述第一传输速率和所述第一发送报文包,确定所述第一映射关系。
11.根据权利要求10所述的方法,其特征在于,基于所述第一传输速率和所述第一发送报文包,确定所述第一映射关系,包括:
将所述第一传输速率确定为所述第一映射关系相对应的第一倾斜率;
基于所述第一倾斜率和所述第一发送报文包中包括的第一发送端RTP时间和第一发送端NTP时间,确定所述第一映射关系。
12.根据权利要求6所述的方法,其特征在于,生成与所述第二数据相对应的第二发送报文包,包括:
接收与所述第二数据相对应的第二原始发送报文包,所述第二原始发送报文包中包括第二发送端NTP时间和与所述第二发送端NTP时间相对应的第二发送端RTP时间;
确定与所述第二原始发送报文包相对应的第二本地NTP时间;
基于所述第二本地NTP时间和所述第二原始发送报文包,生成与所述第二数据相对应的第二发送报文包。
13.根据权利要求12所述的方法,其特征在于,基于所述第二本地NTP时间和所述第二原始发送报文包,生成与所述第二数据相对应的第二发送报文包,包括:
根据所述第二原始发送报文包,确定与所述第二发送端RTP时间和所述第二发送端NTP相对应的第二映射关系;
基于所述第二映射关系,确定与所述第二本地NTP时间相对应的第二虚拟RTP时间;
根据所述第二本地NTP时间和所述第二虚拟RTP时间,生成与所述第二数据相对应的第二发送报文包。
14.根据权利要求13所述的方法,其特征在于,所述第二原始发送报文的个数为至少两个;根据所述第二原始发送报文包,确定与所述第二发送端RTP时间和所述第二发送端NTP相对应的第二映射关系,包括:
基于至少两个所述第二原始发送报文包中包括的第二发送端NTP时间和第二发送端RTP时间,确定所述第二映射关系。
15.根据权利要求13所述的方法,其特征在于,根据所述第二原始发送报文包,确定与所述第二发送端RTP时间和所述第二发送端NTP相对应的第二映射关系,包括:
获取与所述第二原始发送报文包相对应的第二传输速率;
基于所述第二传输速率和所述第二发送报文包,确定所述第二映射关系。
16.根据权利要求15所述的方法,其特征在于,基于所述第二传输速率和所述第二发送报文包,确定所述第二映射关系,包括:
将所述第二传输速率确定为所述第二映射关系相对应的第二倾斜率;
基于所述第二倾斜率和所述第二发送报文包中包括的第二发送端RTP时间和第二发送端NTP时间,确定所述第二映射关系。
17.根据权利要求4-16中任意一项所述的方法,其特征在于,
所述第一数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据;
所述第二数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据。
18.根据权利要求6-16中任意一项所述的方法,其特征在于,
所述第一本地NTP时间用于确定与所述第一数据相对应的、所述服务端与所述接收端之间的第一往返时延;
所述第二本地NTP时间用于确定与所述第二数据相对应的、所述服务端与所述接收端之间的第二往返时延。
19.一种数据同步方法,其特征在于,应用于接收端,所述方法包括:
接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,所述第一数据包中包括第一数据,所述第二数据包中包括第二数据,所述第一数据的数据类型与所述第二数据的数据类型不同;
基于所述第一数据包确定与所述第一数据相对应的第一RTP时间;并基于所述第二数据包确定与所述第二数据相对应的第二RTP时间;
基于所述第一发送报文包和所述第一RTP时间,确定与所述第一数据相对应的第一目标NTP时间,并基于所述第二发送报文包和所述第二RTP时间,确定与所述第二数据相对应的第二目标NTP时间;
根据所述第一目标NTP时间和所述第二目标NTP时间,对所述第一数据和所述第二数据进行数据同步。
20.根据权利要求19所述的方法,其特征在于,
所述第一数据包中包括与所述第一数据相对应的第一RTP时间,所述第二数据包中包括与所述第二数据相对应的第二RTP时间。
21.根据权利要求19所述的方法,其特征在于,
所述第一发送报文包中包括:所述服务端的第一本地NTP时间和与所述第一本地NTP时间相对应的第一虚拟RTP时间;
所述第二发送报文包中包括:所述服务端的第二本地NTP时间和与所述第二本地NTP时间相对应的第二虚拟RTP时间。
22.根据权利要求21所述的方法,其特征在于,基于所述第一发送报文包和所述第一RTP时间,确定与所述第一数据相对应的第一目标NTP时间,包括:
基于所述第一发送报文包确定第一映射关系,所述第一映射关系用于标识与所述第一数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系;
根据所述第一映射关系和所述第一RTP时间,确定所述第一目标NTP时间。
23.根据权利要求21所述的方法,其特征在于,基于所述第二发送报文包和所述第二RTP时间,确定与所述第二数据相对应的第二目标NTP时间,包括:
基于所述第二发送报文包确定第二映射关系,所述第二映射关系用于标识与所述第二数据相对应的发送端RTP时间与发送端NTP时间之间的对应关系;
根据所述第二映射关系和所述第二RTP时间,确定所述第二目标NTP时间。
24.根据权利要求19-23中任意一项所述的方法,其特征在于,根据所述第一目标NTP时间和所述第二目标NTP时间,对所述第一数据和所述第二数据进行数据同步,包括:
获取所述第一目标NTP时间和所述第二目标NTP时间之间的NTP时间差;
根据所述NTP时间差对所述第一数据和所述第二数据进行数据同步。
25.根据权利要求19-23中任意一项所述的方法,其特征在于,
所述第一数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据;
所述第二数据的数据类型包括以下任意之一:音频数据、视频数据、图像数据、文本数据。
26.根据权利要求21-22中任意一项所述的方法,其特征在于,
所述第一本地NTP时间用于确定与所述第一数据相对应的、所述服务端与所述接收端之间的第一往返时延;
所述第二本地NTP时间用于确定与所述第二数据相对应的、所述服务端与所述接收端之间的第二往返时延。
27.一种服务端,其特征在于,包括:
第一接收模块,用于接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
第一处理模块,用于生成与所述音频数据相对应的第一发送报文包、和与所述视频数据相对应的第二发送报文包;
第一发送模块,用于将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述音频数据和所述视频数据进行数据同步。
28.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求1至2中任一项所述的音视频数据同步方法。
29.一种计算机存储介质,其特征在于,该计算机存储介质用于储存计算机程序,所述计算机程序使计算机执行时实现权利要求1-2中任意一项所述的音视频数据同步方法。
30.一种接收端,其特征在于,包括:
第二接收模块,用于接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,所述第一数据包中包括音频数据,所述第二数据包中包括视频数据;
第二确定模块,用于基于所述第一数据包确定与所述音频数据相对应的第一RTP时间;并基于所述第二数据包确定与所述视频数据相对应的第二RTP时间;
第二处理模块,用于基于所述第一发送报文包和所述第一RTP时间,确定与所述音频数据相对应的第一目标NTP时间,并基于所述第二发送报文包和所述第二RTP时间,确定与所述视频数据相对应的第二目标NTP时间;
第二同步模块,用于根据所述第一目标NTP时间和所述第二目标NTP时间,对所述音频数据和所述视频数据进行数据同步。
31.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求3所述的音视频数据同步方法。
32.一种计算机存储介质,其特征在于,该计算机存储介质用于储存计算机程序,所述计算机程序使计算机执行时实现权利要求3所述的音视频数据同步方法。
33.一种服务端,其特征在于,包括:
第三接收模块,用于接收发送端发送的第一数据包和第二数据包,所述第一数据包中包括第一数据,所述第二数据包中包括第二数据,所述第一数据的数据类型与所述第二数据的数据类型不同;
第三处理模块,用于生成与所述第一数据相对应的第一发送报文包、和与所述第二数据相对应的第二发送报文包;
第三发送模块,用于将所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包发送至接收端,以使所述接收端基于所述第一数据包、第一发送报文包、第二数据包和所述第二发送报文包对所述第一数据和所述第二数据进行数据同步。
34.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求4至18中任一项所述的数据同步方法。
35.一种计算机存储介质,其特征在于,该计算机存储介质用于储存计算机程序,所述计算机程序使计算机执行时实现权利要求4-18中任意一项所述的数据同步方法。
36.一种接收端,其特征在于,包括:
第四接收模块,用于接收服务端发送的第一数据包、第一发送报文包、第二数据包、第二发送报文包,所述第一数据包中包括第一数据,所述第二数据包中包括第二数据,所述第一数据的数据类型与所述第二数据的数据类型不同;
第四确定模块,用于基于所述第一数据包确定与所述第一数据相对应的第一RTP时间;并基于所述第二数据包确定与所述第二数据相对应的第二RTP时间;
第四处理模块,用于基于所述第一发送报文包和所述第一RTP时间,确定与所述第一数据相对应的第一目标NTP时间,并基于所述第二发送报文包和所述第二RTP时间,确定与所述第二数据相对应的第二目标NTP时间;
第四同步模块,用于根据所述第一目标NTP时间和所述第二目标NTP时间,对所述第一数据和所述第二数据进行数据同步。
37.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现如权利要求19-26中任意一项所述的数据同步方法。
38.一种计算机存储介质,其特征在于,该计算机存储介质用于储存计算机程序,所述计算机程序使计算机执行时实现权利要求19-26中任意一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010464144.8A CN113747208B (zh) | 2020-05-27 | 2020-05-27 | 音视频数据同步方法、数据同步方法、服务端及接收端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010464144.8A CN113747208B (zh) | 2020-05-27 | 2020-05-27 | 音视频数据同步方法、数据同步方法、服务端及接收端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113747208A true CN113747208A (zh) | 2021-12-03 |
CN113747208B CN113747208B (zh) | 2023-05-26 |
Family
ID=78723930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010464144.8A Active CN113747208B (zh) | 2020-05-27 | 2020-05-27 | 音视频数据同步方法、数据同步方法、服务端及接收端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113747208B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174979A (zh) * | 2022-06-20 | 2022-10-11 | 阿里巴巴(中国)有限公司 | 流媒体传输网络及传输控制方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738437A (zh) * | 2004-06-22 | 2006-02-22 | Lg电子株式会社 | 同步移动通信终端的视频/音频数据 |
CN103414957A (zh) * | 2013-07-30 | 2013-11-27 | 广东工业大学 | 一种音视频数据同步的方法和装置 |
US20160285720A1 (en) * | 2013-11-13 | 2016-09-29 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and Devices for Media Processing in Distributed Cloud |
CN106791271A (zh) * | 2016-12-02 | 2017-05-31 | 福建星网智慧科技股份有限公司 | 一种音视频同步方法 |
-
2020
- 2020-05-27 CN CN202010464144.8A patent/CN113747208B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1738437A (zh) * | 2004-06-22 | 2006-02-22 | Lg电子株式会社 | 同步移动通信终端的视频/音频数据 |
CN103414957A (zh) * | 2013-07-30 | 2013-11-27 | 广东工业大学 | 一种音视频数据同步的方法和装置 |
US20160285720A1 (en) * | 2013-11-13 | 2016-09-29 | Telefonaktiebolaget L M Ericsson (Publ) | Methods and Devices for Media Processing in Distributed Cloud |
CN106791271A (zh) * | 2016-12-02 | 2017-05-31 | 福建星网智慧科技股份有限公司 | 一种音视频同步方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115174979A (zh) * | 2022-06-20 | 2022-10-11 | 阿里巴巴(中国)有限公司 | 流媒体传输网络及传输控制方法、装置、设备及存储介质 |
CN115174979B (zh) * | 2022-06-20 | 2023-12-29 | 阿里巴巴(中国)有限公司 | 流媒体传输网络及传输控制方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113747208B (zh) | 2023-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2634908C2 (ru) | Способ и устройство для управления доставкой медиаданных | |
EP3291551B1 (en) | Image delay detection method and system | |
KR101595526B1 (ko) | 콘텐츠 동기 전송 시스템 및 방법 | |
US10021182B2 (en) | Method and apparatus for data synchronization | |
CN107995503B (zh) | 音视频播放方法和装置 | |
US10505651B1 (en) | Precision time synchronization over standardized networking protocols | |
WO2015169186A1 (en) | File transmission method and system | |
AU2017405914B2 (en) | Virtual reality image sending method and apparatus | |
CN111327385A (zh) | 物联网设备的时钟同步方法、装置及设备 | |
US10607572B2 (en) | Frequency synchronization and phase correction | |
US8650604B2 (en) | Method and system for synchronization of audio/video (A/V) stream format change in wireless communication systems | |
US9331803B2 (en) | System and method of synchronization among a control apparatus and a plurality of terminals | |
CN113747208B (zh) | 音视频数据同步方法、数据同步方法、服务端及接收端 | |
EP2634995A1 (en) | Apparatus and method of displaying contents using key frames in a terminal | |
CN114268779B (zh) | 图像数据处理方法、装置、设备及计算机可读存储介质 | |
WO2016008131A1 (en) | Techniques for separately playing audio and video data in local networks | |
CN104426636A (zh) | 通信控制装置及通信控制方法 | |
CN109889922B (zh) | 流媒体数据的转发方法、装置、设备和存储介质 | |
CN113965488A (zh) | 数据包的延迟获取方法及设备、电子设备与存储介质 | |
TW201918100A (zh) | 基地台同步方法和裝置 | |
WO2021120124A1 (zh) | 用于视频显示的方法、装置及计算机存储介质 | |
WO2023088211A1 (zh) | 一种显示画面同步方法、系统及电子设备 | |
WO2022121610A1 (zh) | 一种发送方法及装置 | |
CN106454416B (zh) | 一种同步回放方法及设备 | |
KR20130009671A (ko) | 엠엠티 시스템에서의 패킷 전송 장치 및 방법, 및 패킷 수신 장치 및 방법 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40062877 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |