CN109479156A - 用于第一和第二数据流的同步串流的方法和节点 - Google Patents
用于第一和第二数据流的同步串流的方法和节点 Download PDFInfo
- Publication number
- CN109479156A CN109479156A CN201780040865.2A CN201780040865A CN109479156A CN 109479156 A CN109479156 A CN 109479156A CN 201780040865 A CN201780040865 A CN 201780040865A CN 109479156 A CN109479156 A CN 109479156A
- Authority
- CN
- China
- Prior art keywords
- data flow
- time
- data
- terminal device
- client terminal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 108
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 title claims abstract description 100
- 238000004891 communication Methods 0.000 claims abstract description 19
- 230000001360 synchronised effect Effects 0.000 claims description 47
- 238000012545 processing Methods 0.000 claims description 25
- 230000000007 visual effect Effects 0.000 description 10
- 230000002123 temporal effect Effects 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
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]
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
- A63F13/65—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor automatically by game devices or servers from real world data, e.g. measurement in live racing competition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/764—Media network packet handling at the destination
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/0008—Synchronisation information channels, e.g. clock distribution lines
-
- 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/21805—Source of audio or video content, e.g. local disk arrays enabling multiple viewpoints, e.g. using a plurality of cameras
-
- 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/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- 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/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23614—Multiplexing of additional data and video streams
-
- 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/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
-
- 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
-
- 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/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
- H04N21/43072—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 of multiple content streams on the same device
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44008—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/004—Synchronisation arrangements compensating for timing error of reception due to propagation delay
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/25—Output arrangements for video game devices
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/30—Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
- A63F13/35—Details of game servers
- A63F13/355—Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/85—Providing additional services to players
- A63F13/86—Watching games played by other players
-
- 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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2383—Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
-
- 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/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
-
- 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/47—End-user applications
- H04N21/478—Supplemental services, e.g. displaying phone caller identification, shopping application
- H04N21/4781—Games
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
公开了一种由通信网络的系统执行的方法。该方法包括:对第一数据流和第二数据流进行编码(S1);分析(S5)与第一和第二数据流有关的时间数据,以确定第一和第二数据流之间的时间关系。该方法包括:创建包括第一和第二数据流之间的时间关系的偏移文件;以及发送(S9)第一数据流、第一时间元数据、第二时间元数据和偏移文件。该方法包括:接收(S10)第一数据流、第一时间元数据、第二时间元数据和偏移文件;以及对第一数据流进行串流(S11)。该方法包括:确定(S12)第二数据流的开始时间;获得(S13)第二数据流;以及对第二数据流进行串流(S14),使得第一和第二数据流同步。
Description
技术领域
本发明涉及用于游戏事件,特别是电子竞技锦标赛和类似事件的同步串流(streaming)的方法和节点。
背景技术
事件,特别是体育事件的直播串流已经出现数十年,并且特别常见于诸如足球世界杯或奥运会的大型事件。
诸如电子竞技锦标赛的游戏事件的直播串流相对而言年轻许多,因为计算机游戏和电子竞技近十年或二十年才开始越来越有影响力。
情况常常是这样,新现象带来它自己的一系列挑战,电子竞技和游戏锦标赛的串流也是如此。例如,与常规体育中常见的仅一个或几个视点相反,在计算机游戏中,存在多个引人关注的视点,能够在例如从同一事件观看多个视点时提供良好的观看者体验将是有益的。
发明内容
本发明的目的在于解决上面所概述的问题中的至少一些。可通过使用所附独立权利要求中限定的装置和系统来实现这些目的以及其它目的。
根据第一方面,提供了一种由通信网络的系统执行的用于至少两个数据流的同步串流的方法,该系统包括服务器以及可连接到服务器的至少一个客户端装置,所述至少两个数据流与同一事件有关。该方法包括以下步骤:由服务器对第一数据流和第二数据流进行编码;以及由服务器分析与第一和第二数据流有关的时间数据,以确定第一和第二数据流之间的时间关系。该方法还包括:由服务器创建包括第一和第二数据流之间的时间关系的偏移文件;以及由服务器发送第一数据流、第一时间元数据、第二时间元数据和偏移文件。该方法还包括:由客户端装置接收第一数据流、第一时间元数据、第二时间元数据和偏移文件;以及由客户端装置对第一数据流进行串流。该方法还包括:由客户端装置确定第二数据流的开始时间;由客户端装置获得第二数据流;以及由客户端装置对第二数据流进行串流,使得第一和第二数据流同步。
在一些实施方式中,分析与第一和第二数据流有关的时间数据的步骤包括:由服务器对第一和第二数据流进行串流;以及分析与第一和第二流有关的视觉数据,该视觉数据指示流的当前时间,或者指示事件时间。
在一些实施方式中,服务器包括编码服务器和同步服务器。根据实施方式,这些可位于同一实体中,并且其可以是单独的实体。此外,根据本公开的方法也可由基于云的系统执行。
在一些实施方式中,该方法包括不止两个数据流。在这样的实施方式中,各个流具有与其有关的时间元数据,但是在大多数实施方式中,仅创建一个偏移文件,该偏移文件详述了所有流的时间数据之间的所有关系。
通过使用这样的方法,可实现一个或多个客户端装置上的多个数据流的同步串流。通过具有详述流之间的关系的偏移文件并且结合数据流提供该偏移文件,可使与同一事件有关的多个流的串流同步。通过在服务器侧创建该偏移文件并将其提供给客户端,实现了也适用于各种不同数据流的解决方案。
根据可选实施方式,编码步骤还包括:由服务器生成与第一数据流有关的第一时间元数据;以及由服务器生成与第二数据流有关的第二时间元数据。通过在服务器处生成时间元数据,可使格式标准化,这使得在同一系统内流的同步更容易。
根据可选实施方式,由客户端装置确定第二数据流的开始时间的步骤还包括:由客户端装置评估客户端装置的能力;由客户端装置基于第一时间元数据来确定第一数据流的当前时间;以及由客户端装置基于第一数据流的当前时间和客户端装置的能力来确定第二流的开始时间。通过考虑流的当前时间和装置的能力二者,可准确地确定立刻以同步方式开始同步串流的合适时间窗口。
根据可选实施方式,该方法还包括:由客户端装置周期性地评估第一数据流和第二数据流的时间元数据,以确定流是否同步。通过周期性地评估流同步,可实现不会随时间而变差的更好的观看者体验。
根据可选实施方式,如果第一数据流和第二数据流没有同步,则该方法还包括以下步骤:确定第一流的当前时间;确定第二流的同步时间;确定使第二流与第一流同步的同步方法;以及执行所选同步方法以便实现第一流和第二流的同步串流。通过提供不同的同步选项,可实现更好的观看者体验。
根据第二方面,提供了一种由客户端装置执行的用于至少两个数据流的同步串流的方法,该客户端装置可连接到通信网络,该网络包括服务器,所述至少两个数据流与同一事件有关。该方法包括:获得第一数据流、与第一数据流有关的第一时间元数据、与第二数据流有关的时间元数据以及详述第一时间元数据和第二时间元数据之间的时间关系的偏移文件。该方法还包括:评估客户端装置的能力;确定第一数据流的当前时间;以及确定第二数据流的开始时间。该方法还包括:获得第二数据流;以及对第二数据流进行串流,使得第一和第二数据流同步。
根据第三方面,提供了一种由通信系统的服务器执行的用于至少两个数据流的同步串流的方法,该系统还包括至少一个客户端装置,所述至少两个数据流与同一事件有关。该方法包括以下步骤:对第一数据流进行编码;以及生成第一数据流的第一时间元数据,该第一时间元数据指示第一数据流的当前时间。该方法还包括:对第二数据流进行编码;以及生成第二数据流的第二时间元数据,该第二时间元数据指示第二数据流的当前时间。该方法还包括:对第一和第二数据流进行串流;以及分析与第一和第二数据流有关的时间数据,以便确定第一和第二数据流之间的时间关系。该方法还包括:创建包括第一和第二数据流之间的时间关系的偏移文件;以及将第一数据流、第一时间元数据、第二时间元数据和偏移文件提供给客户端装置。
根据第四方面,提供了一种用于至少两个数据流的同步串流的通信网络的系统,该系统包括服务器以及可连接到通信网络的至少一个客户端装置,所述至少两个数据流与同一事件有关。服务器包括:编码器,其用于对第一数据流和第二数据流进行编码;以及分析器,其用于分析与第一和第二数据流有关的时间数据,以便确定第一和第二数据流之间的时间关系。服务器还包括:处理装置,其被配置为创建包括第一和第二数据流之间的时间关系的偏移文件;以及发送器,其用于发送第一数据流、第二数据流、第一时间元数据、第二时间元数据和偏移文件。客户端装置包括:接收器,其用于获得第一数据流、第二数据流、第一时间元数据、第二时间元数据和偏移文件。客户端装置还包括:处理装置,其用于对第一数据流进行串流;以及确定单元,其用于由客户端装置确定第二数据流的开始时间。处理装置还被配置为对第二数据流进行串流,使得第一和第二数据流同步。
在一些实施方式中,系统中的各个实体可按照包括存储器的处理装置的形式实现。
根据第五方面,提供了一种用于至少两个数据流的同步串流的可连接到通信网络的客户端装置,该网络包括服务器,所述至少两个数据流与同一事件有关。客户端装置包括:接收器,其用于获得第一数据流、第二数据流、与第一数据流有关的第一时间元数据以及与第二数据流有关的第二时间元数据。客户端装置还包括:处理装置,其被配置为对第一数据流进行串流;以及评估器,其用于评估客户端装置的能力。客户端装置还包括:确定单元,其用于确定第一数据流的当前时间,并且用于确定第二数据流的开始时间。处理装置还被配置为对第二数据流进行串流,使得第一和第二数据流同步。
根据第六方面,提供了一种用于至少两个数据流的同步串流的通信网络的服务器,通信网络可连接到至少一个客户端装置,所述至少两个数据流与同一事件有关。服务器包括:编码器,其用于对第一数据流和第二数据流进行编码,并且用于生成第一数据流的第一时间元数据,该第一时间元数据指示第一数据流的当前时间。编码器还被配置为生成第二数据流的第二时间元数据,该第二时间元数据指示第二数据流的当前时间。服务器还包括:处理装置,其被配置为对第一和第二数据流进行串流;以及分析器,其用于分析与第一和第二数据流有关的时间数据,以确定第一和第二数据流之间的时间关系。处理装置(1015)还被配置为创建包括第一和第二数据流之间的时间关系的偏移文件,并且将第一数据流、第二数据流、第一时间元数据、第二时间元数据和偏移文件提供给客户端装置。
上述方面和实施方式可彼此自由地组合。存在与第一方面的可选实施方式对应的第二、第三、第四、第五和第六方面的可选实施方式。
附图说明
现在将作为示例参照附图更详细地描述解决方案,附图中:
图1从系统侧示出根据本公开的方法的流程图。
图2从客户端侧示出根据本公开的方法的流程图。
图3从服务器侧示出根据本公开的方法的流程图。
图4示出两个数据流的示图。
图5示出根据本公开的服务器。
图6示出根据本公开的客户端装置。
具体实施方式
在下文中,参照附图公开了解决方案的不同实施方式的详细描述。本文中的所有示例应被视为一般描述的一部分,因此可概括地按照任何方式组合。
贯穿本文献,术语发送节点和服务器可互换使用,并且术语接收节点和客户端装置也可互换使用。
简而言之,本公开涉及一个或多个客户端装置上的多个数据流的同步串流,特别是用于电子竞技和游戏事件的直播串流。在来自同一事件的多个不同视点要同时显示的情况下,多个流的同步显示特别重要,因为即使流之间的最轻微漂移也会对观看者体验有负面影响。
作为例示性示例,数据流是视频流,可选地还包括音频,其中,不同的数据流显示不同的视点,使得第一数据流显示第一视点,第二数据流显示第二视点,第三数据流显示第三视点,等等,其中,第一、第二和第三视点彼此不同。通常,视点是多人在线游戏的比赛的视点或视角。不同视点可以是例如不同玩家视点,其中,第一数据流显示多人在线游戏的比赛中的第一玩家的视点并且第二数据流显示第二玩家的视点。这些视点可以是多人游戏的直播比赛中的玩家的视点,或者其可以是已经结束的录制比赛中的视点。在不止两个数据流的同步的情况下,不同数据流通常包括不同视点,例如多人游戏内的不同玩家视点。在一些实施方式中,数据流的视点全部不同,使得没有两个数据流显示相同的视点。如本文所述,通过使多个数据流(例如,来自多人游戏的不同视频流)的显示同步的方法,可按照同步方式同时串流并显示来自游戏比赛的多个数据流,使得观看者可在没有任何延迟或漂移的情况下同时观看多个不同玩家视点。在一些实施方式中,按照同步方式串流牵涉关于游戏内定时器来同步数据流,使得在被串流的所有流中游戏内定时器相同。
现在看图1,将描述根据本公开的方法。该方法在包括编码服务器、同步服务器和至少一个客户端装置的通信网络中执行。在一些实施方式中,编码服务器和同步服务器是同一实体,并且将理解,在这样的实施方式中,不需要在这些节点之间接收和发送的步骤。贯穿说明书,在编码服务器和同步服务器之间发送和接收的步骤被视为可选的,并且在它们在同一机器中的情况下不需要。
该方法包括由编码服务器对第一和第二数据流进行编码的步骤S1。在大多数实施方式中,这牵涉首先对第一数据流进行编码,然后对第二数据流进行编码,但是在一些实施方式中,编码可同时进行。可选地,该方法可包括生成第一流的第一时间元数据并生成第二流的第二时间元数据。第一时间元数据与第一数据流有关,并且是表示该流的当前呈现时间的动态值。第二时间元数据与第二数据流有关,并且也是表示该流的当前呈现时间的动态值。
优选地,当生成第一和第二时间元数据时,元数据与已知基准点有关,例如,其可被表示成自午夜起已逝去的秒数,或者其可以是另一基准点,优选国际上容易获得的基准点。
在对第一和第二数据流进行编码,并且可选地生成与流有关的时间元数据之后,该方法可选地包括将第一和第二数据流发送到同步服务器的步骤S2。如所提及的,在一些实施方式中,同步服务器可与编码服务器位于同一机器中。
该方法可选地还包括由同步服务器获得第一和第二数据流以及第一和第二时间元数据的步骤S3。在一些实施方式中,这包括首先接收第一时间元数据,然后接收第一数据流,然后接收第二时间元数据,最后接收第二数据流。
该方法然后包括由同步服务器对第一和第二数据流进行串流的步骤S4。进行串流以便使得能够执行下一步骤,该步骤S5包括分析与第一和第二流有关的时间数据以便确定第一和第二数据流之间的在当前呈现时间方面的差异。在一些实施方式中,该步骤包括确定第一时间元数据和第二时间元数据之间的差异。在串流不止两个流的实施方式中,该步骤可牵涉确定各个流的时间元数据之间的差异。
在一些实施方式中,分析S5时间数据包括分析视觉时间数据,以便确定第一和第二流之间的时间关系。视觉时间数据牵涉流中指示时间的视觉上可识别的数据,例如详述游戏开始了多久的游戏内定时器。在这样的实施方式中,分析时间数据可包括将第一流的游戏内定时器与第二流的游戏内定时器进行比较。第一和第二数据流与同一事件有关,因此,两个流的游戏内定时器应该彼此匹配。
然而,在一些实施方式中,分析视觉时间数据可包括更高级的图像识别技术。例如,如果第一流和第二流是来自一轮游戏的不同视点,则分析视觉时间数据可牵涉比较来自第一和第二流的视频数据以便寻找可通过共同事件(例如,tick日志、当一轮开始时或者当团队在游戏中得分时、或者其它人为引入的事件)识别的交叠片段。
在分析时间数据之后,确定了第一和第二数据流之间的时间关系。该时间关系还与第一和第二时间元数据关联。例如,如果流的时间元数据为30000毫秒,并且同时,通过视觉上识别出流交叠来识别,第二流的时间元数据为2000毫秒,则如关于与各个流有关的时间元数据来表示的,第一和第二数据流之间的时间关系为28000毫秒。
该方法还包括由同步服务器创建偏移文件的步骤S6。如上所述,偏移文件以优于一毫秒的精度详述第一和第二流之间的时间关系。在包括不止两个流的实现方式中,可创建详述各个流之间的关系的单个偏移文件。通过使用这样的偏移文件,可实现第一和第二数据流的同步串流。
在创建S6偏移文件(由同步服务器执行)之后,该方法可选地包括由同步服务器将偏移文件发送到编码服务器的步骤S7,并且还可选地包括由编码服务器接收偏移文件的步骤S8。可选步骤可用在同步服务器和编码服务器为单独的实体的实施方式中。
在编码服务器和同步服务器是两个单独的实体的实施方式中,编码服务器和同步服务器之间的分离使得实体能够专注于一个任务,而非执行多个任务。此外,在编码服务器和同步服务器是两个单独的实体的实施方式中,步骤S1、S2、S8和S9可由编码服务器执行,并且步骤S3、S4、S4、S6和S7可由同步服务器执行。
该方法还包括由编码服务器将第一数据流、第一时间元数据、第二时间元数据和偏移文件发送到客户端装置的步骤S9。在一些实施方式中,该步骤还包括发送第二数据流,并且在其它实施方式中,第二数据流可在稍后的阶段发送,例如恰好在步骤S13之前。
在一些实施方式中,发送步骤包括对文件进行广播以使得各种不同类型的节点可访问它们,并且在一些实施方式中,发送步骤包括发送到单个节点。
该方法还包括由客户端装置接收第一数据流、偏移文件以及第一和第二时间元数据的步骤S10。在已接收这些文件之后,该方法包括对第一数据流进行串流的步骤S11。
通过对第一数据流进行串流S11,可确定S12第二数据流的合适开始时间,使得第一和第二数据流被同步串流。在一些实施方式中,确定开始时间的步骤S12包括评估客户端装置的能力,基于第一时间元数据来确定第一数据流的当前时间,然后基于第一数据流的当前时间和客户端装置的能力来确定第二流的开始时间。
在一些实施方式中,评估客户端装置的能力的步骤被分成两个部分:评估客户端装置的性能以及评估客户端装置的带宽。进行这些评估,因为在不同的客户端装置之间能力可不同,并且通过评估步骤,该方法适用于更多种装置。
在一些实施方式中,评估客户端装置的能力包括在短时间段内对第一和/或第二数据流进行串流。在一些实施方式中,可通过其它方法来评估客户端装置的能力,例如装置接收数据流所花费的时间、装置可以多快的速度加载网页或者先前可用的关于能力的其它数据。
在确定客户端装置的能力之后,该方法可包括确定第一数据流的当前时间,这通过分析第一时间元数据来完成。在一些实施方式中,这包括检查时间元数据的值。在一些实施方式中,这牵涉基于时间元数据来计算值。
在确定第一数据流的当前时间之后,并且可选地在评估客户端装置的能力之后,可在步骤S12中确定第二流的开始时间。这也通过使用提供给客户端装置的偏移文件来完成。如所述,偏移文件详述第一流和第二流之间的时间关系(在一些实施方式中,是流的视觉时间数据之间的关系)。偏移文件还可包括第一数据流的第一时间元数据和第二流的第二时间元数据之间的时间关系,例如其可声明与第一数据流有关的时间戳(例如,第一时间元数据)应该被调节25毫秒以便与第二数据流的时间戳交叠,流如果以这些调节串流的话,这继而将导致流同步。
通过了解装置能力,可针对这牵涉的差异进行调节。例如,与具有较慢的显卡和/或处理器和/或可用带宽较小的装置相比,具有较快的处理器和显卡并且还具有高带宽的装置可能能够更快地下载并串流数据流。
在为第二数据流确定开始时间(在一些实施方式中,可表示成第二时间元数据的值)之后,该方法包括从编码服务器获得第二数据流(例如,通过由客户端装置下载它)的步骤S13。通过在下载第二流之前使用第二时间元数据、装置能力、第一流的当前时间和偏移文件确定第二数据流的合适开始时间,可使下载的不必要的数据的量最小化。然而,在一些实施方式中,可已经在步骤S10获得第二数据流。
当已下载第二数据流时,剩下的是从在步骤S12中确定的开始时间对第二数据流进行串流的步骤S14,并且通过这样做,第一和第二数据流被同步串流。使用偏移文件,其详述数据流之间的时间关系。在具有不止两个流的实施方式中,通常使用详述各个流之间的时间关系的一个偏移文件。
在一些实施方式中,该方法还包括周期性地评估第一数据流的时间元数据和第二流的时间元数据,以便确定流是否仍同步的步骤。评估之间的时间跨度可根据诸如装置能力、带宽和所需精度的因素而不同。在一些实施方式中,每四秒执行一次评估。
在一些实施方式中,评估流是否同步包括确定第一流的当前时间,确定第二流的同步时间,并且如果其不同步,则确定用于使第二流与第一流同步的同步方法并执行所选同步方法以便实现第一流和第二流的同步串流。
在确定第一流的当前时间之后,还可例如通过分析第一和第二流的时间元数据及其关系来确定使第一流与第二流同步的合适时间。
然后,该方法可包括选择合适的同步方法。此步骤可根据诸如装置能力和第一和第二时间元数据以及第一和第二时间元数据之间的关系的因素按照各种方式进行。在一些实施方式中,可通过暂停一个流以使另一个流追上来实现同步。在一些实施方式中,可通过使一个流以比另一流更快的速率串流,直至流同步来实现同步。当然,这可通过加快一个或更多个流或者通过减慢一个或更多个流,或者通过这二者的组合来执行。在一些实施方式中,可通过停止一个或更多个流,然后在确定的时间同时开始播放两个或更多个流来实现同步,当流在暂停之后开始被串流时流同步。
在已决定同步方法之后,该方法还可包括执行所选同步方法以便实现第一数据流和第二数据流的同步串流。所选方法可包括暂停、倒回、快进、暂停以及其它类似操作。
在一些实施方式中,该方法包括不止两个数据流的同步串流,例如该方法可包括四个不同流的同时同步串流。具有四个流的方法的简短示例包括对所有四个流进行编码,对所有四个流进行串流,并分析与所有流有关的视觉时间数据,创建详述流的时间数据(和/或时间元数据)之间的关系的一个偏移文件。该方法然后包括发送第一数据流、偏移文件和所有四个流的元数据,然后对第一数据流进行串流。然后,该方法包括确定第二流和/或第二、第三和第四流中的每一个的开始时间。然后,该方法包括获得第二、第三和第四流,并以同步方式对所有四个流进行串流。
由客户端装置获得的步骤可包括从发送器接收数据,和/或其可包括主动下载数据,和/或以适合于本公开的其它方式获取必要数据。
现在看图2,将从客户端装置的视角描述根据本公开的方法的示例。客户端装置可以是计算机、智能电话、平板或者任何其它类似装置。
首先,在接收节点处与第一流以及至少第二流的元数据一起获得S100第一流。流与事件有关,事件具有开始时间。第一流时间元数据包括关于第一流如何与事件开始时间有关的信息,以及在一些实施方式中关于事件开始时间如何与基准时间有关的信息。基准时间可以是任何合适的时间,例如自午夜起逝去的时间量或者自流最后一次活动起逝去的时间。在此示例中,基准时间是自午夜起逝去的时间,因此,基准点是最近一天的开始。除了流和时间元数据之外,还接收偏移文件,其详述第一和第二数据流之间的时间关系。
优选地,从云服务器获得流,该服务器包括与事件有关的多个流、关于事件开始时间的信息以及各个流的时间元数据。流优选为与正在进行的事件有关的直播流,但是在一些实施方式中,流可以是预先录制的并且与历史事件有关。
然而,应该理解,在可选实施方式中,流的供应可按照其它合适的方式进行,例如在没有互联网连接的情况下从存储介质提供。将理解,对于正在进行的事件的直播流,这是不合适或者甚至不可能的,但是在预先录制的流的情况下是可能的。
当已经获得流时,由接收节点对流进行串流,这是为了允许步骤S110,步骤S110牵涉评估接收节点的能力。评估能力通常包括两个步骤:评估客户端装置的性能以及评估客户端装置的带宽。在一些实施方式中,评估步骤包括对第一和/或第二数据流进行串流,以得到关于装置的能力的更多信息。
评估客户端装置的性能包括确定主要与装置的硬件有关的装置的能力。例如,更好的处理能力和/或显卡将与更高的装置能力相关。软件也可能相关,但是程度较小。其它后台任务或程序也可能相关并且影响装置的能力。
评估客户端装置的带宽包括确定装置可以多快的速度发送数据和从其它连接的装置接收数据。这主要与装置的连接有关,该连接在大多数情况下是与互联网的连接,但是其也可以是与封闭局域网的连接。
评估S110客户端装置的能力的原因在于,不同的客户端装置具有不同的能力,为了实现可在各种不同类型的客户端装置上执行的方法,必须了解这些差异并相应地处理,以便为第二数据流设定适当的开始时间。通过知道客户端装置的能力之间的差异,结合偏移文件和时间元数据,可调节数据流的串流,使得可在具有不同能力的客户端装置上同步显示多个流。
在评估S110之后,该方法包括确定S120第一数据流的当前时间。基于第一时间元数据(可被视为时间戳)来确定正在客户端装置上串流的第一数据流的当前时间。在一些实施方式中,此步骤牵涉检查时间元数据的值,在其它实施方式中,其可包括从时间元数据计算时间。
如所提及的,获得第一数据流的步骤S100还包括获得与第一流有关的第一时间元数据。第一时间元数据包括关于事件的开始时间以及流的开始时间的信息。在一些情况下,这些是相同的时间,但是其也可不同。
举例来说,事件可以是游戏锦标赛,并且第一流可以是参加锦标赛的玩家的第一人称视图。该事件开始于下午1.15,但是在实际比赛开始之前其具有持续大约20分钟的预演。这牵涉实际游戏在下午1.35左右开始,然后第一流开始时间将比事件开始时间晚20分钟。在一些实施方式中,第一时间元数据的精度在五秒内。事件开始时间优选与通用时间基准(例如,自午夜起逝去的时间)有关。
在确定了第一流的当前时间之后,该方法还包括确定S130第二流的开始时间的步骤。第二流具有与其有关的第二时间元数据,并且该第二时间元数据由客户端装置在获得第一时间元数据的同时获得,或者在稍后独立出现(即,在步骤S100中获得)。
在一些情况下,第二流和第一流同时开始,这牵涉第一时间元数据和第二时间元数据非常类似或者甚至相同。然而,第一和第二时间元数据也可不同,例如当第一流是事件的预演,而第二流是事件中进行的第一轮比赛的游戏中视图。
确定第二流的开始时间的步骤S130不要求装置已获得第二流本身,只要其已获得与第二流有关的第二时间元数据以及偏移文件即可。然后基于在步骤S110中确定的装置能力、在步骤S100中获得的第二时间元数据以及也在步骤S100中获得的偏移文件来确定第二流的开始时间。
随后的步骤S140包括获得第二流。在获得S140第二流之前确定S130第二流的开始时间的原因在于,客户端装置不需要获得不必要的数据,这非常有利,因为其减小了所需的带宽,并且允许客户端快速地获得相关流数据以按照同步方式呈现。
在获得S140第二流之后,该方法还包括在客户端装置上对第二流进行串流。自步骤S100起已经在对第一流进行串流,因此,将按照第一和第二流从第二流的串流开始彼此同步的方式对第二流进行串流。这通过随第一流一起供应第一和第二时间元数据和偏移文件,结合评估装置能力、基于装置能力选择适当同步方法以及执行该同步方法以实现两个数据流之间的同步的步骤来实现。
在上述示例中,该方法被视为在接收多个流的一个客户端装置上执行。然而,当在第一客户端装置上对第一流进行串流并在第二客户端装置上对第二流进行串流,使得流可彼此同步时,该方法也适用。例如当能够访问多个客户端装置以用于显示数据流并且想要利用多个画面来观看同一事件时,这是有利的。
在这种情况下,当在多个客户端装置上应用该方法时,在所有相关客户端装置上执行评估S110客户端能力的步骤。客户端装置为了与同一事件有关的至少两个流的同步串流所需的信息是事件开始时间、流开始时间和装置能力。事件开始时间和流开始时间优选以与第一和第二流有关的第一和第二时间元数据的形式传送,并且该信息可与第一和第二流分开提供,这实现了更有效的通信,因为在各个步骤中不会发送超出需要的信息。还传送多个客户端装置的第一数据流的当前呈现时间,并且该信息可与第一和第二流分开提供。
现在看图3,现在将从发送节点的视角描述根据本公开的方法的示例。发送节点可被视为服务器,并且在一些实施方式中,服务器包括编码服务器和同步服务器。
在发送节点,该方法以事件的开始S200来开始。在此背景下,事件的开始是可对与事件有关的至少一个流进行串流的时间。
当事件已经开始时,该方法包括对与事件有关的至少第一和第二流进行编码S210。对至少第一和第二流进行编码S210的步骤包括针对各个流,渲染事件,抓取第一帧并对第一帧进行编码,然后针对后续帧重复这一过程。
在已经对至少第一和第二流进行编码之后,生成和/或确定流的时间元数据。生成S220流的时间元数据的步骤包括获得时间戳(优选地,网络时间协议时间戳)。该时间戳优选作为自预定基准时间起逝去的时间段来测量。在一些实施方式中,确定步骤S220包括作为自午夜起逝去的秒数测量自午夜起逝去的时间段。在一些实施方式中,时间元数据包括在流中,并且在一些实施方式中,各个流的时间元数据可以是与相应流分开的文件。
该方法还包括对第一和第二数据流进行串流的步骤S230,这是为了允许分析与流有关的时间数据的步骤S240。分析时间数据通常包括分析与流有关的视觉时间数据,例如可见于所有流中的事件定时器。
在已经分析时间数据之后,可确定第一和第二流之间的时间关系。在一些实施方式中,该时间关系可被表示成时间元数据之间的关系。
该方法还包括将流、其有关的时间元数据和偏移文件提供给客户端装置。将理解,各个流具有对应时间元数据,其用于允许在一个或多个客户端装置处的多个流的同步串流。
在一些实施方式中,时间元数据和流被一起提供,即,时间元数据被编码在流中。在其它实施方式中,时间元数据作为单独的文件与流一起发送。
现在看图4,现在将描述根据本公开的方法的可选步骤。
在一些实施方式中,要串流或者正在串流的各个数据流被分成片段,例如各为10秒的片段(图4所示的片段中就是这样)。显而易见,来自第一流S1的片段和来自第二流S2的片段彼此部分地交叠,但是其很少完全对准。
一般而言,流S1、S2仅需要在加载新数据时同步,这在图4中由流的片段之间的间隙表示(表示为1、2、3、4、5)。当一个片段已经在客户端装置处被下载并串流时,存在没有流将缓冲的时段,这可被视为安全时段。这些在图Z中表示为T1和T2。在这些时间段10、20中,只要流在这些时间段T1、T2的开始处同步,就不需要对所述流进行同步。然而,当要对流S1、S2中的任一个的新片段进行串流时,需要分析所述流以确定它们是同步的。在一些实施方式中,根据本公开的方法还包括监测第一和第二流的串流以检测所述流是否不同步。在一些实施方式中,该监测包括在流片段之间的各个时间段1、2、3、4、5周期性监测。
在一些实施方式中,当在单个客户端装置上对四个流进行串流时,存在用于使流同步的不同方法。如果四个流被认为不同步,则根据两个选项来分析它们。如果所有四个流均具有下载并缓冲的交叠片段,则在针对流之间的偏移调节之后,在交叠的下载缓冲片段的该时间窗口中选择同步时间。即,分析各个数据流以确定哪些片段被下载在客户端装置上。在一些实施方式中,客户端装置可在缓冲器中具有5分钟的先前数据,并且缓冲了即将到来的数据中的22秒的数据。使用与流有关的偏移文件来调节这些时间范围。如果流相对于另一流具有-5秒的偏移,则这描述了该流可被调节为由时间上向后退5分钟5秒的端点和时间上向前进17秒的端点限定的时间段。优选地,使用后向缓冲器中可用的最近时间和前向缓冲器中可用的最接近时间来创建数据流可交叠并同步的间隔。
在一些实施方式中,可能找不到具有缓冲的流片段的交叠时间窗口。在这些情况下,该方法可包括使用流的计算的下载时间和计算的开始时间以便创建时间窗口。然后,流可在此时间窗口之后到达适合于同步的点,并且剩余流然后可瞄准此时间窗口之后的时间点以便于彼此之间实现同步。
在包括超过两个数据流的一些实施方式中,该方法可包括确定用于使流彼此同步的合适时间。在这些实施方式中,选择一个流作为先导流。先导流通常是被认为最受观看者关注的流,这可基于例如与其它流相比显示在显示器的更大部分上,或者基于哪些流在已经缓冲的即将到来的时间段中具有最大动作。这可通过对流应用延迟来完成,这继而使得可在数据流中对即将到来的事件(可被视为动作元数据)加标记和标签。通过延迟并且还将动作元数据提供给客户端装置,在正在串流的流上发生动作之前,客户端可知道在给定时间用户对哪一流最感兴趣。
在已经选择先导之后,被认为具有较低优先级的流均与先导流同步。这可如在本文献的别处如具有两个流的情况下所描述那样完成,但是在多个流的情况下,超出第二流的各个附加流也需要类似地调节。
在一些实施方式中,该方法可包括使客户端装置与其它客户端装置同步。这可通过将所有相关客户端分在一个组中并且例如如上所述为各个客户端装置选择先导流来执行。当新的客户端连接到这一组客户端时,该新的客户端请求关于组中已有的各个客户端的先导流的时间元数据的信息。该新的客户端然后选择先导流的时间元数据的中值,并打算在该时间开始串流。
在各个后续的10秒间隔中,组中的各个客户端报告其当前时间元数据,并接收组中的各个其它客户端装置的当前时间元数据的报告。然后,各个客户端将独立于其它客户端计算所接收的值的中值,并利用该中值调整其先导流和其它流的串流,使得它们交叠。
在一些实施方式中,当估计流的启动时,例如当已经对第一数据流进行串流并且要开始第二数据流,使得第一和第二数据流同步时,使用I帧和P帧。I帧具有比P帧更多的信息,但是P帧可使用来自先前帧的数据来解压缩并且可比I帧压缩更多。B帧可使用先前帧和后来帧二者来进行数据参考,并且可实现帧的最高数据压缩量。画面组GOP的长度或持续时间可被视为两个I帧之间的时间。
如果流要从I帧开始串流,则这可相对快速地进行。然而,如果流要从GOP长度的末尾串流,则所有P帧必须首先被解码直至要串流的时刻,这花费相当多的时间和计算能力。可在如本文献中的别处所描述那样估计装置能力之后在客户端装置上计算该解码时间。现在将描述示例:
假设当直接从I帧串流时流具有50毫秒的启动时间。假设所有后续B帧每帧额外增加2毫秒。如果GOP长度为2秒的流要从I帧+1,5秒开始串流,则这假设在流开始串流之前花费(50毫秒+1,5秒*60FPS*1毫秒),即230毫秒。如果已经下载两个流,并且如果第一流已经以100秒的当前时间正串流,并且第二流要串流,则它们应该在100秒+230毫秒处相遇以便完全同步。
现在看图5,现在将描述根据本公开的服务器的架构。如先前描述的,在一些实施方式中,服务器可包括编码服务器和同步服务器。
服务器1000包括编码器1005,其用于对第一数据流和第二数据流进行编码,并且用于生成第一数据流的第一时间元数据,该第一时间元数据指示第一数据流的当前时间,并且用于生成第二数据流的第二时间元数据,该第二时间元数据指示第二数据流的当前时间。
服务器还包括分析器1010,其用于分析与第一和第二数据流有关的时间数据,以便确定第一和第二数据流之间的时间关系。在一些实施方式中,时间数据包括指示事件时间的视觉时间数据。
服务器包括:处理装置1015,其配置为创建包括第一和第二数据流之间的时间关系的偏移文件;以及发送器1020,其用于发送第一数据流、第二数据流、第一时间元数据、第二时间元数据和偏移文件。这些实体或者逻辑单元1000、1005、1010、1015、1020可在包括处理装置和存储器的单个机器中实现。在一些实施方式中,系统可以是分布式云解决方案。在大多数实施方式中,系统中的各个实体可按照包括存储器的处理装置的形式实现。
现在看图6,现在将描述根据本公开的客户端装置的架构。
客户端装置包括接收器2005,其用于获得第一数据流、第二数据流、第一时间元数据、第二时间元数据和偏移文件。客户端装置还包括:处理装置2010,其被配置为对第一数据流进行串流;以及确定单元2015,其用于由客户端装置确定第二数据流的开始时间。处理装置2010还被配置为对第二数据流进行串流,使得第一和第二数据流同步。客户端装置还包括评估器2020,其用于评估客户端装置的能力。这些实体或逻辑单元2005、2010、2015、2020可在包括处理装置和存储器的单个机器中实现。客户端装置可以是例如计算机、智能电话、平板或者适合于根据本公开的方法的任何其它类似装置。
尽管上面的描述包含多个特征,但是这些不应被解释为限制本文所描述的概念的范围,而是仅仅提供所描述的概念的一些示例性实施方式的例示。将理解,当前所描述的概念的范围完全涵盖对于本领域技术人员而言可变得显而易见的其它实施方式,因此不限制当前所描述的概念的范围。除非明确如此声明,否则对单数元素的引用并非旨在意指“一个且仅一个”,而是“一个或更多个”。此外,设备或方法不需要解决当前所描述的概念寻求解决的每一个问题,为此由随附权利要求涵盖。
Claims (11)
1.一种由通信网络的系统执行的用于至少两个数据流的同步串流的方法,所述网络包括服务器,并且所述系统还包括至少一个客户端装置,所述至少两个数据流与同一事件有关,其中,所述方法包括以下步骤:
由所述服务器对所述第一数据流和所述第二数据流进行编码(S1);
由所述服务器分析(S5)与所述第一数据流和所述第二数据流有关的时间数据,以确定所述第一数据流和所述第二数据流之间的时间关系;
由所述服务器创建(S6)包括所述第一数据流和所述第二数据流之间的所述时间关系的偏移文件;
由所述服务器发送(S9)所述第一数据流、所述第二数据流、所述第一时间元数据、所述第二时间元数据和所述偏移文件;
由所述客户端装置接收(S10)所述第一数据流、所述第一时间元数据、所述第二时间元数据和所述偏移文件;
由所述客户端装置对所述第一数据流进行串流(S11);
由所述客户端装置确定(S12)所述第二数据流的开始时间;
由所述客户端装置获得(S13)所述第二数据流;
由所述客户端装置对所述第二数据流进行串流(S14),使得所述第一数据流和所述第二数据流同步。
2.根据权利要求1所述的方法,其中,所述第一数据流和所述第二数据流是不同的视点。
3.根据权利要求1或2所述的方法,其中,所述编码还包括:
由所述服务器生成与所述第一数据流有关的第一时间元数据;以及
由所述服务器生成与所述第二数据流有关的第二时间元数据。
4.根据权利要求1至3中的任一项所述的方法,其中,由所述客户端装置确定所述第二数据流的开始时间的步骤还包括:
由所述客户端装置评估所述客户端装置的能力;
由所述客户端装置基于所述第一时间元数据来确定所述第一数据流的当前时间;
由所述客户端装置基于所述第一数据流的当前时间和所述客户端装置的能力来确定所述第二流的开始时间。
5.根据前述权利要求中的任一项所述的方法,其中,该方法还包括:
由所述客户端装置周期性地评估所述第一数据流和所述第二数据流的所述时间元数据,以确定所述第一数据流和所述第二数据流是否同步。
6.根据权利要求5所述的方法,其中,如果所述第一数据流和所述第二数据流不同步,则该方法还包括以下步骤:
确定所述第一流的当前时间;
确定所述第二流的同步时间;
确定用于使所述第二流与所述第一流同步的同步方法;以及
执行所选同步方法以实现所述第一流和所述第二流的同步串流。
7.一种由通信网络的客户端装置执行的用于至少两个数据流的同步串流的方法,所述网络还包括编码服务器和同步服务器,所述至少两个数据流与同一事件有关,其中,所述方法包括以下步骤:
获得(S100)第一数据流、与所述第一数据流有关的第一时间元数据、与第二数据流有关的时间元数据以及包括所述第一数据流和所述第二数据流之间的时间关系的偏移文件;
评估(S110)所述客户端装置的能力;
确定(S120)所述第一数据流的当前时间;
确定(S130)所述第二数据流的开始时间;
获得(S140)所述第二数据流;以及
对所述第二数据流进行串流(S150),使得所述第一数据流和所述第二数据流同步。
8.一种由通信网络的服务器执行的用于至少两个数据流的同步串流的方法,所述网络还包括至少一个客户端装置,所述至少两个数据流与同一事件有关,其中,所述方法包括以下步骤:
对第一数据流进行编码(S210);
生成(S220)所述第一数据流的第一时间元数据,该第一时间元数据指示所述第一数据流的当前时间;
对第二数据流进行编码(S210);
生成(S220)所述第二数据流的第二时间元数据,该第二时间元数据指示所述第二数据流的当前时间;
对所述第一数据流和所述第二数据流进行串流(S230);
分析(S240)与所述第一数据流和所述第二数据流有关的时间数据,以确定所述第一数据流和所述第二数据流之间的时间关系;
创建(S250)包括所述第一数据流和所述第二数据流之间的所述时间关系的偏移文件;
将所述第一数据流、所述第二数据流、所述第一时间元数据、所述第二时间元数据和所述偏移文件提供(S260)给所述客户端装置。
9.一种用于至少两个数据流的同步串流的通信网络的系统,该系统包括服务器(1000)以及能连接到所述通信网络的至少一个客户端装置,所述至少两个数据流与同一事件有关,其中,所述服务器包括:
编码器(1005),该编码器用于对所述第一数据流和所述第二数据流进行编码;
分析器(1010),该分析器用于分析与所述第一数据流和所述第二数据流有关的时间数据,以确定所述第一数据流和所述第二数据流之间的时间关系;
处理装置(1015),该处理装置被配置为创建包括所述第一数据流和所述第二数据流之间的所述时间关系的偏移文件;以及
发送器(1020),该发送器用于发送所述第一数据流、所述第二数据流、所述第一时间元数据、所述第二时间元数据和所述偏移文件;
并且其中,所述客户端装置包括:
接收器(2005),该接收器用于获得所述第一数据流、所述第二数据流、所述第一时间元数据、所述第二时间元数据和所述偏移文件;
处理装置(2010),该处理装置用于对所述第一数据流进行串流;以及
确定单元(2015),该确定单元用于由所述客户端装置确定所述第二数据流的开始时间;
其中,所述处理装置(2010)还被配置为对所述第二数据流进行串流,使得所述第一数据流和所述第二数据流同步。
10.一种用于至少两个数据流的同步串流的客户端装置,该客户端装置能连接到通信网络,该网络包括服务器,所述至少两个数据流与同一事件有关,其中,所述客户端装置包括:
接收器(2005),该接收器用于获得第一数据流、第二数据流、与所述第一数据流有关的第一时间元数据以及与所述第二数据流有关的时间元数据;
处理装置(2010),该处理装置被配置为对所述第一数据流进行串流;
评估器(2020),该评估器用于评估所述客户端装置的能力;以及
确定单元(2015),该确定单元用于确定所述第一数据流的当前时间,并且用于确定所述第二数据流的开始时间;
其中,所述处理装置(2010)还被配置为对所述第二数据流进行串流,使得所述第一数据流和所述第二数据流同步。
11.一种用于至少两个数据流的同步串流的通信网络的服务器(1000),该通信网络能连接到至少一个客户端装置,所述至少两个数据流与同一事件有关,其中,所述服务器包括:
编码器(1005),该编码器用于对第一数据流和第二数据流进行编码并且用于生成所述第一数据流的第一时间元数据,该第一时间元数据指示所述第一数据流的当前时间,并且该编码器用于生成所述第二数据流的第二时间元数据,所述第二时间元数据指示所述第二数据流的当前时间;
处理装置(1015),该处理装置被配置为对所述第一数据流和所述第二数据流进行串流;以及
分析器(1010),该分析器用于分析与所述第一数据流和所述第二数据流有关的时间数据,以确定所述第一数据流和所述第二数据流之间的时间关系;
其中,所述处理装置(1015)还被配置为创建包括所述第一数据流和所述第二数据流之间的所述时间关系的偏移文件并且将所述第一数据流、所述第一时间元数据、所述第二时间元数据和所述偏移文件提供给所述客户端装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE1650976A SE541208C2 (en) | 2016-07-04 | 2016-07-04 | Methods and nodes for synchronized streaming of a first and a second data stream |
SE1650976-2 | 2016-07-04 | ||
PCT/SE2017/050747 WO2018009131A1 (en) | 2016-07-04 | 2017-07-04 | Methods and nodes for synchronized streaming of a first and a second data stream |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109479156A true CN109479156A (zh) | 2019-03-15 |
CN109479156B CN109479156B (zh) | 2021-09-28 |
Family
ID=60912223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780040865.2A Active CN109479156B (zh) | 2016-07-04 | 2017-07-04 | 用于第一和第二数据流的同步串流的方法、装置及系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11283852B2 (zh) |
EP (1) | EP3479581B1 (zh) |
CN (1) | CN109479156B (zh) |
SE (1) | SE541208C2 (zh) |
WO (1) | WO2018009131A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115244939A (zh) * | 2019-11-20 | 2022-10-25 | 维斯克体育科技有限公司 | 用于数据流同步的系统和方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110545447B (zh) * | 2019-07-31 | 2022-08-09 | 视联动力信息技术股份有限公司 | 一种音视频同步的方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050259746A1 (en) * | 2004-05-21 | 2005-11-24 | Texas Instruments Incorporated | Clocked output of multiple data streams from a common data port |
CN101133617A (zh) * | 2005-02-11 | 2008-02-27 | 维迪亚特企业公司 | 移动环境中通过播放列表进行多文件串流服务的方法及其系统 |
US20080143875A1 (en) * | 2006-08-17 | 2008-06-19 | Scott Stacey L | Method and system for synchronous video capture and output |
CN101809906A (zh) * | 2007-08-30 | 2010-08-18 | 晶像股份有限公司 | 同步互连网络中的相关数据流 |
CN102341859A (zh) * | 2009-03-05 | 2012-02-01 | 诺基亚公司 | 来自多个内容源的内容的同步 |
CN103065152A (zh) * | 2012-12-10 | 2013-04-24 | 华中师范大学 | 一种视频中数字时钟的识别方法 |
CN103702013A (zh) * | 2013-11-28 | 2014-04-02 | 北京航空航天大学 | 一种用于多路实时视频的帧同步方法 |
CN103843356A (zh) * | 2011-09-30 | 2014-06-04 | 英特尔公司 | 用于多流音频/视频同步的系统、方法和计算机程序产品 |
CN104135695A (zh) * | 2013-05-03 | 2014-11-05 | 三星电子株式会社 | 图像发送设备、图像接收设备及其控制方法 |
CN104284173A (zh) * | 2013-07-10 | 2015-01-14 | 宏达国际电子股份有限公司 | 用于产生多视点视频的方法和电子装置 |
WO2015099409A1 (en) * | 2013-12-23 | 2015-07-02 | Lg Electronics Inc. | Apparatuses and methods for transmitting or receiving a broadcast content via one or more networks |
CN105247437A (zh) * | 2013-05-31 | 2016-01-13 | 索尼克Ip股份有限公司 | 同步多个ott流传输客户端 |
WO2016105322A1 (en) * | 2014-12-25 | 2016-06-30 | Echostar Ukraine, L.L.C. | Simultaneously viewing multiple camera angles |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4902935B2 (ja) * | 2003-05-08 | 2012-03-21 | ソニー株式会社 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
KR101130368B1 (ko) * | 2003-06-02 | 2012-03-27 | 디즈니엔터프라이지즈,인크. | 소비자용 비디오 플레이어를 위한 프로그램된 윈도우 제어 시스템 및 방법 |
US9456243B1 (en) * | 2003-06-06 | 2016-09-27 | Arris Enterprises, Inc. | Methods and apparatus for processing time-based content |
US9319720B2 (en) * | 2005-12-13 | 2016-04-19 | Audio Pod Inc. | System and method for rendering digital content using time offsets |
US9386064B2 (en) * | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US7805373B1 (en) * | 2007-07-31 | 2010-09-28 | Qurio Holdings, Inc. | Synchronizing multiple playback device timing utilizing DRM encoding |
EP2043323A1 (en) * | 2007-09-28 | 2009-04-01 | THOMSON Licensing | Communication device able to synchronise the received stream with that sent to another device |
US20090276820A1 (en) * | 2008-04-30 | 2009-11-05 | At&T Knowledge Ventures, L.P. | Dynamic synchronization of multiple media streams |
US8549575B2 (en) * | 2008-04-30 | 2013-10-01 | At&T Intellectual Property I, L.P. | Dynamic synchronization of media streams within a social network |
EP2529531B1 (en) * | 2010-01-27 | 2019-10-09 | Koninklijke KPN N.V. | Method, system and device for synchronization of media streams |
CA2943957C (en) * | 2010-05-04 | 2017-10-03 | Avery Li-Chun Wang | Methods and systems for synchronizing media |
KR20120084252A (ko) * | 2011-01-19 | 2012-07-27 | 삼성전자주식회사 | 복수의 실시간 전송 스트림을 수신하는 수신 장치와 그 송신 장치 및 멀티미디어 컨텐츠 재생 방법 |
JP2012244411A (ja) * | 2011-05-19 | 2012-12-10 | Sony Corp | 画像データ送信装置、画像データ送信方法および画像データ受信装置 |
EP3399764A1 (en) * | 2012-03-29 | 2018-11-07 | Koninklijke KPN N.V. | Marker-based inter-destination media synchronization |
EP2704449A1 (en) * | 2012-08-30 | 2014-03-05 | Thomson Licensing | Rendering time control |
EP3047653B1 (en) * | 2013-09-20 | 2020-05-06 | Koninklijke KPN N.V. | Correlating timeline information between media streams |
US9414100B2 (en) * | 2014-03-31 | 2016-08-09 | Arris Enterprises, Inc. | Adaptive streaming transcoder synchronization |
KR101805537B1 (ko) * | 2014-04-18 | 2017-12-07 | 엘지전자 주식회사 | 방송 신호 송신 장치, 방송 신호 수신 장치, 방송 신호 송신 방법, 및 방송 신호 수신 방법 |
US9532099B2 (en) * | 2015-03-24 | 2016-12-27 | Intel Corporation | Distributed media stream synchronization control |
US9686576B2 (en) * | 2015-05-08 | 2017-06-20 | Istreamplanet Co. | Coordination of video stream timing in cloud-based video streaming system |
US9344751B1 (en) * | 2015-05-08 | 2016-05-17 | Istreamplanet Co. | Coordination of fault-tolerant video stream processing in cloud-based video streaming system |
-
2016
- 2016-07-04 SE SE1650976A patent/SE541208C2/en unknown
-
2017
- 2017-07-04 EP EP17824633.6A patent/EP3479581B1/en active Active
- 2017-07-04 CN CN201780040865.2A patent/CN109479156B/zh active Active
- 2017-07-04 WO PCT/SE2017/050747 patent/WO2018009131A1/en unknown
-
2018
- 2018-12-03 US US16/207,278 patent/US11283852B2/en active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050259746A1 (en) * | 2004-05-21 | 2005-11-24 | Texas Instruments Incorporated | Clocked output of multiple data streams from a common data port |
CN101133617A (zh) * | 2005-02-11 | 2008-02-27 | 维迪亚特企业公司 | 移动环境中通过播放列表进行多文件串流服务的方法及其系统 |
US20080143875A1 (en) * | 2006-08-17 | 2008-06-19 | Scott Stacey L | Method and system for synchronous video capture and output |
CN101809906A (zh) * | 2007-08-30 | 2010-08-18 | 晶像股份有限公司 | 同步互连网络中的相关数据流 |
CN102341859A (zh) * | 2009-03-05 | 2012-02-01 | 诺基亚公司 | 来自多个内容源的内容的同步 |
CN103843356A (zh) * | 2011-09-30 | 2014-06-04 | 英特尔公司 | 用于多流音频/视频同步的系统、方法和计算机程序产品 |
CN103065152A (zh) * | 2012-12-10 | 2013-04-24 | 华中师范大学 | 一种视频中数字时钟的识别方法 |
CN104135695A (zh) * | 2013-05-03 | 2014-11-05 | 三星电子株式会社 | 图像发送设备、图像接收设备及其控制方法 |
CN105247437A (zh) * | 2013-05-31 | 2016-01-13 | 索尼克Ip股份有限公司 | 同步多个ott流传输客户端 |
CN104284173A (zh) * | 2013-07-10 | 2015-01-14 | 宏达国际电子股份有限公司 | 用于产生多视点视频的方法和电子装置 |
CN103702013A (zh) * | 2013-11-28 | 2014-04-02 | 北京航空航天大学 | 一种用于多路实时视频的帧同步方法 |
WO2015099409A1 (en) * | 2013-12-23 | 2015-07-02 | Lg Electronics Inc. | Apparatuses and methods for transmitting or receiving a broadcast content via one or more networks |
WO2016105322A1 (en) * | 2014-12-25 | 2016-06-30 | Echostar Ukraine, L.L.C. | Simultaneously viewing multiple camera angles |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115244939A (zh) * | 2019-11-20 | 2022-10-25 | 维斯克体育科技有限公司 | 用于数据流同步的系统和方法 |
CN115244939B (zh) * | 2019-11-20 | 2024-09-24 | 维斯克体育科技有限公司 | 用于数据流同步的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3479581A1 (en) | 2019-05-08 |
WO2018009131A1 (en) | 2018-01-11 |
SE541208C2 (en) | 2019-04-30 |
US11283852B2 (en) | 2022-03-22 |
EP3479581A4 (en) | 2019-06-19 |
US20190104165A1 (en) | 2019-04-04 |
EP3479581B1 (en) | 2020-12-02 |
SE1650976A1 (en) | 2018-01-05 |
CN109479156B (zh) | 2021-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111587137B (zh) | 检测和补偿游戏系统中的显示滞后 | |
CN104735470B (zh) | 一种流媒体数据传输方法及装置 | |
EP4037787B1 (en) | Synchronization and offset of vsync between cloud gaming server and client | |
CN105245977B (zh) | 一种多组摄像头同步直播的方法 | |
US10148722B2 (en) | Methods and nodes for synchronized streaming of a first and a second data stream | |
US10530825B2 (en) | Catching up to the live playhead in live streaming | |
EP2800365B1 (en) | Video playback system | |
CN109479156A (zh) | 用于第一和第二数据流的同步串流的方法和节点 | |
US11259069B1 (en) | Synchronized video player | |
CN107948703B (zh) | 播放进度同步方法及装置 | |
CN109474648B (zh) | 一种虚拟现实交互的补偿方法及服务端设备 | |
CN107852523B (zh) | 用于在终端之间同步媒体渲染的方法、终端和设备 | |
CN115412736A (zh) | 多路视频的播放控制方法、装置、电子设备及存储介质 | |
CN108259924A (zh) | 赛事实时数据展示方法、终端设备、视频系统及存储介质 | |
CN108028968A (zh) | 视频编辑器服务器、视频编辑方法、客户端装置及控制客户端装置的方法 | |
US12121803B2 (en) | Dynamic client buffering using server and client VSYNC signals of received video frames for cloud gaming | |
JP2005167668A (ja) | 複数映像時刻同期表示端末、複数映像時刻同期表示方法、プログラム、および記録媒体 | |
EE et al. | Published |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |