掌桥专利:专业的专利平台
掌桥专利
首页

一种提供时间同步多流数据传输的方法

文献发布时间:2024-04-18 19:58:26


一种提供时间同步多流数据传输的方法

背景技术

本发明涉及一种提供时间同步多流数据传输的方法。更具体地,本发明涉及一种提供多流数据传输的方法,其中:每个数据流被编码成多个数据包;共同的起始参考时间被分配给每个数据流;并为每个数据流的每个数据包分配一个与起始参考时间相关的时间偏移量,然后再传输到远程设备进行显示。

目前已知的传输多流数据的方法有多种。然而,标准视频播放器是根据视频数据流数据包中的呈现时间来播放视频数据流的。一般情况下,在直播流广播中,视频播放器会根据当前时间和呈现时间进行偏移量调整,以便视频播放器播放直播视频数据流。试图同时观看多个视频数据流时就变得具有挑战性,因为视频播放器需要额外的控制和复杂性,才能使每个单独的视频数据流与当前时间保持一致,并与它们各自的呈现时间保持一致。如果需要将附加数据流与这些直播视频数据流(如直播体育分析数据或单独的音频流)同步,这将变得更加具有挑战性。当每个额外的数据流被合并到视图中时,就需要进行额外的终端用户端/客户端同步计算,以保持所有这些数据流的同步。

本发明的一个目的是提供能够同步各种数据馈送的多流数据馈送,而无需考虑数据馈送的开始时间,并将同步的数据馈送传输到远程设备(例如视频播放器)以供显示。更具体地说,本发明旨在提供一种在远程设备上实现数据流时间同步的解决方案,通过从第一数据流中确定一个起始参考时间,然后修改每个数据流的呈现时间,使其与共同的呈现时间保持一致,然后再将时间同步的数据流传输到远程设备上进行显示。这样一来,时间同步的数据流可以由标准的、未修改的视频播放器来显示。

发明内容

本发明提供了一种提供时间同步多流数据传输的方法,该方法包括以下步骤:

提供第一记录或生成设备,用于提供第一数据流的帧;

将第一数据流编码成数据包,其中每个第一数据流数据包包括呈现时间和预定数量的第一数据流帧;

提供第二记录或生成设备,用于提供第二数据流的帧;

将所述第二数据流编码成数据包,其中每个第二数据流数据包包括呈现时间和预定数量的第二数据流帧;

将所述第一数据流和所述第二数据流传输到处理设备;

将共同的起始参考时间与所传输的所述第一数据流和所述第二数据流的第一数据包相关联;

将第一流起始时间分配给所传输的所述第一数据流的第一数据包,并将第二流起始时间分配给所传输的所述第二数据流的第一数据包;

将所述起始参考时间和第一数据流起始时间的第一时间偏移量(直接或间接)与所述第一数据流的每个后续数据包相关联,并将所述起始参考时间和第二数据流起始时间的第二时间偏移量(直接或间接)与所述第二数据流的每个后续数据包相关联;

使用与所述第一数据流相关联的所述第一时间偏移量和与所述第二数据流相关联的所述第二时间偏移量,将所述第一数据流数据包与所述第二数据流数据包进行时间对齐;并且

将公共呈现时间应用于时间对齐后的第一数据流数据包和第二数据流数据包,而不考虑所述第一数据流和所述第二数据流的原始呈现时间。

典型地,数据流通常包括视频流、音频流或数据流(如字幕或分析数据)。

通常,传输包括广播,例如视频、音频广播或多媒体(包括数据)传输。

所述起始参考时间可以是一天中的时间戳(例如,2021年3月1日09时31分10秒5毫秒)、其导数(例如,从一天中的时间戳得到的增量)或者所选择的任意时间。

优选地,时间偏移量是参照增量或通过比较一天中的时间戳来确定的。

典型地,处理设备是服务器。

通常,所述记录或生成设备是录像机、麦克风或生成数据的设备。

可选地,所述第一记录或生成设备和所述第二记录或生成设备在记录或生成数据期间将时间戳或时间偏移量应用于每个数据包。或者,所述第一记录或生成设备和所述第二记录或生成设备将所述第一数据流和所述第二数据流传输到处理设备,所述处理设备在接收到所述第一数据流和所述第二数据流后,将时间戳或时间偏移量应用到接收到的第一数据流数据包和第二数据流数据包。

优选地,时间戳包括(但不限于)GPS时间戳、NTP服务器时间戳、手动创建的时间戳等。

典型地,所述处理设备对所述第一数据流数据包和所述第二数据流数据包进行时间对齐,并对数据包应用共同的呈现时间。

通常,所述处理设备将所述第一数据流数据包和所述第二数据流数据包(具有共同的呈现时间)传输到远程设备(例如,计算机、电视、智能手机)用于显示,这些远程设备能够处理呈现时间,而不是一天中的时间或时间偏移标记。

优选地,所述起始参考时间与所传输的所述第一数据流和所述第二数据流的第一数据包的日戳时间相关联。

处理设备可以是单个处理设备。或者,处理设备可以是由所述起始参考时间同步的第一处理设备和第二处理设备。

可选地,所述起始参考时间与接收第三数据流的第二处理设备同步,使得所述第二处理设备可以将所述第三数据流与所述第一数据流和所述第二数据流进行时间对齐。

附图说明

现在将参考附图,仅通过示例的方式来更详细地描述本发明,其中:

图1是示出时间同步数据馈送的示意图;

图2是图1中数据馈送根据其原始呈现时间的回放的示意图(未对数据馈送进行时间对齐);

图3是图1中数据馈送的示意图,其中数据馈送使用时间偏移量进行时间对齐;

图4是图3中数据馈送的回放示意图;和

图5是显示用于回放图1中的数据馈送的硬件的示意图。

具体实施方式

参考附图中的图3和图5,一种为传输广播(如视频广播、音频广播或多媒体(包括数据)传输)提供时间同步多流数据传输的方法,利用一个系统,该系统包括:

第一记录或生成设备22(例如,录像机、麦克风或生成数据的设备);

第二记录或生成设备24(例如,录像机、麦克风或生成数据的设备);和

处理设备26(例如,服务器)。

所述第一或第二记录或生成设备22是生成数据流12、数据流14、数据流16或数据流18的设备。这种设备的一个例子是视频编码器,它从摄像机视角捕获帧,并创建数据流来传输该内容。

根据本发明的提供时间同步的多流数据传输的方法,包括以下步骤:

1.提供所述第一记录或生成设备22,用于提供第一数据流16的帧;

所述第一数据流16可以是视频、音频或数据(例如字幕或分析数据)。

2.将第一数据流16编码成数据包,其中每个第一数据流数据包包括呈现时间和预定数量的第一数据流帧;

“帧”是视频流中单个图像的数据样本,或者是以预定方式采样或捕捉的音频或其他数据的样本。采样率通常用视频的“每秒帧数”和音频及其他数据的“每秒样本数”来描述。例如,摄像机以每秒预定的帧数产生帧。

“编码”是指获取帧并用附加信息(包括呈现时间)描述帧,然后将帧打包/编码成数据包进行传输的方法。使用普通编码格式(如MP4、RTMP等)进行编码,可让普通播放设备将数据包解包/解码为帧,以便向终端用户播放。

“数据包”是通过编码产生的。一个数据包包含一帧或多帧样本数据和描述样本数据的附加信息,如呈现时间。

“呈现时间”是每个数据包中包含的时间戳,用于描述向终端用户呈现数据包中包含的视频、音频或数据的时间。呈现时间通常是数据流开始后经过的绝对时间,这意味着数据流开始时的呈现时间通常为零,并像秒表一样为数据流中的每个数据包递增。呈现时间表示记录或生成设备对帧进行采样的时间。

3.提供第二记录或生成设备22,用于提供第二数据流18的帧;

同样,所述第二数据流18可以是视频、音频或数据(例如,字幕或分析数据)。

4.将所述第二数据流18编码成数据包,其中每个第二数据流数据包包括呈现时间和预定数量的第二数据流帧;

5.将所述第一数据流16和所述第二数据流18传输到处理设备24;

所述“处理设备”24可以包括但不限于中央服务器、分布式服务器或计算设备(例如摄像手机)。所述处理设备24也可以是与所述记录或生成设备相同的设备。

6.将共同的起始参考时间(即,相同的起始参考时间)与所传输的所述第一数据流16和所述第二数据流18的第一数据包相关联;

例如,当启动第一或第二数据流16或18时,可将起始参考时间设置为所传输的第一或第二数据流16或18的第一数据包的时间戳(例如2021年3月1日09时31分10秒5毫秒)。另外,也可以不将起始参考时间设置为一天的时间戳,而是将起始参考时间设置为其推导(例如日时间戳的增量)或任意选择的时间。

时间戳还可以包括(但不限于)GPS时间戳、NTP服务器时间戳、手动创建的时间戳等。

7.将第一流起始时间分配给所传输的所述第一数据流16的第一数据包,并将第二流起始时间分配给所传输的所述第二数据流18的第一数据包;

所述“数据流起始时间”是数据流开始的时间,它可以通过一天中的时间来确定,也可以用从起始参考时间算起的相对时间来衡量。所述数据流起始时间可以由所述记录或生成设备来确定。此外,处理设备也可以在收到数据流的第一数据包时确定数据流起始时间。进一步可选地,也可以通过所述记录或生成设备与所述处理设备之间的交互来确定数据流起始时间。

8.将所述起始参考时间和第一数据流16起始时间的第一时间偏移量(直接或间接)与所述第一数据流16的每个后续数据包相关联,并将所述起始参考时间和第二数据流18起始时间的第二时间偏移量(直接或间接)与所述第二数据流18的每个后续数据包相关联;

所述“时间偏移量”是在数据流的流起始时间和起始参考时间之间的时间差。它可以参考增量或通过比较一天中的时间戳来确定。

可选地,所述第一和第二记录或生成设备22在记录或数据生成期间将时间戳或时间偏移量应用于每个数据包。或者,所述第一和第二记录或生成设备22将所述第一数据流和所述第二数据流传输到所述处理设备24,所述处理设备24在收到所述第一数据流16和所述第二数据流18后,将时间戳或时间偏移量应用到收到的第一和第二数据流数据包。

优选地,相对于起始参考时间和相关数据流起始时间的时间偏移量由处理设备24确定。

9.使用与所述第一数据流16相关联的所述第一时间偏移量和与所述第二数据流18相关联的所述第二时间偏移量,将所述第一数据流16数据包与所述第二数据流18数据包进行时间对齐;

所述第一数据流16和所述第二数据流18的每个数据包都有一个“原始呈现时间”(即时间对齐前的固有呈现时间)。这是最初由所述记录或生成设备22确定的呈现时间。

“时间对齐”是指通过将计算出的时间偏移量加到原始呈现时间上,调整第二数据流数据包的原始呈现时间,从而使该第二数据流数据包与同时出现的第一数据流数据包进行时间对齐的方法。

所述处理设备24对所述第二数据流18数据包的原始呈现时间进行时间对齐。

10.将公共呈现时间应用于时间对齐后的第一数据流数据包和第二数据流数据包,而不考虑所述第一数据流16和所述第二数据流18的原始呈现时间。

所述“公共呈现时间”可以简单地是将数据流数据包的原始呈现时间添加到时间偏移量中的结果。

所述“公共呈现时间”取代了时间对齐后的第一和第二数据流数据包的原始呈现时间,从而使时间对齐后的第一和第二数据流16和18数据包与其他数据流12和14数据包实现时间同步。

由处理设备24执行用公共呈现时间替换原始呈现时间。

所述提供时间同步多流数据传输的方法通常还包括以下步骤:(由处理设备)将所述第一和第二数据流数据包(具有公共呈现时间)传输到远程设备20(如计算机、电视、智能手机)以供显示,这些远程设备20能够处理呈现时间,而不是一天中的时间或时间偏移戳。

“传输”意在表示数据流的分发。例如,视频数据流传输包括向在视频播放器上观看视频的终端用户分发广播视频内容。传输还可以包括在服务器上生成并分发给终端用户的数据流。

应当理解,所述处理设备24可以是单个处理设备。或者,所述处理设备可以是由起始参考时间同步的第一处理设备和第二处理设备。

此外,所述起始参考时间可以与接收第三数据流的第二处理设备24同步,这样所述第二处理设备就能将第三数据流与第一和第二数据流16和18进行时间对齐。

下面通过例子进一步描述所述提供时间同步多流数据传输的方法:

体育赛事中的视频广播员通常会使用多台摄像机22来录制比赛,每个摄像机从不同的观看角度捕捉比赛过程。这些观看角度被编辑成单个广播视频馈送,该单个广播视频馈送被传送给终端用户,该终端用户可能正在家中通过他们的笔记本电脑或移动设备20观看实况视频流。

视频广播公司可能希望以多视角广播流的形式播出三种不同的观看角度,使在家的观众可以自己改变观看角度,从而他们可以从可用的视频流中选择如何观看比赛。

在这种情况下,必须确保视频流的时间同步,以确保终端用户获得良好的观看体验。

图1示出了时间同步的数据馈送(不使用根据本发明的方法)。在这个例子中,第一视频数据流112在13:00开始流动,第二视频数据流114在13:02开始,第三视频数据流116在13:05开始。数据流呈现时间可以比作秒表的开始时间,在数据流开始时启动,从绝对时间零点开始。

当每个单独的视频馈送开始流式传输时,它们的呈现时间都从零开始,即使它们一天中的实际开始时间是不同的,并且可以被记录在与视频流相关联的元数据中。

如图2所示,如果不进行时间对齐,视频数据流112、114和116将根据它们的原始呈现时间在远程设备120上播放,从而导致这些视频数据流在远程设备120上出现不理想的不同步播放。

目前的视频播放器20是根据视频数据流数据包中的呈现时间来播放视频数据流的,为了解决这一缺点,根据本发明的方法对数据流进行了如下处理,如图3所示:

当所述第一数据流12在13:00启动时,所述处理设备24创建并存储起始参考时间。

当所述第一视频数据流16和单独的音频数据流14在13:02启动时,由于后两个视频数据流16和音频数据流14滞后于起始参考时间00:02,因此它们的数据包呈现时间被00:02的时间偏移量修改。

当第二视频数据流18在13:05启动时,其数据包呈现时间被00:05的时间偏移量修改。

结果是,所有数据流12、14、16和18(数据、视频和音频)在被分发到观众的远程设备20(例如,视频播放器和相关播放设备)之前都相互对齐。转向图4,可以理解,观众的远程设备20不需要额外的客户端同步,就可以同时播放多个数据流12、14、16和18,因为数据流12、14、16和18在分发之前已经在处理设备上同步。

转到起始参考时间和数据流起始时间:

起始参考时间和数据流起始时间可以用几种方法确定。通常,它们包括一天中时间的捕获时间戳。或者,它们可以作为时间戳从大多数数字/计算设备中存在的自由运行的时钟/计时器中被捕获。自由运行计时器与一天中的时间无关,但可以作为参考点来确定起始参考时间和数据流起始时间之间的时间偏移量。下面描述了几个场景。

场景1使用来自第一数据流第一数据包的时间:

当所述处理设备24接收到第一数据流的第一数据包时,会捕获一个时间戳作为起始参考时间,该时间戳与第一数据流起始时间相同。如果使用一天中的时间捕获,我们将使用13:00作为起始参考时间。如果使用自由运行的计时器捕获,则计时器以00:00的值启动。

起始参考时间(使用一天中的时间)=13:00

起始参考时间(使用计时器)=00:00

第一数据流起始时间(使用一天中的时间)=13:00

第一数据流起始时间(使用计时器)=00:00

第一数据流的时间偏移是00:00,因为第一数据流被视为起始参考时间。

当处理设备24接收到第二个流的第一数据包时,会捕获一个时间戳作为第二数据流起始时间。如果使用一天中的时间捕获,我们将使用13:02作为第二数据流起始时间。如果使用自由运行的计时器捕获,则在接收到第一数据流的第一数据包时启动的计时器一直在计时,并且现在的值为00:02。

第二数据流起始时间(使用一天中的时间)=13:02

第二数据流起始时间(使用计时器)=00:02

因此,第二数据流的时间偏移量是00:02。这可以通过减去一天中的时差来计算,也可以通过读取自由运行的计时器的值来计算。

场景2使用来自第二数据流的第一数据包的时间:

当第二数据流第一个到达处理设备并被用作所述起始参考时间时,场景1中详细描述的例子可以反过来应用。假设以下时间:

起始参考时间(使用一天中的时间)=14:05

起始参考时间(使用计时器)=00:00

第二数据流起始时间(使用一天中的时间)=14:05

第二数据流起始时间(使用计时器)=00:00

第二数据流的时间偏移量是00:00,因为第二数据流被认为是起始参考时间。

第一数据流随后到达所述处理设备24。

第一数据流起始时间(使用一天中的时间)=14:10

第一数据流起始时间(使用计时器)=00:05

因此,第一数据流的时间偏移量是00:05。这可以通过减去一天中的时差来计算,也可以通过读取自由运行的计时器的值来计算。

场景3使用任意起始参考时间的时间:

在这种情况下,起始参考时间被设置为任意时间,例如,设定开始传输或广播的预定时间。然后通过指令设置起始参考时间,指令可以是人机交互,也可以是计算设备之间以“将起始参考时间设置为现在”的方式发出的计算指令。

起始参考时间被指示为“现在”,恰好是一天中的15:00。或者在00:00启动的自由运行计时器。

第一数据流的第一数据包在15:02时或计时器值为00:02时被捕获。第二数据流的第一数据包在15:08时或计时器值为00:08时被捕获。

起始参考时间(使用一天中的时间)=15:00

起始参考时间(使用计时器)=00:00

第一数据流起始时间(使用一天中的时间)=15:02

第一数据流起始时间(使用计时器)=00:02

第二数据流起始时间(使用一天中的时间)=15:08

第二数据流起始时间(使用计时器)=00:08

因此,第一数据流的时间偏移量是00:02。这可以通过减去一天中的时差来计算,也可以通过读取自由运行的计时器的值来计算。

因此,第二数据流的时间偏移量是00:08。这可以通过减去一天中的时差来计算,也可以通过读取自由运行的计时器的值来计算。

应当理解的是,通过创建一个起始参考时间,并使用相对于起始参考时间的时间偏移量将所有附加数据流数据包的呈现时间修改为公共呈现时间,所有数据流在所述处理设备24处保持时间同步。这在多视角广播等应用中具有多种优势,视频数据流可以相互同步,并与其他数据流(如体育分析数据流和音频流)保持同步,而没有在终端用户/客户端管理单独的时间偏移时钟的复杂性。

还应当理解,处理设备可以被包括在典型的服务器环境中,其中多个数据流被时间对齐并被分发给终端用户应用中以进行同步回放。

还应当理解,利用分布式计算,起始参考时间可以在不同地理位置的多个处理设备上同步,,每个处理设备都有自己独立的数据流。在需要以时间同步的方式组合来自不同地理分散区域的音频、视频和数据流的情况下,这将是非常有利的。

相关技术
  • 一种基于数据传输系统的数据传输方法、装置及系统
  • 一种数据传输方法、通信设备和数据传输系统
  • 基于视频会议系统的无线辅流数据传输方法及系统
  • 一种基于精密时间同步混沌系统的安全数据传输方法
  • 一种基于时间同步网络的数据传输方法及相关设备
技术分类

06120116487163