CN115174979A - 流媒体传输网络及传输控制方法、装置、设备及存储介质 - Google Patents
流媒体传输网络及传输控制方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115174979A CN115174979A CN202210701374.0A CN202210701374A CN115174979A CN 115174979 A CN115174979 A CN 115174979A CN 202210701374 A CN202210701374 A CN 202210701374A CN 115174979 A CN115174979 A CN 115174979A
- Authority
- CN
- China
- Prior art keywords
- time
- network node
- absolute time
- relative time
- transmission control
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 291
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000001360 synchronised effect Effects 0.000 claims abstract description 26
- 238000005070 sampling Methods 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 24
- 238000010586 diagram Methods 0.000 description 18
- 238000004364 calculation method Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 230000008569 process Effects 0.000 description 15
- 230000004044 response Effects 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例提供一种流媒体传输网络及传输控制方法、装置、设备及存储介质。在本申请实施例中,在流媒体传输网络中的数据链路上,相邻参与者之间可以进行传输控制消息的传输,另外,还可以对数据源端的绝对时间与相对时间的对应关系进行同步,使得与客户端连接的网络节点在向客户端发送传输控制消息时,能够以本地时间作为传输控制消息中的绝对时间,根据数据源端的绝对时间与相对时间的对应关系,确定与本地绝对时间对应的相对时间,使得客户端收到的绝对时间与相对时间与数据源端的绝对时间与相对时间相对应,以及将封装有本地绝对时间和相对时间的传输控制消息发送给客户端,进而使得客户端可以精准地进行音视频同步,改善播放体验。
Description
技术领域
本申请涉及流媒体技术领域,尤其涉及一种流媒体传输网络及传输控制方法、装置、设备及存储介质。
背景技术
目前,在IP网络中实现实时语音、视频通信和应用已经成为网络应用的一个主流技术和发展方向。实时传输协议(Real-time Transport Protocol,RTP)和实时传输控制协议(RTP Control Protocol,RTCP)IP协议族中用于实时语音、视频数据传输的标准协议。RTP与RTCP配合工作,RTP负责实时数据的传输,RTCP负责对RTP的通信和会话进行管理。
在基于RTP/RTCP的标准媒体流中,RTCP在对RTP进行通信和会话管理过程中使用发送者报告(Sender Report,SR)和接收者报告(Receiver Report,RR)。在SR中会携带RTP时间戳(Timestamp)以及该RTP Timestamp对应的网络时间协议(Network Time Protocol,NTP)Timestamp,接收端根据接收到的SR包中的RTP Timestamp和NTP Timestamp可以完成音视频流的同步处理。
但是,由于RTP/RTCP协议要求的是点对点的通信关系,所以当现有RTP/RTCP协议应用于大规模传输网络中时,接收端根据SR包中的RTP Timestamp和NTP Timestamp进行音视频流的同步处理,可能出现音视频同步失败的情况,进而引发播放体验问题。
发明内容
本申请的多个方面提供一种流媒体传输网络及传输控制方法、装置、设备及存储介质,用以解决音视频同步失败的问题,精准地进行音视频同步,改善播放体验。
本申请实施例提供一种流媒体传输网络,包括:多个网络节点,多个网络节点至少包括目标数据链路上的第一网络节点和第二网络节点,目标数据链路是数据源端向客户端发送音视频数据的链路;第一网络节点与数据源端网络连接,用于接收数据源端发送的第一传输控制消息,第一传输控制消息中包含第一绝对时间及其对应的第一相对时间,向第二网络节点同步第一绝对时间与第一相对时间的对应关系,第一绝对时间是数据源端的本地时间;第二网络节点与客户端网络连接,用于将本地时间作为第二绝对时间,根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间;根据第二绝对时间和第二相对时间生成第二传输控制消息,并发送给客户端,以使客户端根据第二绝对时间和第二相对时间进行音视频同步。
本申请实施例还提供一种流媒体传输控制方法,应用于目标数据链路上与数据源端网络连接的第一网络节点,该方法包括:接收数据源端发送的第一传输控制消息,第一传输控制消息中包含第一绝对时间及其对应的第一相对时间,第一绝对时间是数据源端的本地时间;向目标数据链路上的第二网络节点同步第一绝对时间与第一相对时间的对应关系,以使第二网络节点向与其网络连接的客户端提供包含第二绝对时间及其对应的第二相对时间的第二传输控制消息,以供客户端进行音视频同步;其中,第二绝对时间是第二网络节点的本地时间,第二相对时间是第二网络节点根据本地时间和对应关系确定的。
本申请实施例还提供一种流媒体传输控制方法,应用于目标数据链路上与客户端网络连接的第二网络节点,该方法包括:接收第一绝对时间与第一相对时间的对应关系,第一绝对时间是数据源端的本地时间,第一绝对时间与第一相对时间是目标数据链路上第一网络节点从数据源端发送的第一传输控制消息中获取的;将本地时间作为第二绝对时间,根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间;根据第二绝对时间和第二相对时间生成第二传输控制消息,并发送给客户端,以使客户端根据第二绝对时间和第二相对时间进行音视频同步。
本申请实施例还提供一种流媒体传输控制装置,可应用于目标数据链路上与数据源端网络连接的第一网络节点中,该装置包括:接收模块,用于接收数据源端发送的第一传输控制消息,第一传输控制消息中包含第一绝对时间及其对应的第一相对时间,第一绝对时间是数据源端的本地时间;同步模块,用于向目标数据链路上的第二网络节点同步第一绝对时间与第一相对时间的对应关系,以使第二网络节点向与其网络连接的客户端提供包含第二绝对时间及其对应的第二相对时间的第二传输控制消息,以供客户端进行音视频同步;其中,第二绝对时间是第二网络节点的本地时间,第二相对时间是第二网络节点根据本地时间和对应关系确定的。
本申请实施例还提供一种流媒体传输控制装置,可应用于目标数据链路上与客户端网络连接的第二网络节点,该装置包括:接收模块,用于接收第一绝对时间与第一相对时间的对应关系,第一绝对时间是数据源端的本地时间,第一绝对时间与第一相对时间是目标数据链路上第一网络节点从数据源端发送的第一传输控制消息中获取的;确定模块,用于将本地时间作为第二绝对时间,根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间;发送模块,用于根据第二绝对时间和第二相对时间生成第二传输控制消息,并发送给客户端,以使客户端根据第二绝对时间和第二相对时间进行音视频同步。
本申请实施例还提供一种网络节点设备,可作为目标数据链路上与数据源端网络连接的第一网络节点实现,该网络节点设备包括:存储器和处理器;存储器,用于存储计算机程序;处理器与存储器耦合,用于执行计算机程序,以用于实现流媒体传输控制方法中的步骤。
本申请实施例还提供一种网络节点设备,可作为目标数据链路上与客户端网络连接的第二网络节点实现,该网络节点设备包括:存储器和处理器;存储器,用于存储计算机程序;处理器与存储器耦合,用于执行计算机程序,以用于实现流媒体传输控制方法中的步骤。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,当计算机程序被处理器执行时,致使处理器能够实现流媒体传输控制方法中的步骤。
在本申请实施例中,在流媒体传输网络中的数据链路上,相邻参与者之间可以进行传输控制消息的传输,另外,还可以对数据源端的绝对时间与相对时间的对应关系进行同步,使得与客户端连接的网络节点在向客户端发送传输控制消息时,能够以本地时间作为传输控制消息中的绝对时间,根据数据源端的绝对时间与相对时间的对应关系,确定与本地绝对时间对应的相对时间,使得客户端收到的绝对时间与相对时间与数据源端的绝对时间与相对时间相对应,以及将封装有本地绝对时间和相对时间的传输控制消息发送给客户端,进而使得客户端可以基于接收到的传输控制消息中的绝对时间与相对时间精准地进行音视频同步,解决音视频同步失败的问题,改善播放体验。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种流媒体传输网络的结构示意图;
图2为本申请实施例提供的一种数据源的绝对时间与相对时间的关系在数据链路上的传递示意图;
图3为本申请实施例提供的一种应用场景图;
图4为本申请实施例提供的一种流媒体传输控制方法的流程图;
图5为本申请实施例提供的另一种流媒体传输控制方法的流程图;
图6为本申请实施例提供的一种流媒体传输控制装置的结构示意图;
图7为本申请实施例提供的一种流媒体传输控制装置的结构示意图;
图8为本申请实施例提供的一种网络节点设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在基于RTP/RTCP的标准媒体流中,RTP位于传输层(通常是UDP)之上,应用程序之下,实时语音、视频数据经过模数转换和压缩编码处理后,先送给RTP封装成为RTP数据单元,RTP数据单元被封装为UDP数据报,然后再向下递交给IP封装为IP数据包。RTP分组只包含RTP数据,而控制是由另一个配套协议RTCP提供。
RTP通常和RTCP一起工作,在RTP会话期间,RTCP对RTP进行通信和会话管理。RTCP在对RTP进行通信和会话管理过程中,使用发送者报告(Sender Report,SR)和接收者报告(Receiver Report,RR),也就是说,各参与者周期性的发送SR包和RR包。SR包和RR包含有已发送RTP数据的丢包统计和网络拥塞等信息,数据发送端(可以是数据源端或传输网络中的某个网络节点)可以利用这些信息动态的改变传输速率,甚至改变净荷的类型。
由于不同的RTP媒体流是分开传输的,且使用各自独立的RTP时间戳进行同步,所以对于同一媒体流可以根据各RTP包中的RTP时间戳进行同步,但对于不同媒体流由于首个RTP包中的RTP时间戳不一定对应到同一时间点上,所以不同媒体流无法直接基于RTP时间进行同步,需要依赖SR包中的NTP时间戳。SR包的一个作用是提供每个媒体流的RTP包的时间戳和NTP时间的对应关系的。因此,在SR包中会携带RTP时间戳(Timestamp)以及该RTPTimestamp对应的NTP Timestamp,客户端根据接收到的SR包中的RTP Timestamp和NTPTimestamp可以完成音视频流的同步处理。在SR包中,NTP时间戳和RTP时间戳这两个时间戳对应的是同一个时刻,这个时刻表示该SR包生成的时刻;NTP时间戳和RTP时间戳是同一时刻的不同表示,区别在于精度和单位不一样。NTP时间戳是用一个64bit的无符号的定点数表示。它表示自从1900年1月1日00:00到现在过了多少秒;64bit分为两部分,高32bit表示整数部分,单位是秒;低32bit表示小数部分,单位是232皮秒(picosecond),而RTP时间戳则和媒体流的采样频率有关,是一个单调递增数值,且RTP时间戳计算的单位不是秒,而是由采样频率所代替的单位,比如说一个音频的采样频率为8000Hz,那么时间戳单位可设为1/8000;相应地,该RTP时间戳是以该时间戳单位为基准来反映携带该时间戳的SR包或RTP包的产生(采集)时间点的。
关于SR包中NTP时间戳和RTP时间戳的生成方式可以采用但不限于如下方式:首先,在需要生成SR包时,将本地时间作为该SR包中的NTP时间戳;然后,根据最后一个发送的RTP包的时间戳和它对应的采集时刻的系统时间,以及当前媒体流的时间戳的每单位时间(例如1/采样频率)的增长速率,以及从最后一个发送的RTP包对应的采集时刻的系统时间到当前时刻(即本地时间)的时间流逝,可以确定该SR包中的RTP时间戳。因为RTP时间戳的计算过程与最后一个发送的RTP包的时间戳相关,所以SR包具有提供每个媒体流的RTP包的时间戳和NTP时间的对应关系的作用。在本实施例中,传输网络中的媒体流至少包括音频流和视频流,也就是说,音频流和视频流是分开传输的;而且在整个传输网络中,音频流可以同时存在多条,视频流也可以同时存在多条。
在本申请实施例中,将RTP/RTCP协议应用于大规模传输网络中,大规模传输网络可以是CDN(Content Delivery Network,即内容分发网络),或者GRTN(Global RealtimeTransport Network,即全球实时传输网络),但并不限于此。GRTN是基于中心云和边缘云的异构节点,构建的超低延时、全分布式下沉的通信级的流媒体传输网络。GRTN支持互联网直播和RTC等多种应用场景的音视频流传输和交换,基于GRTN的短延时直播RTS可以支持标准H5WebRTC推播,在大规模并发情况下延时可以控制在1s以内;RTC端到端延时可以控制在250ms左右。
在大规模传输网络中包括众多网络节点,这些网络节点会负责在数据源端和客户端之间进行流媒体以及控制消息的传输。由于RTP/RTCP协议要求的是点对点的通信关系,所以在相邻参与者之间,相邻参与者可以是数据源端与其相邻的网络节点之间,或者是相邻的网络节点,或者是客户端与其相邻的网络节点,上一跳参与者(可以是数据源端或某个网络节点)可以向其下一跳参与者(可以是某个网络节点或客户端)传输SR包,下一跳参与者在收到SR包之后可以向其上一跳参与者返回RR包,借助于SR包和RR进行相关的传输控制。其中,不同参与者(包括数据源端和各网络节点)的本地时间可能不同步,也可以称为时钟不同步,例如在同一时间,数据源端A的本地时间是11:00:00,而网络节点B的本地时间是11:00:10,两者在同一时间的时钟时间是不同步的。但是,在传输SR包的过程中,每一跳参与者都是使用本地时间作为SR包中的NTP Timestamp,并据此确定对应的RTP Timestamp的;这样依次传输下去,最终会导致客户端收到的SR包中的RTP Timestamp和NTPTimestamp与数据源端的RTP Timestamp和NTP Timestamp不对应,导致客户端根据SR包中的RTP Timestamp和NTP Timestamp进行音视频流的同步处理,可能出现音视频同步失败的情况,进而引发播放体验问题。当然,除了上述原因之外,网络是由抖动的,每个网络节点收到RTP包的时间和发送的时间不一样,也会导致客户端收到的SR包中的RTP Timestamp和NTP Timestamp与数据源端的RTP Timestamp和NTP Timestamp不对应,进而导致音视频同步失败。
为此,本申请实施例提供一种流媒体传输网络及传输控制方法、装置、设备及存储介质。在此说明,在本申请下述实施例中,并不限定RTP/RTCP协议,可以是各种适用于流媒体实时传输的传输协议/传输控制协议,包括未来可能出现的新的实时传输协议/传输控制协议;其中,传输协议负责进行流媒体数据的传输,传输控制协议负责进行相关控制消息的传输。
在本申请实施例中,在流媒体传输网络中的数据链路上,相邻参与者之间可以进行传输控制消息的传输,另外,还可以对数据源端的绝对时间与相对时间的对应关系进行同步,使得与客户端连接的网络节点在向客户端发送传输控制消息时,能够以本地时间作为传输控制消息中的绝对时间,根据数据源端的绝对时间与相对时间的对应关系,确定与本地绝对时间对应的相对时间,使得客户端收到的绝对时间与相对时间与数据源端的绝对时间与相对时间相对应,以及将封装有本地绝对时间和相对时间的传输控制消息发送给客户端,进而使得客户端可以基于接收到的传输控制消息中的绝对时间与相对时间精准地进行音视频同步,解决音视频同步失败的问题,改善播放体验。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请实施例提供的一种流媒体传输网络的结构示意图。如图1所示,该流媒体传输网络可以包括多个网络节点,多个网络节点之间直接或间接网络连接,形成流媒体传输网络。进一步,流媒体传输网络中的一些网络节点与数据源端网络连接,一些网络节点与客户端网络连接;这些网络节点可以在数据源端与客户端之间形成数据传输链路,负责在数据源端与客户端之间进行流媒体数据的传输。
其中,数据源端是流媒体数据的提供端,客户端是流媒体数据的接收端或使用端。根据应用场景的不同,数据源端和客户端在实现形态上会有所不同,例如,在直播场景中,数据源端可以是主播端,客户端可以是用户端;在视频会议场景中,数据源端可以是当前发言的会议方,客户端可以是当前未发言的会议方;在即时通信场景中,参与即时通信的各方可以相互作为数据源端和客户端。
在本申请实施例中,数据源端的流媒体数据至少包括音频流和视频流,且音频流和视频流独立传输,这样,在客户端侧,需要对接收到音频流和视频流进行同步处理。在本申请实例中,在数据源端与客户端之间存在一条数据链路,该数据链路上包括至少两个网络节点,负责在数据源端和客户端之间进行音视频数据的发送。这里的音视频数据可以是音频流中的音频数据包,也可以是视频流中的视频数据包。在本申请实施例中,将音频流或视频流等称为媒体流,在整个流媒体传输网络中可能同时存在一条或多条媒体流。在本实施例中,对每条媒体流进行传输的过程相同,相应的,对每条媒体流的传输控制过程也是相同的,为此,在本实施例中,以任一媒体流为例进行说明,并将用于传输该媒体流的数据链路称为目标数据链路,即目标数据链路是数据源端向客户端发送该媒体流中音视频数据的链路。基于此,在本实施例的多个网络节点中至少包括目标数据链路上的第一网络节点和第二网络节点。
在本实施例中,第一网络节点是指与数据源端进行网络连接的网络节点,是该目标数据链路上的第一跳网络节点;第二网络节点是指与客户端进行网络连接的网络节点,是该目标数据链路上的最后一跳网络节点。当然,在目标数据链路上还可以包括位于第一网络节点和第二网络节点之间的一个或多个第三网络节点,图1中未示出第三网络节点。
可选的,数据源端、客户端或者网络节点可以是终端设备或者服务器。其中,终端设备例如包括但不限于手机、平板电脑、笔记本电脑、可穿戴设备、车载设备。服务器例如包括但不限于单个服务器或多个服务器组成的分布式服务器集群。应当理解的是,在图1中,以目标数据链路上的网络节点为例进行图示,图1示出的网络节点的数量仅仅是示意性的。实际应用中,根据实际需求,流媒体传输网络中可以部署任意数量的网络节点。另外,流媒体传输网络中多个网络节点之间并不是串行连接关系,多个网络节点之间网络连接可以实现为各种网络拓扑结构,例如可以是mesh网状拓扑,星型拓扑,环型拓扑,树型拓扑、总线型拓扑或者是几种拓扑形成的混合型拓扑结构。
在本申请实施例中,流媒体传输网络中网络节点之间可以通过有线网络、或者无线网络进行网络连接。例如,有线网络可以包括同轴电缆、双绞线和光纤等,无线网络可以是2G网络、3G网络、4G网络或者5G网络、无线保真(Wireless Fidelity,简称WIFI)网络等。本申请对交互的具体类型或者具体形式并不做限定,只要其能够实现各个网络节点之间网络连接的功能即可。
在本实施例中,数据源端生成多种媒体流,不同媒体流分开传输,且每个媒体流使用各自的媒体时间戳进行同步,生成诸如音频数据包或者视频数据包等不同媒体流,并对任一媒体流而言,可将该媒体流中的音频数据包或视频数据包经过目标数据链路上的多个网络节点传输至客户端。例如,以音频流为例,数据源端将音频数据包发送给第一网络节点,第一网络节点将音频数据包发送给其下一跳网络节点,依次向下转发,直至到达第二网络节点,第二网络节点将音频数据包发送给客户端,供客户端进行播放。又例如,以视频流为例,数据源端将视频数据包发送给第一网络节点,第一网络节点将视频数据包发送给其下一跳网络节点,依次向下转发,直至到达第二网络节点,第二网络节点将视频数据包发送给客户端,供客户端进行播放。
为了便于客户端在播放过程中,对音视频数据包进行同步处理,数据源端除了向第一网络节点发送音频数据包或视频数据包等音视频数据之外,还会针对各条媒体流分别向第一网络节点发送传输控制消息,第一网络节点还会向数据源端返回传输控制响应消息;相应地,在目标数据链路上的相邻网络节点之间,上一跳节点会向其下一跳节点发送传输控制消息,下一跳节点在收到传输控制消息之后,也会向其上一跳节点返回传输控制响应消息,当然,最后一条网络节点也会向客户端发送传输控制消息,相应地,客户端在接收到传输控制消息之后也会向与其连接的最后一跳网络节点返回传输控制响应消息。
在本实施例中,传输控制消息和传输控制响应消息的主要功能是提供发送者或接受者的相关信息,并为音视频数据提供服务质量(Quality of Service)的监测与反馈、媒体间的同步,以及多播组中成员的标识。可选地,传输控制消息例如包括但不限于:相应媒体流的SSRC,媒体流中最新产生的数据分组的相对时间戳和绝对时间,媒体流包含的分组数,丢失分组数,单向和双向网络延迟等等音视频数据的各种统计信息。相应地,传输控制响应消息中除了不包括发送者的相关信息,以及本报告发送时的绝对时间和相对时间之外,其它信息与传输控制消息基本相同,在此不再赘述。
在本实施例中,传输音视频数据使用的传输协议例如可以包括但不限于:RTP、SRTP(Secure Real-time Transport Protocol,安全实时传输协议)。在本实施例中,传输上述传输控制消息使用的传输控制协议例如可以包括但不限于:RTCP,或者,各种私有协议。以RTCP为例,上述传输控制消息可以是SR包,传输控制响应消息可以是RR包,关于SR包和RR包的结构可以参见RTCP协议的规定,在此不再赘述。
在本实施例中,客户端可以根据接收到的传输控制消息中携带的绝对时间和相对时间进行音视频同步。在本实施例的流媒体传输网络中,网络节点的数量较多,不同网络节点的本地时间可能不同步,为了使得客户端能够准确进行音视频同步,第一网络节点在接收到数据源端发送的传输控制消息时,一方面可以向数据源端返回传输控制响应消息,另一方面还可以根据数据源端发送的传输控制消息中的绝对时间与相对时间,建立该绝对时间与相对时间的对应关系,并向目标传输链路上最后一跳网络节点,即第二网络节点同步该绝对时间与该相对时间的对应关系。为了便于区分和描述,在本申请实施例中,将数据源端发送给第一网络节点的传输控制消息称为第一传输控制消息,并将第一传输控制消息中的绝对时间和相对时间分别称为第一绝对时间和第一相对时间。其中,第一绝对时间是数据源端发送第一传输控制消息的本地时间,是以毫秒为单位的时间;相应地,第一相对时间是根据第一绝对时间计算出的时间,第一相对时间是与第一传输控制消息对应的媒体流的采样频率有关,是一个单调递增数值,且第一相对时间计算的单位不是秒,而是由采样频率所代替的单位。虽然,第一相对时间与第一绝对时间使用的单位不同,两者表达方式不同,但是两者表示同一时刻,即都表示第一传输控制消息的生成时刻。在采用RTP/RTPC协议的情况下,第一绝对时间是指NTP时间戳,第一相对时间是指RTP时间戳。
在一可选实施例中,第一绝对时间与第一相对时间的对应关系在流媒体传输网络中可以沿着目标数据链路进行逐级传递,直至传递到最后一跳网络节点,即第二网络节点。例如,在一些可选实施例中,在目标数据链路上包括位于第一网络节点和第二网络节点之间的第三网络节点的情况下,第一网络节点具体用于:向第三网络节点同步第一绝对时间与第一相对时间的对应关系,第三网络节点继续向其下一跳网络节点同步第一绝对时间与第一相对时间的对应关系,依次同步下去,直至将第一绝对时间与第一相对时间的对应关系同步至第二网络节点为止。
对第二网络节点而言,可以按照设定的周期向客户端发送传输控制消息。为便于区分和描述,将第二网络节点向客户端发送的传输控制消息称为第二传输控制消息,将第二传输控制消息中的绝对时间和相对时间分别称为第二绝对时间和第二相对时间。其中,第二网络节点在向客户端发送第二传输控制消息时,将本地时间作为第二传输控制消息中的第二绝对时间,并根据第二绝对时间与接收到第一绝对时间和第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间,而不是直接按照传统算法确定第二相对时间,这样可以让第二绝对时间与第二相对时间之间延续第一绝对时间与第一相对时间之间的对应关系,以及将封装有第二绝对时间和第二相对时间的第二传输控制消息发送给客户端。
需要说明的是,第二绝对时间也是以毫秒为单位的时间;第二相对时间与第一相对时间类似,第二相对时间是与第一或第二传输控制消息对应的媒体流的采样频率有关,是一个单调递增数值,且第二相对时间计算的单位不是秒,而是由采样频率所代替的单位,虽然,第二相对时间与第二绝对时间使用的单位不同,两者表达方式不同,但是两者表示同一时刻,即都表示第二传输控制消息的生成时刻。在采用RTP/RTPC协议的情况下,第二绝对时间是指NTP时间戳,第二相对时间是指RTP时间戳。需要说明的是,第一绝对时间和第二绝对时间是不同的NTP时间戳,第一相对时间和第二相对时间是不同的RTP时间戳。
客户端在接收到第二传输控制消息之后,一方面可以向第二网络节点返回第二传输控制响应消息,另一方面基于接收到的第二传输控制消息中的第二绝对时间与第二相对时间精准地进行音视频同步。因此,第二绝对时间与第二相对时间的对应关系,与数据源端的第一绝对时间与第一相对时间之间的对应关系是一致的,因此根据第二绝对时间与第二相对时间进行音视频同步,可以保证音视频同步的准确性。
在本申请实施例中,第一网络节点与第二网络节点之间可能存在第三网络节点,也可能不存在第三网络节点。在第一网络节点与第二网络节点之间存在第三网络节点的情况下,第三网络节点可以是一个或多个。对任一第三网络节点而言,一方面会接收其上一跳节点发送的传输控制消息,并会向其上一跳节点发送传输控制响应消息;另一方面也会按照设定的周期向其下一跳节点发送传输控制消息。其中,第三网络节点在向其下一跳节点发送传输控制消息时,可以采用传统的方案确定传输控制消息中的绝对时间和相对时间,具体可参见前文中确定NTP时间戳和RTP时间戳的描述,但不限于此。
在一可选实施例中,第三网络节点在向其下一跳节点发送传输控制消息时,因为第三网络节点已经接收到第一绝对时间与第一相对时间的对应关系,因此可以采用与第二网络节点相同的方式来确定传输控制消息中的绝对时间和相对时间。具体地,第三网络节点还用于:将本地时间作为第三绝对时间,根据第一绝对时间与第一相对时间的对应关系,确定第三绝对时间对应的第三相对时间;根据第三绝对时间和第三相对时间生成第三传输控制消息,并发送给其下一跳网络节点。
在本申请实施例中,并不限定第一绝对时间与第一相对时间的对应关系在各网络节点之间的同步方式。在一些可选实施例中,各个网络节点之间支持私有协议,可以通过私有协议中的消息进行第一绝对时间与第一相对时间的对应关系的同步。本申请实施例对私有协议不做限定,例如可以是各网络节点支持的某个应用使用的协议,相应地,私有协议中的消息可以是该应用内消息。具体地,第一网络节点具体用于:通过私有协议中的消息向第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系;相应地,第三网络节点也可以基于与其下一跳节点之间的私有协议中的消息,向其下一跳节点同步第一绝对时间与第一相对时间的对应关系。
在另一些可选实施例中,可以通过对传输控制消息对应的传输控制协议进行拓展,各个网络节点之间通过传输控制协议中的消息进行第一绝对时间与第一相对时间的对应关系的同步。在本实施例中,对传输控制协议的拓展方式包括:复用传输控制协议中的已有传输控制消息,例如在已有传输控制消息中新增字段,使用新增的字段携带第一绝对时间与第一相对时间的对应关系,通过拓展后的传输控制消息进行第一绝对时间与第一相对时间的对应关系的同步。或者,针对传输控制协议增加新的传输控制消息,该新增的传输控制消息专门用于进行第一绝对时间与第一相对时间的对应关系的同步。也就是说,第一网络节点具体用于:通过传输控制协议中的消息向第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系;相应地,第三网络节点也可以通过传输控制协议中的消息向其下一跳节点同步第一绝对时间与第一相对时间的对应关系。
值得注意的是,本地时间可以是指数据源端或者网络节点在发送传输控制消息时本地的绝对时间,绝对时间是基于指定基准时间定义的时间,当然,指定基准时间可以是任意指定的时间。
参见图1中的①,数据源端首先以本地时间作为第一绝对时间,根据第一绝对时间及其对应的第一相对时间生成第一传输控制消息。值得注意的是,第一绝对时间和第一相对时间对应的是同一时间点,仅仅是第一绝对时间和第一相对时间的表现形式有所不同而已。在传输控制消息采用RTCP协议的情况下,第一传输控制消息实现为SR包,该SR包中包含NTP时间戳和RTP时间戳,其中,NTP时间戳即为第一绝对时间,RTP时间戳即为第一相对时间。
参见图1中的②,数据源端将第一传输控制消息发送给第一网络节点。参见图1中的③,第一网络节点从第一传输控制消息中获取第一绝对时间及其对应的第一相对时间,并根据第一绝对时间及其对应的第一相对时间确定第一绝对时间与第一相对时间之间的对应关系。可选地,第一绝对时间与第一相对时间之间可以呈现线性关系,但并不限于此,取决于根据第一绝对时间计算第一相对时间的计算方式。假设第一绝对时间与第一相对时间之间呈线性关系,并将该线性关系记为y=kx+b,x是指以第一绝对时间作为的自变量,y是指以第一相对时间作为的因变量,k和b为常量,k一般取媒体流的采样频率,该媒体流可以是音频流或视频流,在本申请实施例中,音频流和视频流是独立传输的。
参见图2,在绝对时间采用NTP时间戳表征,相对时间采用RTP时间戳表征的情况下,数据源端,在t0时刻,绝对时间记为NTP A0,相对时间记为RTP A0;在tx时刻,绝对时间记为NTP Ax,相对时间记为RTP Ax,在不同时刻,数据源端的NTP时间与RTP时间之间呈现线性关系。在本实施例中,该对应关系会被同步至整个目标数据链路上的各个网络节点,每个网络节点根据该对应关系确定其发送给下一跳的传输控制消息中的绝对时间和相对时间,使得该对应关系不断向下传递,并会最终体现到客户端侧。如图2所示,客户端接收到的各个时刻的NTP时间与RTP时间的关系,在T0时刻,绝对时间记为NTP B0,相对时间记为RTPB0;在Tx时刻,绝对时间记为NTP Bx,相对时间记为RTP Bx,这种对应关系与数据源端的NTP时间与RTP时间之间的对应关系保持一致。
参见图1中的④,第一网络节点确定第一绝对时间与第一相对时间之间的对应关系后,将第一绝对时间与第一相对时间之间的对应关系传输至其后一个网络节点,依次类推,参见图1中的⑤,第一绝对时间与第一相对时间之间的对应关系被传输至最后一个网络节点也即第二网络节点。每一个网络节点在生成对应的传输控制信息时,根据本地时间和第一绝对时间与第一相对时间之间的对应关系确定待封装至传输控制信息中的绝对时间和相对时间。
在本实施例中,数据源端不断在目标数据链路上向客户端发送音视频数据,例如音视频数据包,也会周期性地向第一网络节点发送第一传输控制消息,在每个第一传输控制消息中都包含第一绝对时间和第一相对时间,且不同第一传输控制消息中的第一绝对时间和第一相对时间是不同的,会随着时间的不同增加而增大。相应地,第一网络节点会周期性接收到数据源端发送的第一传输控制消息,并且每当接收到数据源端发送的第一传输控制消息时,都会将第一传输控制消息中第一绝对时间和第一相对时间的对应关系向第二网络节点同步。同理,第二网络节点也会周期性接收到其上一个网络节点同步过来的第一绝对时间与第一相对时间之间的对应关系,并会将接收到的各个第一绝对时间与第一相对时间之间的对应关系保存在本地。参见图1中的⑥,第二网络节点响应向客户端传输第二传输控制信息的触发事件,将本地时间作为第二绝对时间,以及在接收到多个第一绝对时间与第一相对时间之间的对应关系的情况下,根据最新接收到的第一绝对时间和第一相对时间之间的对应关系,确定第二绝对时间对应的第二相对时间;根据第二绝对时间和第二相对时间生成第二传输控制信息,并发送给客户端。
值得注意的是,第二网络节点可以周期性地向客户端传输第二传输控制信息,于是,在发送周期到达时,第二网络节点确认发生向客户端传输第二传输控制信息的触发事件。当然,触发事件也可以是灵活设置的触发事件,对此不做限制。
在本申请实施例中,并不限定第一绝对时间与第一相对时间的对应关系的信息表达方式,可以是任何能够表达两个时间之间的对应关系的信息方式。在一可选实施例中,可以直接使用第一绝对时间与第一相对时间表达两者之间的对应关系,即在上述实施例中,向第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系具体为:向第二网络节点或第三网络节点同步第一绝对时间与第一相对时间,每个网络节点在接收到第一绝对时间与第一相对时间这两个时间值后可以自定确定两个时间的对应关系。基于此,作为一种示例,第二网络节点根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间的具体过程是:根据第二绝对时间与第一绝对时间的绝对时间差,结合数据源端的采样率,确定相对时间差;以第一相对时间为基准相对时间,结合相对时间差,得到第二绝对时间对应的第二相对时间。其中,如果数据源端与第二网络节点的本地时间存在差异,则第二绝对时间与第一绝对时间的绝对时间差中可以体现数据源端与第二网络节点的本地时间的差异,基于该绝对时间差,结合数据源端的采样率,确定相对时间差,该相对时间差中会体现两者本地时间的差异,进一步,以数据源端的相对时间为基准相对时间,结合该相对时间差,得到第二相对时间,可以将两者本地时间的差异考虑进去,确保第二网络节点的本地时间与第二相对时间的对应关系,与第一绝对时间与第一相对时间的对应关系相一致。需要说明的是,因为第一绝对时间和第二绝对时间不是同一时刻采集的系统时间,所以两者之间的差异并不知道,但是采用根本实施例的计算方式能够将该差异考虑进去,使得各节点生成的传输控制消息中的绝对时间与相对时间的对应关系与数据源端的第一绝对时间与第一相对时间的对应关系一致,做到该对应关系的传递。
假设数据源端的采样率的记为ctx->tb,最新接收到的第一绝对时间记为last_ntps_ts,最新接收到的第一相对时间记为last_rtp_ts,本地时间也即第二绝对时间记为ntp,第二相对时间记为uint32_t rtp_ts;则按照以下公式计算第二相对时间:
uint32_t rtp_ts=((ntp-last_ntp_ts)*ctx->tb)/1000000+last_rtp_ts (1)
参见图1中的⑦,第二网络节点将第二传输控制消息传输至客户端。在此说明,客户端会接收到数据源端发送的每条媒体流对应的第二传输控制消息,进而,可以根据接收到的音频流中的音频数据包以及音频流对应的一个或多个第二传输控制消息,以及接收到的视频流中视频数据包以及视频流对应的一个或多个第二传输控制消息,根据音频数据包中携带的相对时间、视频数据包中携带的相对时间,以及各第二传输控制消息中携带的第二绝对时间和第二相对时间,便可精准地音视频同步。
具体而言,客户端在进行音视频同步时,根据音频流对应的第二传输控制消息中的第二绝对时间和第二相对时间,将音频数据包中的相对时间(例如RTP时间戳)准确定位到绝对时间轴上,也可以根据视频流对应的第二传输控制消息中的第二绝对时间和第二相对时间,将视频数据包中的相对时间(例如RTP时间戳)准确定位到绝对时间轴上,这样,音频数据包和视频数据包的相对时间关系就可以确定下来了,基于音频数据包和视频数据包的相对时间关系可以实现音视频同步。
以RTCP协议为例,举例说明,第二传输控制消息为SR包,该SR包中包含NTP时间戳和RTP时间戳,其中,NTP时间戳为第二绝对时间,RTP时间戳为第二相对时间。对于客户端会不断接收到音频数据包和视频数据包,并会周期性接收到音频流对应的SR包和视频流对应的SR包;根据音频流对应的SR包中RTP时间戳与音频数据包中RTP时间戳之间的计算关系,以及SR包中NTP时间戳与RTP时间戳之间的计算关系,可以确定音频数据包中RTP时间戳对应的NTP时间,将音频数据包中的RTP时间戳定位到绝对时间轴NTP上;另外,根据视频流对应的SR包中RTP时间戳与视频数据包中RTP时间戳之间的计算关系,以及SR包中NTP时间戳与RTP时间戳之间的计算关系,可以确定视频数据包中RTP时间戳对应的NTP时间,将音频数据包中的RTP时间戳定位到绝对时间轴NTP上,进而,根据音频数据包和视频数据包在绝对时间轴NTP上的相对时间关系,针对音频数据包和视频数据包进行音视频同步。
在一些应用场景中,各个接收传输控制信息的网络节点或客户端还会向其上一个网络节点或数据源端返回传输控制响应信息。传输控制响应信息可以反馈当前接收到的数据信息的情况。例如,传输控制信息为RTCP SR包,传输控制响应信息为RTCP RR包。RTCP SR包是发送方报告,用来使发送端以多播方式向所有接收端报告发送情况。SR分组的主要内容有:相应的RTP流的SSRC,RTP流中最新产生的RTP分组的时间戳和NTP,RTP流包含的分组数,RTP流包含的字节数。RTCP RR包是接收方报告,用于反馈当前接收到的RTP的情况。
本申请实施例提供的技术方案,在流媒体传输网络中的数据链路上,对数据源端的绝对时间与相对时间的对应关系进行同步,使得与客户端连接的网络节点在向客户端发送传输控制消息时,能够以本地时间作为传输控制消息中的绝对时间,根据数据源端的绝对时间与相对时间的对应关系,确定与本地绝对时间对应的相对时间,使得客户端收到的绝对时间与相对时间与数据源端的绝对时间与相对时间相对应,以及将封装有本地绝对时间和相对时间的传输控制消息发送给客户端,进而使得客户端可以基于接收到的传输控制消息中的绝对时间与相对时间精准地进行音视频同步,解决音视频同步失败的问题,改善播放体验。
为了更好地理解本申请实施例提供的技术方案,下面介绍几种场景实施例。
场景实施例1;
在直播场景中,主播端采集主播进行直播时的基于RTP协议封装的直播数据流(包括音频流和/或视频流),参见图3中的①、②和③,基于RTP协议封装的直播数据流从主播端经过两个SFU(Selective Forwarding Unit,选择性转发单元)服务器分别传输至多个用户端;为了实现用户端播放直播数据流时的音视频同步,参见图3中的④,主播端还向SFU服务器发送与直播数据流关联的第一RTCP SR包,第一RTCP SR包中第一NTP时间戳对应的时间是主播端发送第一RTCP SR包时的本地时间(绝对时间),第一RTCP SR包中第一RTP时间戳对应的时间是相对时间。与主播端网络连接的SFU服务器在接收到第一RTCP SR包后,一方面向主播端返回第一RTCP RR包,一方面从第一RTCP SR包中获取第一NTP时间戳和第一RTP时间戳,并向下一个SFU服务器同步第一NTP时间戳和第一RTP时间戳。在RTCP SR包发送周期到达后,与主播端网络连接的SFU服务器以本地时间作为第二NTP时间戳对应的时间,以及根据第一NTP时间戳和第一RTP时间戳,确定第二NTP时间戳对应的第二RTP时间戳;与主播端网络连接的SFU服务器将第二NTP时间戳、第二RTP时间戳封装至第二RTCP SR包,参见图3中的⑤,并向下一个SFU服务器发送第二RTCP SR包。与用户端网络连接的SFU服务器一方面可接收上一跳SFU服务器同步过来的第一NTP时间戳和第一RTP时间戳并保存在本地,另一方面接收第二RTCP SR包,并返回第二RTCP RR包;以及在RTCP SR包发送周期到达后,以本地时间作为第三NTP时间戳对应的时间,以及根据第一NTP时间戳和第一RTP时间戳,确定第三NTP时间戳对应的第三RTP时间戳,将第三NTP时间戳和第三RTP时间戳封装至第三RTCP SR包中,参见图3中的⑥和⑦,第三RTCP SR包被发送至与该SFU服务器互联的不同用户端。各个用户端在接收到第三RTCP SR包后,一方面返回第三RTCP RR包,一方面基于音频数据包中的RTP时间戳、音频流对应的第三RTCP SR包中的第三NTP时间戳和第三RTP时间戳,以及视频数据包中的RTP时间戳、视频流对应的第三RTCP SR包中的第三NTP时间戳和第三RTP时间戳,便可实现播放直播数据流时的音视频同步。
场景实施例2;
在视频通话场景或视频会议场景中,图3中的主播替换为用户,主播端替换为用户端,直播视频流替换为聊天视频流,直播画面替换为视频通话画面或者视频会议画面。用户端采集用户进行聊天时的基于RTP协议封装的聊天数据流(包括音频流和/或视频流),参见图3中的①、②和③,基于RTP协议封装的聊天数据流从用户端经过两个SFU服务器分别传输至多个用户端;为了实现用户端播放聊天数据流时的音视频同步,参见图3中的④,用户端还向SFU服务器发送与聊天数据流关联的第一RTCP SR包,第一RTCP SR包中第一NTP时间戳对应的时间是用户端发送第一RTCP SR包时的本地时间(绝对时间),第一RTCP SR包中第一RTP时间戳对应的时间是相对时间。与用户端网络连接的SFU服务器在接收到第一RTCP SR包后,一方面返回第一RTCP RR包,一方面从第一RTCP SR包中获取第一NTP时间戳和第一RTP时间戳,并向下一个SFU服务器同步第一NTP时间戳和第一RTP时间戳。在RTCP SR包发送周期到达后,与用户端网络连接的SFU服务器以本地时间作为第二NTP时间戳对应的时间,以及根据第一NTP时间戳和第一RTP时间戳,确定第二NTP时间戳对应的第二RTP时间戳;与用户端网络连接的SFU服务器将第二NTP时间戳、第二RTP时间戳封装至第二RTCP SR包,参见图3中的⑤,并向下一个SFU服务器发送第二RTCP SR包。与用户端网络连接的SFU服务器一方面可接收上一跳SFU服务器同步过来的第一NTP时间戳和第一RTP时间戳并保存在本地,另一方面接收第二RTCP SR包,并返回第二RTCP RR包;以及在RTCP SR包发送周期到达后,以本地时间作为第三NTP时间戳对应的时间,以及根据第一NTP时间戳和第一RTP时间戳,确定第三NTP时间戳对应的第三RTP时间戳,将第三NTP时间戳和第三RTP时间戳封装至第三RTCP SR包中,参见图3中的⑥和⑦,第三RTCP SR包发送至与该SFU服务器互联的不同用户端。各个用户端在接收到第三RTCP SR包后,一方面返回第三RTCP RR包,一方面基于音频数据包中的RTP时间戳、音频流对应的第三RTCP SR包中的第三NTP时间戳和第三RTP时间戳,以及视频数据包中的RTP时间戳、视频流对应的第三RTCP SR包中的第三NTP时间戳和第三RTP时间戳,便可实现播放直播数据流时的音视频同步。
图4为本申请实施例提供的一种流媒体传输控制方法的流程图,该方法应用于目标数据链路上与数据源端网络连接的第一网络节点,目标数据链路是数据源端与客户端进行音频数据或视频数据传输的链路。参见图4,该方法可以包括以下步骤:
401、接收数据源端发送的第一传输控制消息,第一传输控制消息中包含第一绝对时间及其对应的第一相对时间,第一绝对时间是数据源端的本地时间。
402、向目标数据链路上的第二网络节点同步第一绝对时间与第一相对时间的对应关系,以使第二网络节点向与其网络连接的客户端提供包含第二绝对时间及其对应的第二相对时间的第二传输控制消息,以供客户端进行音视频同步。
其中,第一绝对时间是数据源端发送第一传输控制消息的本地时间,是以毫秒为单位的时间;相应地,第一相对时间是根据第一绝对时间计算出的时间,第一相对时间是与第一传输控制消息对应的媒体流的采样频率有关,是一个单调递增数值,且第一相对时间计算的单位不是秒,而是由采样频率所代替的单位。虽然,第一相对时间与第一绝对时间使用的单位不同,两者表达方式不同,但是两者表示同一时刻,即都表示第一传输控制消息的生成时刻。在采用RTP/RTPC协议的情况下,第一绝对时间是指NTP时间戳,第一相对时间是指RTP时间戳。
同理,第二绝对时间是第二网络节点发送第二传输控制消息时的本地时间,第二相对时间是第二网络节点根据本地时间和第一绝对时间与第一相对时间的对应关系确定的。第二绝对时间是以毫秒为单位的时间;第二相对时间与第一相对时间类似,第二相对时间是与第一或第二传输控制消息对应的媒体流的采样频率有关,是一个单调递增数值,且第二相对时间计算的单位不是秒,而是由采样频率所代替的单位,虽然,第二相对时间与第二绝对时间使用的单位不同,两者表达方式不同,但是两者表示同一时刻,即都表示第二传输控制消息的生成时刻。在采用RTP/RTPC协议的情况下,第二绝对时间是指NTP时间戳,第二相对时间是指RTP时间戳。需要说明的是,第一绝对时间和第二绝对时间是不同的NTP时间戳,第一相对时间和第二相对时间是不同的RTP时间戳。
进一步可选的,向目标数据链路上的第二网络节点同步第一绝对时间与第一相对时间的对应关系,包括:向第三网络节点同步第一绝对时间与第一相对时间的对应关系,以使第三网络节点向第二网络节点同步第一绝对时间与第一相对时间的对应关系;其中,第三网络节点是目标数据链路上位于第一网络节点和第二网络节点之间的网络节点。
进一步可选的,向目标数据链路上的第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系,包括:通过私有协议中的消息向第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系;或者通过传输控制协议中的消息向第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系。
进一步可选的,向目标数据链路上的第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系,包括:向目标数据链路上的第二网络节点或第三网络节点发送第一绝对时间与第一相对时间,以使第二网络节点或第三网络节点确定第一绝对时间与第一相对时间的对应关系。
关于该方法实施例中各个步骤的详细实施过程可参见前述系统实施例中的相关描述,在此不再赘述。
本申请实施例提供的技术方案,在流媒体传输网络中的数据链路上,相邻参与者之间可以进行传输控制消息的传输,另外,还可以对数据源端的绝对时间与相对时间的对应关系进行同步,使得与客户端连接的网络节点在向客户端发送传输控制消息时,能够以本地时间作为传输控制消息中的绝对时间,根据数据源端的绝对时间与相对时间的对应关系,确定与本地绝对时间对应的相对时间,使得客户端收到的绝对时间与相对时间与数据源端的绝对时间与相对时间相对应,以及将封装有本地绝对时间和相对时间的传输控制消息发送给客户端,进而使得客户端可以基于接收到的传输控制消息中的绝对时间与相对时间精准地进行音视频同步,解决音视频同步失败的问题,改善播放体验。
图5为本申请实施例提供的另一种流媒体传输控制方法的流程图,该方法应用于目标数据链路上与客户端网络连接的第二网络节点,目标数据链路是数据源端与客户端进行音频数据或视频数据传输的链路。参见图5,该方法可以包括以下步骤:
501、接收第一绝对时间与第一相对时间的对应关系,第一绝对时间是数据源端的本地时间,第一绝对时间与第一相对时间是目标数据链路上第一网络节点从数据源端发送的第一传输控制消息中获取的。
502、将本地时间作为第二绝对时间,根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间。
503、根据第二绝对时间和第二相对时间生成第二传输控制消息,并发送给客户端,以使客户端根据第二绝对时间和第二相对时间进行音视频同步。
其中,第一传输控制消息和第二传输控制消息是与某条媒体流对应的传输控制消息,例如可以是音频流或视频流。
其中,第一绝对时间是数据源端发送第一传输控制消息的本地时间,是以毫秒为单位的时间;相应地,第一相对时间是根据第一绝对时间计算出的时间,第一相对时间是与第一传输控制消息对应的媒体流的采样频率有关,是一个单调递增数值,且第一相对时间计算的单位不是秒,而是由采样频率所代替的单位。虽然,第一相对时间与第一绝对时间使用的单位不同,两者表达方式不同,但是两者表示同一时刻,即都表示第一传输控制消息的生成时刻。在采用RTP/RTPC协议的情况下,第一绝对时间是指NTP时间戳,第一相对时间是指RTP时间戳。
同理,第二绝对时间是第二网络节点发送第二传输控制消息时的本地时间,第二相对时间是第二网络节点根据本地时间和第一绝对时间与第一相对时间的对应关系确定的。第二绝对时间是以毫秒为单位的时间;第二相对时间与第一相对时间类似,第二相对时间是与第一或第二传输控制消息对应的媒体流的采样频率有关,是一个单调递增数值,且第二相对时间计算的单位不是秒,而是由采样频率所代替的单位,虽然,第二相对时间与第二绝对时间使用的单位不同,两者表达方式不同,但是两者表示同一时刻,即都表示第二传输控制消息的生成时刻。在采用RTP/RTPC协议的情况下,第二绝对时间是指NTP时间戳,第二相对时间是指RTP时间戳。需要说明的是,第一绝对时间和第二绝对时间是不同的NTP时间戳,第一相对时间和第二相对时间是不同的RTP时间戳。
进一步可选的,接收第一绝对时间与第一相对时间的对应关系,包括:接收第一网络节点同步的第一绝对时间与第一相对时间的对应关系;或者接收第三网络节点同步的第一绝对时间与第一相对时间的对应关系,第三网络节点是目标数据链路上位于第一网络节点和第二网络节点之间的网络节点,且对应关系是第一网络节点同步给第三网络节点的。
进一步可选的,接收第一绝对时间与第一相对时间的对应关系,包括:接收第一网络节点或第三网络节点发送的私有协议中的消息,从私有协议中的消息中获取第一绝对时间与第一相对时间的对应关系;或者接收第一网络节点或第三网络节点发送的传输控制协议中的消息,从传输控制协议中的消息中获取第一绝对时间与第一相对时间的对应关系。
进一步可选的,接收第一绝对时间与第一相对时间的对应关系,包括:接收第一网络节点或第三网络节点发送的第一绝对时间与第一相对时间,以确定第一绝对时间与第一相对时间的对应关系。
进一步可选的,根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间,包括:根据第二绝对时间与第一绝对时间的绝对时间差,结合数据源端的采样率,确定相对时间差;以第一相对时间为基准相对时间,结合相对时间差,得到第二绝对时间对应的第二相对时间。
进一步可选的,根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间,包括:若在确定第二绝对时间及其对应的第二相对时间之前,接收到多个第一绝对时间与第一相对时间的对应关系,根据最新接收到的第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间。
关于该方法实施例中各个步骤的详细实施过程可参见前述系统实施例中的相关描述,在此不再赘述。
本申请实施例提供的技术方案,在流媒体传输网络中的数据链路上,相邻参与者之间可以进行传输控制消息的传输,另外,还可以对数据源端的绝对时间与相对时间的对应关系进行同步,使得与客户端连接的网络节点在向客户端发送传输控制消息时,能够以本地时间作为传输控制消息中的绝对时间,根据数据源端的绝对时间与相对时间的对应关系,确定与本地绝对时间对应的相对时间,使得客户端收到的绝对时间与相对时间与数据源端的绝对时间与相对时间相对应,以及将封装有本地绝对时间和相对时间的传输控制消息发送给客户端,进而使得客户端可以基于接收到的传输控制消息中的绝对时间与相对时间精准地进行音视频同步,解决音视频同步失败的问题,改善播放体验。
图6为本申请实施例提供的一种流媒体传输控制装置的结构示意图。该装置可应用于目标数据链路上与数据源端网络连接的第一网络节点中,目标数据链路是数据源端与客户端进行音频数据或视频数据传输的链路。如图6所示,该装置可以包括:
接收模块61,用于接收数据源端发送的第一传输控制消息,第一传输控制消息中包含第一绝对时间及其对应的第一相对时间,第一绝对时间是数据源端的本地时间;
同步模块62,用于向目标数据链路上的第二网络节点同步第一绝对时间与第一相对时间的对应关系,以使第二网络节点向与其网络连接的客户端提供包含第二绝对时间及其对应的第二相对时间的第二传输控制消息,以供客户端进行音视频同步;
其中,第一绝对时间是数据源端发送第一传输控制消息的本地时间,是以毫秒为单位的时间;相应地,第一相对时间是根据第一绝对时间计算出的时间,第一相对时间是与第一传输控制消息对应的媒体流的采样频率有关,是一个单调递增数值,且第一相对时间计算的单位不是秒,而是由采样频率所代替的单位。虽然,第一相对时间与第一绝对时间使用的单位不同,两者表达方式不同,但是两者表示同一时刻,即都表示第一传输控制消息的生成时刻。在采用RTP/RTPC协议的情况下,第一绝对时间是指NTP时间戳,第一相对时间是指RTP时间戳。
同理,第二绝对时间是第二网络节点发送第二传输控制消息时的本地时间,第二相对时间是第二网络节点根据本地时间和第一绝对时间与第一相对时间的对应关系确定的。第二绝对时间是以毫秒为单位的时间;第二相对时间与第一相对时间类似,第二相对时间是与第一或第二传输控制消息对应的媒体流的采样频率有关,是一个单调递增数值,且第二相对时间计算的单位不是秒,而是由采样频率所代替的单位,虽然,第二相对时间与第二绝对时间使用的单位不同,两者表达方式不同,但是两者表示同一时刻,即都表示第二传输控制消息的生成时刻。在采用RTP/RTPC协议的情况下,第二绝对时间是指NTP时间戳,第二相对时间是指RTP时间戳。需要说明的是,第一绝对时间和第二绝对时间是不同的NTP时间戳,第一相对时间和第二相对时间是不同的RTP时间戳。
图6所示的流媒体传输控制装置可以执行图4所示实施例的流媒体传输控制方法,其实现原理和技术效果不再赘述。对于上述实施例中的流媒体传输控制装置其中各个模块、单元执行操作的具体方式已经在有关该系统实施例中进行了详细描述,此处将不做详细阐述说明。
图7为本申请实施例提供的一种流媒体传输控制装置的结构示意图。该装置可应用于目标数据链路上与客户端网络连接的第二网络节点中,目标数据链路是数据源端与客户端进行音频数据或视频数据传输的链路。如图7所示,该装置可以包括:
接收模块71,用于接收第一绝对时间与第一相对时间的对应关系,第一绝对时间是数据源端的本地时间,第一绝对时间与第一相对时间是目标数据链路上第一网络节点从数据源端发送的第一传输控制消息中获取的;
确定模块72,用于将本地时间作为第二绝对时间,根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间;
发送模块73,用于根据第二绝对时间和第二相对时间生成第二传输控制消息,并发送给客户端,以使客户端根据第二绝对时间和第二相对时间进行音视频同步。
其中,第一传输控制消息和第二传输控制消息是与某条媒体流对应的传输控制消息,例如可以是音频流或视频流。
其中,第一绝对时间是数据源端发送第一传输控制消息的本地时间,是以毫秒为单位的时间;相应地,第一相对时间是根据第一绝对时间计算出的时间,第一相对时间是与第一传输控制消息对应的媒体流的采样频率有关,是一个单调递增数值,且第一相对时间计算的单位不是秒,而是由采样频率所代替的单位。虽然,第一相对时间与第一绝对时间使用的单位不同,两者表达方式不同,但是两者表示同一时刻,即都表示第一传输控制消息的生成时刻。在采用RTP/RTPC协议的情况下,第一绝对时间是指NTP时间戳,第一相对时间是指RTP时间戳。
同理,第二绝对时间是第二网络节点发送第二传输控制消息时的本地时间,第二相对时间是第二网络节点根据本地时间和第一绝对时间与第一相对时间的对应关系确定的。第二绝对时间是以毫秒为单位的时间;第二相对时间与第一相对时间类似,第二相对时间是与第一或第二传输控制消息对应的媒体流的采样频率有关,是一个单调递增数值,且第二相对时间计算的单位不是秒,而是由采样频率所代替的单位,虽然,第二相对时间与第二绝对时间使用的单位不同,两者表达方式不同,但是两者表示同一时刻,即都表示第二传输控制消息的生成时刻。在采用RTP/RTPC协议的情况下,第二绝对时间是指NTP时间戳,第二相对时间是指RTP时间戳。需要说明的是,第一绝对时间和第二绝对时间是不同的NTP时间戳,第一相对时间和第二相对时间是不同的RTP时间戳。
图7所示的流媒体传输控制装置可以执行图5所示实施例的流媒体传输控制方法,其实现原理和技术效果不再赘述。对于上述实施例中的流媒体传输控制装置其中各个模块、单元执行操作的具体方式已经在有关该系统实施例中进行了详细描述,此处将不做详细阐述说明。
图8为本申请实施例提供的一种网络节点设备的结构示意图。该网络节点设备,可作为目标数据链路上与数据源端网络连接的第一网络节点实现,如图8所示,该网络节点设备包括:存储器81和处理器82;
存储器81,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器81可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器82,与存储器81耦合,用于执行存储器81中的计算机程序,以用于:接收数据源端发送的第一传输控制消息,第一传输控制消息中包含第一绝对时间及其对应的第一相对时间,第一绝对时间是数据源端的本地时间;向目标数据链路上的第二网络节点同步第一绝对时间与第一相对时间的对应关系,以使第二网络节点向与其网络连接的客户端提供包含第二绝对时间及其对应的第二相对时间的第二传输控制消息,以供客户端进行音视频同步;其中,第二绝对时间是第二网络节点的本地时间,第二相对时间是第二网络节点根据本地时间和对应关系确定的。
进一步可选的,处理器82向目标数据链路上的第二网络节点同步第一绝对时间与第一相对时间的对应关系时,具体用于:
向第三网络节点同步第一绝对时间与第一相对时间的对应关系,以使第三网络节点向第二网络节点同步第一绝对时间与第一相对时间的对应关系;
其中,第三网络节点是目标数据链路上位于第一网络节点和第二网络节点之间的网络节点。
进一步可选的,处理器82向目标数据链路上的第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系时,具体用于:通过私有协议中的消息向第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系;
或者通过传输控制协议中的消息向第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系。
进一步可选的,处理器82向目标数据链路上的第二网络节点或第三网络节点同步第一绝对时间与第一相对时间的对应关系时,具体用于:向目标数据链路上的第二网络节点或第三网络节点发送第一绝对时间与第一相对时间,以使第二网络节点或第三网络节点确定第一绝对时间与第一相对时间的对应关系。
关于处理器执行各动作的详细实施过程可参见前述系统实施例中的相关描述,在此不再赘述。
本申请实施例还提供一种网络节点设备,该网络节点设备的结构和如图8所示的网络节点设备的结构相同,但是处理逻辑不同。该网络节点设备,可作为目标数据链路上与客户端网络连接的第二网络节点实现。具体而言,该网络节点设备包括:存储器81和处理器82;
存储器81,用于存储计算机程序,并可被配置为存储其它各种数据以支持在计算平台上的操作。这些数据的示例包括用于在计算平台上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器81可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器82,与存储器81耦合,用于执行存储器81中的计算机程序,以用于:接收第一绝对时间与第一相对时间的对应关系,第一绝对时间是数据源端的本地时间,第一绝对时间与第一相对时间是目标数据链路上第一网络节点从数据源端发送的第一传输控制消息中获取的;将本地时间作为第二绝对时间,根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间;根据第二绝对时间和第二相对时间生成第二传输控制消息,并发送给客户端,以使客户端根据第二绝对时间和第二相对时间进行音视频同步。
进一步可选的,处理器82接收第一绝对时间与第一相对时间的对应关系时,具体用于:接收第一网络节点同步的第一绝对时间与第一相对时间的对应关系;或者接收第三网络节点同步的第一绝对时间与第一相对时间的对应关系,第三网络节点是目标数据链路上位于第一网络节点和第二网络节点之间的网络节点,且对应关系是第一网络节点同步给第三网络节点的。
进一步可选的,处理器82接收第一绝对时间与第一相对时间的对应关系时,具体用于:
接收第一网络节点或第三网络节点发送的私有协议中的消息,从私有协议中的消息中获取第一绝对时间与第一相对时间的对应关系;
或者
接收第一网络节点或第三网络节点发送的传输控制协议中的消息,从传输控制协议中的消息中获取第一绝对时间与第一相对时间的对应关系。
进一步可选的,处理器82接收第一绝对时间与第一相对时间的对应关系时,具体用于:接收第一网络节点或第三网络节点发送的第一绝对时间与第一相对时间,以确定第一绝对时间与第一相对时间的对应关系。
进一步可选的,处理器82根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间时,具体用于:根据第二绝对时间与第一绝对时间的绝对时间差,结合数据源端的采样率,确定相对时间差;以第一相对时间为基准相对时间,结合相对时间差,得到第二绝对时间对应的第二相对时间。
进一步可选的,处理器82根据第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间时,具体用于:若在确定第二绝对时间及其对应的第二相对时间之前,接收到多个第一绝对时间与第一相对时间的对应关系,根据最新接收到的第一绝对时间与第一相对时间的对应关系,确定第二绝对时间对应的第二相对时间。
关于处理器执行各动作的详细实施过程可参见前述系统实施例中的相关描述,在此不再赘述。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤402的执行主体可以为设备A;又比如,步骤401的执行主体可以为设备A,步骤402的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如401、402等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
进一步,如图8所示,该网络节点设备还包括:通信组件83、显示器84、电源组件88、音频组件86等其它组件。图8中仅示意性给出部分组件,并不意味着网络节点设备只包括图8所示组件。另外,图8中虚线框内的组件为可选组件,而非必选组件,具体可视网络节点设备的产品形态而定。本实施例的网络节点设备可以实现为台式电脑、笔记本电脑、智能手机或IOT设备等终端设备,也可以是常规服务器、云服务器或服务器阵列等服务端设备。若本实施例的网络节点设备实现为台式电脑、笔记本电脑、智能手机等终端设备,可以包含图8中虚线框内的组件;若本实施例的网络节点设备实现为常规服务器、云服务器或服务器阵列等服务端设备,则可以不包含图8中虚线框内的组件。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由网络节点设备执行的各步骤。
相应地,本申请实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器能够实现上述方法实施例中可由网络节点设备执行的各步骤。
上述通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
上述电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (16)
1.一种流媒体传输网络,其特征在于,包括:多个网络节点,所述多个网络节点至少包括目标数据链路上的第一网络节点和第二网络节点,所述目标数据链路是数据源端向客户端发送音视频数据的链路;
所述第一网络节点与数据源端网络连接,用于接收数据源端发送的第一传输控制消息,所述第一传输控制消息中包含第一绝对时间及其对应的第一相对时间,向所述第二网络节点同步所述第一绝对时间与第一相对时间的对应关系,所述第一绝对时间是数据源端的本地时间;
所述第二网络节点与客户端网络连接,用于将本地时间作为第二绝对时间,根据所述第一绝对时间与第一相对时间的对应关系,确定所述第二绝对时间对应的第二相对时间;根据所述第二绝对时间和第二相对时间生成第二传输控制消息,并发送给所述客户端,以使所述客户端根据所述第二绝对时间和第二相对时间进行音视频同步。
2.根据权利要求1所述的网络,其特征在于,所述多个网络节点还包括:目标数据链路上位于所述第一网络节点和第二网络节点之间的第三网络节点;
所述第一网络节点具体用于:向所述第三网络节点同步所述第一绝对时间与第一相对时间的对应关系,以使所述第三网络节点向所述第二网络节点同步所述第一绝对时间与第一相对时间的对应关系。
3.一种流媒体传输控制方法,应用于目标数据链路上与数据源端网络连接的第一网络节点,其特征在于,所述方法包括:
接收数据源端发送的第一传输控制消息,所述第一传输控制消息中包含第一绝对时间及其对应的第一相对时间,所述第一绝对时间是数据源端的本地时间;
向目标数据链路上的第二网络节点同步所述第一绝对时间与第一相对时间的对应关系,以使所述第二网络节点向与其网络连接的客户端提供包含第二绝对时间及其对应的第二相对时间的第二传输控制消息,以供所述客户端进行音视频同步;
其中,所述第二绝对时间是所述第二网络节点的本地时间,所述第二相对时间是所述第二网络节点根据本地时间和所述对应关系确定的。
4.根据权利要求3所述的方法,其特征在于,向目标数据链路上的第二网络节点同步所述第一绝对时间与第一相对时间的对应关系,包括:
向第三网络节点同步所述第一绝对时间与第一相对时间的对应关系,以使所述第三网络节点向所述第二网络节点同步所述第一绝对时间与第一相对时间的对应关系;
其中,所述第三网络节点是所述目标数据链路上位于所述第一网络节点和所述第二网络节点之间的网络节点。
5.根据权利要求4所述的方法,其特征在于,向目标数据链路上的第二网络节点或第三网络节点同步所述第一绝对时间与第一相对时间的对应关系,包括:
通过私有协议中的消息向所述第二网络节点或所述第三网络节点同步所述第一绝对时间与第一相对时间的对应关系;
或者
通过传输控制协议中的消息向所述第二网络节点或所述第三网络节点同步所述第一绝对时间与第一相对时间的对应关系。
6.根据权利要求4所述的方法,其特征在于,向目标数据链路上的第二网络节点或第三网络节点同步所述第一绝对时间与第一相对时间的对应关系,包括:
向目标数据链路上的第二网络节点或第三网络节点发送所述第一绝对时间与所述第一相对时间,以使所述第二网络节点或第三网络节点确定所述第一绝对时间与所述第一相对时间的对应关系。
7.一种流媒体传输控制方法,应用于目标数据链路上与客户端网络连接的第二网络节点,其特征在于,所述方法包括:
接收第一绝对时间与第一相对时间的对应关系,所述第一绝对时间是数据源端的本地时间,所述第一绝对时间与第一相对时间是目标数据链路上第一网络节点从数据源端发送的第一传输控制消息中获取的;
将本地时间作为第二绝对时间,根据所述第一绝对时间与第一相对时间的对应关系,确定所述第二绝对时间对应的第二相对时间;
根据所述第二绝对时间和第二相对时间生成第二传输控制消息,并发送给客户端,以使所述客户端根据所述第二绝对时间和第二相对时间进行音视频同步。
8.根据权利要求7所述的方法,其特征在于,接收第一绝对时间与第一相对时间的对应关系,包括:
接收所述第一网络节点同步的第一绝对时间与第一相对时间的对应关系;
或者
接收第三网络节点同步的第一绝对时间与第一相对时间的对应关系,所述第三网络节点是所述目标数据链路上位于所述第一网络节点和所述第二网络节点之间的网络节点,且所述对应关系是所述第一网络节点同步给所述第三网络节点的。
9.根据权利要求8所述的方法,其特征在于,接收第一绝对时间与第一相对时间的对应关系,包括:
接收所述第一网络节点或所述第三网络节点发送的私有协议中的消息,从所述私有协议中的消息中获取所述第一绝对时间与第一相对时间的对应关系;
或者
接收所述第一网络节点或所述第三网络节点发送的传输控制协议中的消息,从所述传输控制协议中的消息中获取所述第一绝对时间与第一相对时间的对应关系。
10.根据权利要求8所述的方法,其特征在于,接收第一绝对时间与第一相对时间的对应关系,包括:
接收所述第一网络节点或所述第三网络节点发送的所述第一绝对时间与所述第一相对时间,以确定所述第一绝对时间与所述第一相对时间的对应关系。
11.根据权利要求8-10任一项所述的方法,其特征在于,根据所述第一绝对时间与第一相对时间的对应关系,确定所述第二绝对时间对应的第二相对时间,包括:
根据所述第二绝对时间与所述第一绝对时间的绝对时间差,结合数据源端的采样率,确定相对时间差;
以所述第一相对时间为基准相对时间,结合所述相对时间差,得到所述第二绝对时间对应的第二相对时间。
12.根据权利要求8-10任一项所述的方法,其特征在于,根据所述第一绝对时间与第一相对时间的对应关系,确定所述第二绝对时间对应的第二相对时间,包括:
若在确定第二绝对时间及其对应的第二相对时间之前,接收到多个所述第一绝对时间与第一相对时间的对应关系,根据最新接收到的第一绝对时间与第一相对时间的对应关系,确定所述第二绝对时间对应的第二相对时间。
13.一种流媒体传输控制装置,可应用于目标数据链路上与数据源端网络连接的第一网络节点中,其特征在于,所述装置包括:
接收模块,用于接收数据源端发送的第一传输控制消息,所述第一传输控制消息中包含第一绝对时间及其对应的第一相对时间,所述第一绝对时间是数据源端的本地时间;
同步模块,用于向目标数据链路上的第二网络节点同步所述第一绝对时间与第一相对时间的对应关系,以使所述第二网络节点向与其网络连接的客户端提供包含第二绝对时间及其对应的第二相对时间的第二传输控制消息,以供所述客户端进行音视频同步;
其中,所述第二绝对时间是所述第二网络节点的本地时间,所述第二相对时间是所述第二网络节点根据本地时间和所述对应关系确定的。
14.一种流媒体传输控制装置,可应用于目标数据链路上与客户端网络连接的第二网络节点,其特征在于,所述装置包括:
接收模块,用于接收第一绝对时间与第一相对时间的对应关系,所述第一绝对时间是数据源端的本地时间,所述第一绝对时间与第一相对时间是目标数据链路上第一网络节点从数据源端发送的第一传输控制消息中获取的;
确定模块,用于将本地时间作为第二绝对时间,根据所述第一绝对时间与第一相对时间的对应关系,确定所述第二绝对时间对应的第二相对时间;
发送模块,用于根据所述第二绝对时间和第二相对时间生成第二传输控制消息,并发送给客户端,以使所述客户端根据所述第二绝对时间和第二相对时间进行音视频同步。
15.一种网络节点设备,可作为目标数据链路上与数据源端网络连接的第一网络节点实现,其特征在于,所述设备包括:存储器和处理器;
所述存储器,用于存储计算机程序;所述处理器与所述存储器耦合,用于执行所述计算机程序,以用于实现权利要求3-12任一项所述方法中的步骤。
16.一种存储有计算机程序的计算机可读存储介质,其特征在于,当所述计算机程序被处理器执行时,致使所述处理器能够实现权利要求3-12任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210701374.0A CN115174979B (zh) | 2022-06-20 | 2022-06-20 | 流媒体传输网络及传输控制方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210701374.0A CN115174979B (zh) | 2022-06-20 | 2022-06-20 | 流媒体传输网络及传输控制方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115174979A true CN115174979A (zh) | 2022-10-11 |
CN115174979B CN115174979B (zh) | 2023-12-29 |
Family
ID=83486966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210701374.0A Active CN115174979B (zh) | 2022-06-20 | 2022-06-20 | 流媒体传输网络及传输控制方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115174979B (zh) |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006033611A1 (en) * | 2004-09-22 | 2006-03-30 | Prosilient Technologies Aktiebolag | Method, a computer program product, and a carrier for indicating one-way latency in a data network |
CN101179484A (zh) * | 2006-11-09 | 2008-05-14 | 华为技术有限公司 | 一种不同媒体流间的同步方法及系统 |
CN102065060A (zh) * | 2009-11-16 | 2011-05-18 | 华为技术有限公司 | 媒体流切换同步方法和流媒体服务器 |
CN102196303A (zh) * | 2010-03-02 | 2011-09-21 | 中兴通讯股份有限公司 | 一种媒体同步的方法和系统 |
CN102202070A (zh) * | 2010-03-23 | 2011-09-28 | 冯思雅 | 流媒体快速流间同步机制 |
CN102595202A (zh) * | 2011-01-11 | 2012-07-18 | 中兴通讯股份有限公司 | 一种多个媒体流同步的方法、装置及系统 |
CN103414957A (zh) * | 2013-07-30 | 2013-11-27 | 广东工业大学 | 一种音视频数据同步的方法和装置 |
CN105611621A (zh) * | 2016-01-14 | 2016-05-25 | 南京航空航天大学 | 一种适用于多跳无线传感器网络的主从同步方法 |
CN110225385A (zh) * | 2019-06-19 | 2019-09-10 | 鼎桥通信技术有限公司 | 一种音视频同步调整方法和装置 |
CN110278047A (zh) * | 2018-03-16 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 用于时钟同步、设置流媒体帧的pts值的方法、装置及设备 |
CN111385625A (zh) * | 2018-12-29 | 2020-07-07 | 成都鼎桥通信技术有限公司 | 一种Non-IP数据传送的同步方法和设备 |
WO2020173165A1 (zh) * | 2019-02-28 | 2020-09-03 | 华为技术有限公司 | 一种音频流和视频流同步切换方法及装置 |
CN111954296A (zh) * | 2020-08-11 | 2020-11-17 | 北京邮电大学 | 一种自组织网络的时间同步方法及装置 |
CN112118623A (zh) * | 2020-09-22 | 2020-12-22 | 东南大学 | 多节点传感器采集系统网络时间同步方法及系统 |
US20210044867A1 (en) * | 2019-08-05 | 2021-02-11 | Grass Valley Limited | System and method of measuring delay between transmitted audio and video signals |
CN113115080A (zh) * | 2021-04-08 | 2021-07-13 | 刘文平 | 移动媒体间实时视频音频高精度同步平台 |
WO2021159329A1 (zh) * | 2020-02-12 | 2021-08-19 | 深圳元戎启行科技有限公司 | 流媒体网络时延确定方法、装置、计算机设备、可读存储介质和远程驾驶系统 |
CN113747208A (zh) * | 2020-05-27 | 2021-12-03 | 阿里巴巴集团控股有限公司 | 音视频数据同步方法、数据同步方法、服务端及接收端 |
-
2022
- 2022-06-20 CN CN202210701374.0A patent/CN115174979B/zh active Active
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006033611A1 (en) * | 2004-09-22 | 2006-03-30 | Prosilient Technologies Aktiebolag | Method, a computer program product, and a carrier for indicating one-way latency in a data network |
CN101179484A (zh) * | 2006-11-09 | 2008-05-14 | 华为技术有限公司 | 一种不同媒体流间的同步方法及系统 |
WO2008055420A1 (fr) * | 2006-11-09 | 2008-05-15 | Huawei Technologies Co., Ltd. | Procédé de synchronisation entre différents flux de média et un système |
CN101371488A (zh) * | 2006-11-09 | 2009-02-18 | 华为技术有限公司 | 一种不同媒体流间的同步方法及系统 |
CN102065060A (zh) * | 2009-11-16 | 2011-05-18 | 华为技术有限公司 | 媒体流切换同步方法和流媒体服务器 |
WO2011057588A1 (zh) * | 2009-11-16 | 2011-05-19 | 华为技术有限公司 | 媒体流切换同步方法和流媒体服务器 |
CN102196303A (zh) * | 2010-03-02 | 2011-09-21 | 中兴通讯股份有限公司 | 一种媒体同步的方法和系统 |
CN102202070A (zh) * | 2010-03-23 | 2011-09-28 | 冯思雅 | 流媒体快速流间同步机制 |
CN102595202A (zh) * | 2011-01-11 | 2012-07-18 | 中兴通讯股份有限公司 | 一种多个媒体流同步的方法、装置及系统 |
WO2012094974A1 (zh) * | 2011-01-11 | 2012-07-19 | 中兴通讯股份有限公司 | 一种多个媒体流同步的方法、装置及系统 |
CN103414957A (zh) * | 2013-07-30 | 2013-11-27 | 广东工业大学 | 一种音视频数据同步的方法和装置 |
CN105611621A (zh) * | 2016-01-14 | 2016-05-25 | 南京航空航天大学 | 一种适用于多跳无线传感器网络的主从同步方法 |
CN110278047A (zh) * | 2018-03-16 | 2019-09-24 | 阿里巴巴集团控股有限公司 | 用于时钟同步、设置流媒体帧的pts值的方法、装置及设备 |
CN111385625A (zh) * | 2018-12-29 | 2020-07-07 | 成都鼎桥通信技术有限公司 | 一种Non-IP数据传送的同步方法和设备 |
WO2020173165A1 (zh) * | 2019-02-28 | 2020-09-03 | 华为技术有限公司 | 一种音频流和视频流同步切换方法及装置 |
CN110225385A (zh) * | 2019-06-19 | 2019-09-10 | 鼎桥通信技术有限公司 | 一种音视频同步调整方法和装置 |
US20210044867A1 (en) * | 2019-08-05 | 2021-02-11 | Grass Valley Limited | System and method of measuring delay between transmitted audio and video signals |
WO2021159329A1 (zh) * | 2020-02-12 | 2021-08-19 | 深圳元戎启行科技有限公司 | 流媒体网络时延确定方法、装置、计算机设备、可读存储介质和远程驾驶系统 |
CN113747208A (zh) * | 2020-05-27 | 2021-12-03 | 阿里巴巴集团控股有限公司 | 音视频数据同步方法、数据同步方法、服务端及接收端 |
CN111954296A (zh) * | 2020-08-11 | 2020-11-17 | 北京邮电大学 | 一种自组织网络的时间同步方法及装置 |
CN112118623A (zh) * | 2020-09-22 | 2020-12-22 | 东南大学 | 多节点传感器采集系统网络时间同步方法及系统 |
CN113115080A (zh) * | 2021-04-08 | 2021-07-13 | 刘文平 | 移动媒体间实时视频音频高精度同步平台 |
Also Published As
Publication number | Publication date |
---|---|
CN115174979B (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101354793B1 (ko) | 입력 오디오 스트림 및 입력 비디오 스트림을 동기화하는 방법, 복수의 컴퓨팅 장치에 걸쳐서 전송되고 있는 미디어 스트림들을 동기화하기 위한 시스템, 및 컴퓨터 판독가능 매체 | |
EP2232812B1 (en) | Method and system for synchronizing the output of terminals | |
TWI568230B (zh) | 用於在媒體中繼會談中同步化音訊及視訊串流之方法及系統 | |
US20060085823A1 (en) | Media communications method and apparatus | |
CN105610824B (zh) | 一种基于屏幕镜像及rtsp流媒体框架的屏幕共享方法 | |
JP2010512688A5 (zh) | ||
CN103797810A (zh) | 同步的无线显示设备 | |
CN105656616B (zh) | 多设备间数据同步的方法、装置、发送端及接收端 | |
US11553025B2 (en) | System and method for interleaved media communication and conversion | |
CN110943977B (zh) | 多媒体业务数据传输方法、服务端、设备及存储介质 | |
CN108667871B (zh) | 基于p2p的传输方法和装置 | |
CN113923470A (zh) | 直播流处理方法及装置 | |
CN112584216B (zh) | 一种唇音同步方法和装置 | |
CN113114688A (zh) | 多媒体会议管理方法及装置、存储介质、电子设备 | |
CN111629158A (zh) | 一种音频流和视频流同步切换方法及装置 | |
KR20150146116A (ko) | 이종망 기반 방송 서비스를 제공하는 방법 및 장치 | |
CN115174979B (zh) | 流媒体传输网络及传输控制方法、装置、设备及存储介质 | |
CN115314643B (zh) | 一种实现净切换的方法、系统、设备及存储介质 | |
CN115277649A (zh) | 多媒体会议场景下的文档协同编辑的方法及装置 | |
US10356152B2 (en) | Real-time distributed information processing system | |
CN108353035B (zh) | 用于多路复用数据的方法和设备 | |
Papadaki et al. | Mobistream: Live multimedia streaming in mobile devices | |
CN114554242B (zh) | 直播方法和可读存储介质 | |
KR101843475B1 (ko) | 동영상을 제공하는 미디어 서버 | |
CN112671696A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40081901 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |