CN107409138B - 用于多设备播出的平台 - Google Patents
用于多设备播出的平台 Download PDFInfo
- Publication number
- CN107409138B CN107409138B CN201680019391.9A CN201680019391A CN107409138B CN 107409138 B CN107409138 B CN 107409138B CN 201680019391 A CN201680019391 A CN 201680019391A CN 107409138 B CN107409138 B CN 107409138B
- Authority
- CN
- China
- Prior art keywords
- data
- network
- modules
- media devices
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 12
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 230000003044 adaptive effect Effects 0.000 abstract description 8
- 238000009877 rendering Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000001934 delay Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 101000741965 Homo sapiens Inactive tyrosine-protein kinase PRAG1 Proteins 0.000 description 4
- 102100038659 Inactive tyrosine-protein kinase PRAG1 Human genes 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005562 fading Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- 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/80—Responding to QoS
-
- 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/762—Media network packet handling at the source
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/062—Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
- H04J3/0632—Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
提供用于数据设备的平台,其中基于有关平台在其上操作的网络的实时数据、在设备之间通信的数据的源类型(例如,编解码器选择)、设备的分组/架构或其任何组合,自适应地更新平台的架构和运行时间参数。因此,平台能够在变化的、不断改变的条件下支持多种不同类型和配置的数据设备。平台为内容管理和渲染系统提供灵活的架构,其中经由网络连接的多个数据设备在系统的操作中各自充当独特的角色。在系统处于主动操作的同时,数据设备能够在不同的角色之间动态切换。平台还包括自适应延迟能力以及自适应编解码器选择能力。
Description
背景技术
媒体数据(例如,音频/视频内容)有时在网络上的多个模块之间共享。为了充分利用这种媒体共享安排,希望拥有能够快速适应网络条件和配置变化的数据模块平台。
发明内容
本概要以简化形式介绍了一些概念,以便对本公开的某些方面提供基本的了解。本概要不是对本公开的广泛概述,并且不打算标识本公开的关键或决定性的要素或勾勒本公开的范围。本概要仅提出本公开的一些概念作为下文提供的详细描述的前序。
本公开总体上涉及用于管理和渲染数据的方法和系统。更具体地,本公开的方面涉及用于媒体设备的灵活和实时自适应平台。
本公开的一个实施例涉及包含与至少一个网络连接的多个数据模块的系统,其中每一个数据模块被配置为:根据确定的操作角色进行操作,其中所确定的操作角色是一起限定一组所述数据模块的多个操作角色中的一个,并且其中每一个操作角色的特征在于由所述组内的数据模块执行的特定功能;以及在所述系统基于与所述网络、与所述数据模块和/或与其它数据模块相关联的一个或更多个参数进行主动操作的同时,在不同的操作角色、不同的数据模块组、或二者之间切换。
在另一个实施例中,所述系统中的多个数据模块中的每一个被配置为:从数据源接收数据;将接收的数据发送到所述数据模块组内的每一个其它数据模块;以及在为所述数据模块组设立的预设时间中重放来自所述数据源的数据。
在另一个实施例中,根据第一操作角色操作的所述组中的数据模块被配置为:设立用于重放来自所述数据源的数据的预设时间;以及将所述预设时间传达给所述组中的其它数据模块,致使由所述数据模块组的数据重放是同步的。
在另一个实施例中,根据第一操作角色操作的数据模块被配置为:从数据源接收数据;为所述数据模块组中的每一个其它数据模块,基于与所述数据模块的连接级别和/或所述数据模块的能力,确定向所述数据模块发送的所接收的数据的格式;以及将所述数据以针对相应的数据模块确定的格式发送到每一个其它数据模块。
在又一个实施例中,与所述网络、与所述数据模块和/或与其它数据模块相关联的所述一个或更多个参数,其是数据模块在不同操作角色、不同数据模块组或二者之间切换的基础,包括以下一个或更多个:所述网络的状况,所述网络的配置,所述数据模块的能力,以及所述其它数据模块的能力。
在再一个实施例中,由根据第一操作角色操作的数据模块确定向所述组中每一个其它数据模块发送的接收到的数据的格式基于以下一项或更多项:不同数据模块之间的网络容量,不同数据模块之间的物理接近度,每一个数据模块的硬件能力,以及要传输的数据的可用许可。
在另一个实施例中,根据第一操作角色操作的数据模块被配置为:确定与所述数据模块组中的每一个其它数据模块相关联的延迟;以及基于与每一个其它数据模块相关联的所述确定的延迟,修改应用于所述组中不同数据模块之间数据播出的公共延迟。
在另一个实施例中,根据第一操作角色操作的数据模块被配置为:从根据第二操作角色操作的组中的数据模块接收聚合延迟值(aggregated delay values);从所述聚合延迟值确定最大延迟;以及基于所述确定的最大延迟修改应用于不同数据模块之间数据播出的公共延迟。
在又一个实施例中,从根据第二操作角色操作的数据模块接收的所述聚合延迟值包括与根据第三操作角色操作的组中的数据模块相关联的延迟值,其中第三操作角色的特征在于播出来自所述数据源的数据。
本公开的另一个实施例涉及一种计算机实现的方法,所述方法包含:由数据模块确定所述数据模块在通过网络彼此通信的一组数据模块内操作的操作角色,其中所确定的操作角色是一起限定所述数据模块组的多个操作角色中的一个,并且其中每一个操作角色由所述组内的数据模块执行的特定功能表征;由所述数据模块根据所确定的操作角色操作;以及在操作的同时,基于与所述网络、与所述数据模块和/或与所述组中的其它数据模块相关联的一个或更多个参数,切换到不同的操作角色、不同的数据模块组或二者。
在另一个实施例中,与所述网络、与所述数据模块和/或与其它数据模块相关联的所述一个或更多个参数,其是切换到不同操作角色、不同的数据模块组或二者的基础,包括以下一个或更多个:所述网络的状况,所述网络的配置,所述数据模块的能力,以及所述其它数据模块的能力。
在另一个实施例中,根据所述方法中所述确定的操作角色操作包括以下一项或更多项:从数据源接收数据;将所述接收的数据发送到所述数据模块组内的一个或更多个其它数据模块;以及在为数据模块组设立的预设时间内重放来自所述数据源的数据。设立所述预设时间的效果是,由所述组内的数据模块重放数据能够按同步的方式发生,这提高了感知的播出质量。
在一种或更多种其它实施例中,在本文中描述的方法和系统可以可选地包括一个或更多个以下附加特征:用于将所接收的数据发送到每一个其它数据模块的确定的格式是作为原始数据或作为编码数据;与所述组中的每一个其它数据模块相关联的延迟是网络延迟和所述数据模块内部的处理延迟之一或二者;从所述数据源接收的数据是音频数据;所述多个数据模块中的每一个是独立的音频设备;所述多个数据模块中的至少一个是独立的音频设备;和/或所述音频设备是扬声器设备。
应当注意,在本文中公开的一些或全部处理器和存储器系统的实施例也可以被配置为执行某些或所有上述公开的方法实施例。另外,某些或所有上述公开的方法的实施例也可以表示为在暂时或非暂时的处理器可读存储介质例如光学或磁存储器上体现的指令,或者表示为经由通信网络例如因特网或电话连接提供给处理器或数据处理设备的传播信号。
根据下面给出的详细描述,本公开的方法和系统的进一步适用范围将变得显而易见。然而,应该理解,所述详细描述和具体例子,在表明所述方法和系统的实施例的同时,只作为说明给出,因为根据该详细描述,在本文中公开的概念的精神和范围内的各种改变和修改对本领域技术人员而言将变得显而易见。
附图说明
通过结合所附权利要求和附图研究以下详细描述——它们全都构成本说明书的一部分,本公开的这些和其它目的、特征和特性对于本领域技术人员将变得更加显而易见。在图中:
图1是根据在本文中描述的一种或更多个实施例示出示例性内容管理系统和周围网络环境的框图。
图2是根据在本文中描述的一种或更多个实施例,示出用于在多设备系统中分发用于播出的媒体数据的示例性数据流的框图。
图3是根据在本文中描述的一种或更多个实施例,示出用于确定多设备系统中的延迟的示例性数据流的数据流程图。
图4是根据在本文中描述的一种或更多个实施例,示出用于为数据模块在网络上播出数据提供灵活和自适应系统而布置的示例性计算设备的框图。
在本文中提供的标题仅为方便起见,并不一定影响本公开所要求保护的范围或含义。
在所述图中,为了便于理解和方便起见,相同的参考数字和任何缩略词标识具有相同或相似结构或功能性的元件或动作。所述图将在以下详细描述的过程中详细地描述。
具体实施方式
现在将描述本公开的方法和系统的各种示例和实施例。以下描述提供了对这些示例的全面理解性和实现性描述的具体细节。然而,相关领域的技术人员将理解,可以在没有这些细节中的许多的情况下实践在本文中描述的一种或更多个实施例。同样地,相关领域的技术人员也将理解,本公开的一种或更多个实施例能够包括本文中未详细描述的其它特征。另外,一些众所周知的结构或功能可以不在下面详细地显示或描述,以避免不必要地使相关描述变得模糊。
本公开的实施例涉及一种用于媒体设备的平台,其中所述平台的架构和运行时间参数基于实时数据自适应地更新。这允许所述平台在不同的、不断改变的网络条件和网络配置下支持多种不同类型和配置的媒体设备(例如,音频输出设备,例如扬声器)。例如,连接的设备的数目和/或类型能够动态地更改,并且所述平台可以实时地适应这样的改变。
如将在下面更详细描述的,本公开的方法和系统提供了灵活的架构,其中每一个数据模块(例如,扬声器)在所述系统的操作中发挥独特的作用(例如,具有特定的职责、权限和/或能力)。所述架构的灵活性部分基于在所述系统处于主动操作时,所述数据模块在不同的角色(例如,操作角色)之间动态切换的能力。作为架构灵活性的一个例子,在一个实施例中,具有执行数据播出的角色的数据模块,当向系统添加其它数据模块时、当网络条件改变(例如劣化或改善)时、或当系统用户修改所述数据模块的角色时,可以动态切换到将数据转发到所述其它数据模块的角色。根据在本文中描述的一种或更多个实施例,所述方法和系统还可以包括自适应延迟能力,以及在音频的情形下,自适应编解码器选择能力。
例如,根据至少一个实施例,所述平台和系统能够基于各种配置和网络特性,在系统运行时修改/更新应用于在不同数据模块之间数据播出的公共延迟。另外,在本文中描述的方法和系统能够随时间获悉网络质量(例如,通过在不同拓扑下定期收集统计数据和改进网络知识)。关于本公开的方法和系统的这些和其它特征的进一步细节将在随后的章节中提供。
根据本公开的一种或更多个实施例,所述系统也能够自适应地选择要用于数据传输和渲染中的最合适和有效的编解码器。例如,在主动操作期间,所述数据模块可以传输以下任何一种:(i)编解码器数据(例如,与例如正在发送的音频的类型/格式相关的源音频);(ii)原始PCM(可以可选后编码和/或后处理);(iii)用有损编解码器进行编码(其中可选临时后解码处理);和(iv)用无损编解码器进行编码(其中可以可选临时后解码处理)。用上述信息,可以利用包含为一个或更多个以下示例性参数确定/分配的分数的成本函数来选择编解码器:(i)网络连接性/容量;(ii)系统架构(例如,在同一区域/场所(例如,房间)内,原始PCM是优选的,而在房间之间它是可选的(例如,因为在处理流水线中存在较高的错配容忍度));(iii)硬件(HW)能力(例如,CPU使用率);和(iv)可用许可。应当注意,根据至少一个实施例,始终优选发送原始PCM;然而,在不同房间(例如,访问接入点)之间,所述网络(例如,可用带宽)可能不总是允许这样。
例如,根据本公开的至少一个实施例,经由Wi-Fi或以太网彼此连接的多个数据模块(例如,媒体和/或音频设备)可以被配置用于在内容管理系统内传送同步音频重放。
如将在下面更详细描述的,本公开的方法和系统被设计为实现和维持不同数据模块(例如,音频设备)之间的高精度同步(例如,<20微秒(μs))。根据至少一个实施例,所述系统中的所有时钟均通过本领域技术人员已知的基于硬件和/或软件的解决方案来同步。
在本公开的方法和系统的示例性应用中,用户被给予下述的能力:将从音频源可获得的音频内容(例如,存储在用户设备上的音频内容、与URL相关联并可通过所述用户设备访问的音频内容等)播放到共享公共无线或有线网络的音频设备的任何组合。例如,在多室房屋的情形下,可以在所述房屋的每一个房间(例如,客厅、餐厅、卧室等)中设置扬声器系统,并且形成给定房间的系统的扬声器可以在整个所述房间的各个位置。根据本文所述的一种或更多个实施例,音频将在用户选择的所有音频设备上同步播出。然而,应当理解,本文中描述的方法和系统可以适用于要求任何数据类型在网络上不同模块之间时间同步的任何系统,并因此本公开的范围不以任何方式受到上述示例性应用的限制。
图1是在其中可以实现本文中描述的一种或更多个实施例的示例性内容管理系统100。数据源110(例如,内容源例如音频源(例如,在线流音乐或视频服务、特定URL等))可以通过网络105(例如,任何种类的网络,包括例如以太网、无线LAN、蜂窝网络等)连接到数据模块115。从数据源110获得的内容(例如,音频、视频、数据、混合媒体等)可以由数据模块115播出和/或由数据模块115通过网络125(例如,无线LAN或以太网)传送到数据模块120a-120n中的一个或更多个(其中“n”是任意数字)。类似地,在数据模块120a-120n处获得的内容可以由数据模块120a-120n播出和/或通过网络135传送到对应的数据模块130a-130m、数据模块140a-140p或其某些组合(其中“m”和“p”两个都是任意数字)。还应注意,网络125和135可以是相同或不同的网络(例如,房屋内的不同WLAN、一个是无线网络并且另一个是有线网络等等)。
控制客户端150,其将在下面更详细描述,可以通过网络105与数据模块115通信。根据至少一个实施例,控制客户端150可以通过将本地数据从所述控制客户端镜像到数据模块115来充当数据源(例如,数据源110)。
根据一种或更多个实施例,内容管理系统100中的数据模块(例如,数据模块115、数据模块120a-120n和数据模块130a-130m)可以分成数据模块组。每组数据模块可以分成一个或更多个系统,其又可以包括一个或更多个单独的数据模块。根据至少一个实施例,用户可以设置组和系统配置。
组内的数据模块可以根据不同的角色进行操作。例如,组内的数据模块可以分为播放器模块、跟随器模块和渲染器模块(在本文中有时分别简称为“播放器”、“跟随器”和“渲染器”)。所述播放器、跟随器和渲染器的示例性特征和功能性将在下面更详细地描述。根据至少一个实施例,本公开的方法和系统允许多个配置和播放器/跟随器/渲染器组合,并进一步允许这样的配置和/或组合被动态修改(例如,在系统运行时可由用户和/或系统调适或调整)。如下面进一步描述,最终配置(播放器/跟随器/渲染器)基于分组、音频源/类型、网络条件等确定。
所述播放器作为一组数据模块的“主机”(例如,数据模块115可以是图1中显示的示例性内容管理系统100中包含数据模块115、数据模块120a-120n和数据模块130a-130m的示例组中的播放器)。例如,所述播放器可以从源(例如,数据源110)提取(例如,检索、获得等)数据(例如,音频),并将所述数据转发到所述组中的其它数据模块(例如,扬声器)。由所述播放器获得的数据的源可以是,例如,在线音频/视频流服务或网站、便携式用户设备(例如,蜂窝电话、智能电话、个人数字助理、平板电脑、膝上型计算机、智能电视等)、包含用于存储音频/视频数据的存储器的存储设备(例如,独立硬盘驱动器)等。播放器也可以被配置为将从所述源获得的数据分包,并通过网络将原始或编码的数据包发送给所述组中的数据模块。根据至少一个实施例,所述播放器可以被配置为基于网络的可用带宽和/或每一个特定数据模块的能力(例如,每一个跟随器或渲染器的能力)来确定是否将原始或编码数据包发送到所述组中的其它数据模块。例如,这可以是所述系统中的一个或更多个设备(例如,扬声器)不能解码所有的编解码器时的情况。此外,在涉及劣化的(例如,有限的)网络条件(例如,低带宽)的情景下,所述播放器可能难以将原始数据发送到所述组中的其它数据模块。在这样的情景下,所述播放器可以改为将编码数据发送到其它模块。在其它情景下,所述系统可以被配置为在播放器进行初始解码之后重新编码所述数据。然而,还应当理解,由所述播放器原始接收到的数据不一定在所有情况下都被编码(因此可以没有由所述播放器执行的初始解码)。
除了上述播放器的示例性特征和功能性之外,根据本公开的一种或更多个实施例,所述播放器也可以具有时钟同步控制和延迟管理能力,以及执行与转码有损/无损编解码器和/或音频处理相关联的各种操作的能力。时钟同步控制和延迟管理能力包括,例如,设立用于从源重放数据的预设时间,并将所述预设时间传达给组中的其它数据模块,使得所述数据模块组重放所述数据处于同步状态。应当理解,取决于所述组配置的细节,播放器也可以是跟随器和/或R渲染器。
所述跟随器是本地数据模块系统的主管(例如,数据模块120a-120n可以是在图1中显示的示例性内容管理系统100中由特定数据模块130a-130m组成的不同数据模块系统中的跟随器)。所述跟随器可以从播放器接收数据并将所述数据(例如,转发)扇出到在它们相应的系统中连接的渲染器。根据一种或更多个实施例,所述跟随器可以通过网络接收来自所述播放器的原始或编码数据包,并将所述数据包发送到所述系统中的渲染器。所述跟随器可以按照与从所述播放器接收到的数据包相同的格式将所述数据包发送到所述渲染器,或者所述跟随器可以解析所述数据包,并在重新包装用于发送到所连接的渲染器的数据之前对接收到的数据执行各种操作(例如,转码、音频处理等)。应该注意的是,跟随器也可以是渲染器。
根据本公开的至少一个实施例,所述渲染器是所述内容管理系统中的数据流水线的终点(例如,图1中显示的示例性内容管理系统100中的数据模块130a-130m)。例如,所述渲染器可以被配置为播出从主管其相应系统的跟随器接收的数据。在播出数据之前,所述渲染器可以对从所述跟随器接收的数据执行附加的本地处理(例如,在音频情形下的淡入/淡出)。
如上所述,内容管理系统中的一个或更多个所述数据模块可以与连接到网络的控制客户端进行通信和/或从其接收控制命令(例如,在图1中显示的示例性内容管理系统100中,控制客户端150可以通过网络105与数据模块115通信)。所述控制客户端不是物理数据模块(例如,不是物理扬声器),而改为可以是能够控制和发送消息给所述播放器的设备(例如,蜂窝电话、智能电话、个人数字助理、平板电脑、膝上型计算机、智能电视等)。例如,控制客户端可以用于将各种控制消息(例如,播放、暂停、停止、音量更新等)中继到所述播放器。根据一种或更多个实施例,所述控制客户端也可以充当所述内容管理系统的数据源(例如,数据源110),例如通过将本地数据从所述控制客户端镜像到所述播放器。所述控制客户端可以使用与所述内容管理系统中的数据模块相同的通信协议。
如将在下面进一步描述的,本公开的方法和系统可以利用可靠的基于UDP的传输协议、传输控制协议(TCP)或其组合用于在所述内容管理系统中的数据模块之间进行数据传输。根据一种或更多个实施例,所使用的数据传输协议可以分成两层。所述协议的第一层可以包括,例如,处理加密和认证的DTLS传输协议。至少在音频数据的情形下,第二层可以传送以下非限制性示例信息:(i)音频配置和控制;(ii)音频数据;(iii)ACK/NACK(例如,所有丢失的数据包都可以被NACK以确保保真度);(iv)延迟更新;(v)时钟同步信息;和/或(vi)关于网络的统计信息(例如,端到端延迟、往返时间(RTT)、丢包等)。
根据一种或更多个实施例,本公开的内容网络和平台可以被建造成树结构,树结构是管控数据模块之间的连接的DTLS协议的产物。这样的树结构中的基本组件是主机/客户端对,由此客户端例示连接,而所述主机基于所提供的密钥可以或可能不接受该连接。每一个主机可以具有多个客户端(其对应于,例如,具有多个跟随器/渲染器的播放器),并且每一个客户端仅与一个主机连接。在预定的时间间隔内超时并且不响应的连接可以被认为死亡。所述客户端应该知道要跟随哪个主机(例如,通过mDNS信令),并且所述客户端负责向主机通知新节点。一旦主机接收到新的客户端连接请求,后者将该客户端添加到主机的跟随器/渲染器列表中。然后,所述客户端将从该主机接收所有数据(例如,音频)和信令更新。根据一种或更多种本文描述的实施例,播放器始终是主机,渲染器始终是客户端,并且跟随器实现两者。另外,控制客户端始终是客户端,因为它与播放器连接。
应当理解,本公开的平台、架构和系统是极为动态的。例如,所述系统的用户和/或所述系统本身可以在系统处于主动操作时修改所述数据模块的独特角色、用于播出的特定数据模块、数据模块分组、指定“主动”数据模块组、或其一些组合。
主机的选择
根据本公开的一种或更多个实施例,可以利用其中每一个数据模块将其能力通告给公共系统服务的系统来执行组领导者(例如,播放器模块)的选择,该公共系统服务然后确定每一个模块的任务,包括基于所通告的能力选举组领导者。例如,所述领导者选择过程可以基于针对每一个数据模块(例如,扬声器)计算出的唯一分数(例如,通过公共系统服务)。根据至少一个实施例,该分数可以基于以下非限制性参数中的一个或更多个来计算:(i)CPU能力;(ii)编解码器可用性(例如,可以实现选定或有限数目的编解码器,特别是数据模块);和(iii)带宽/等待时间。
消息扇出
根据本公开的一种或更多个实施例,消息(例如,控制消息、数据(例如音频数据)等)的扇出(例如,分发、传输等)可以源自所述播放器并通过基于上述(并在图1中显示的示例系统中示出的)动态配置的树结构的网络传播。在不同数据模块之间传输的所有数据包可以按顺序处理。例如,所述系统可以通过否定确认/确认(NACK/ACK)机制验证所有数据包在特定数据模块处接收(例如,其中主机(或传输数据模块)将所有丢失的数据包重传到指定收件人(而不是所有收件人))。
如上所述,本公开的平台和系统在播出期间提供高精度的数据同步。这种紧密同步可以,例如,通过同步所述系统中的所有时钟并且设置应当播出的一部分数据(例如,音频帧)的精确时间来实现。因此,本文中描述的系统能够处理数据包到达时间的延迟和变化。例如,根据至少一个实施例,通过网络传输的所有丢失的数据包都被NACK,因此能够假设所述渲染器没有丢失任何数据包,并且应该仅处理延迟的数据包。
延迟管理
应当注意,本公开的平台和系统的延迟管理能力没有与上述的时钟同步机制和技术连接。而所述时钟同步机制确保了所有数据模块与相同的时钟(例如,播放器模块的时钟)同步,所述延迟管理特征和处理被设计为设置系统中的总延迟,并且根据至少一个实施例,所述延迟管理仅由所述播放器模块执行。
在一种示例性情景中,所述系统可以具有两个固有延迟:(1)系统延迟(或处理延迟)和(2)网络延迟(其是基于本地网络以及可用带宽与所需带宽之间的任何差异的变化值)。虽然这样的延迟可以不被完全消除,但是本公开的方法和系统被设计为限制这些延迟的量值和效应。
例如,根据一种或更多个实施例,可以假设第二种类型的延迟(网络延迟)明显大于第一种类型的延迟(系统延迟)。因此,当所述系统确定总播出延迟时,可以只考虑第二种类型的延迟,或者可以取最大值,所述最大值经常被假定为网络延迟。例如,所述播放器可以基于播出的样本的数目和所需的等待时间设立(例如,确定)目标播出时间(例如,以微秒的精确度)。应该注意,所需的等待时间应该足够大于所有数据模块的所述网络和系统延迟,以确保顺畅播放。在随后的章节中,将提供关于本公开的平台和系统如何确定初始延迟并且还基于从网络收集的实时数据自适应地更新/修改所述延迟的补充细节。
初始延迟
根据一种或更多个实施例,所述系统可以利用初始延迟的预定值,并且随后基于从所述系统/网络获取(例如,收集、测量等)的数据迭代该值。由所述系统使用的初始延迟应该足够高,以确保所述系统的大多数用户的顺畅播放,但不会太高,以致于所述延迟对于用户是显著的。例如,可以选择通常认为用户听不到的250mS的初始延迟,并且将500mS设置为上限。然而,应当理解,在上述的示例值之外或代替上述示例值,各种其它值也可以用于初始延迟。
自适应延迟
应当注意,直到已经收集关于本地网络的足够量的统计信息之前,上述的初始延迟仅由所述系统使用。根据本公开的一种或更多个实施例,所提供的方法和系统可以定期地(例如,在主动播出期间每1秒)收集(例如,测量、计算、获得等)关于所述系统和所述系统在其上运行的本地网络的各种统计信息(例如,往返时延(RTT)、累积网络延迟、单向延迟(最大值、最小值、方差)、网络故障的频率/持续时间等)。当所述系统空闲(例如,处于空闲或睡眠模式)时,收集统计信息的频率可以延长到比在主动播出期间所使用的更长的时间间隔。例如,当所述系统空闲时,所述系统可以每“x”秒(其中“x”可以是例如10、12、15等)探测网络。某些收集的统计信息可以被滤除,以便可以获得RTT的准确估计,以及网络故障的概率和持续时间。
由所述系统收集的数据可以在运行时间期间分析。作为所述分析数据的结果产生的统计数据可以存储在每一个数据模块上的本地文件中,并且可以在每次所述模块通电(或从待机/睡眠模式退出)时使用。可以按模块(例如,每一个扬声器)或按模块对(例如,扬声器对)收集统计信息,并且因此可能的排列数是系统架构的函数。
修改(更新、调适等)所述延迟通常会对播出质量具有可听见的影响。因此,根据至少一个实施例,可以限制对所述延迟的更新频率/定时。例如,在音频的情形下,可以响应于新音频段的开始、在等待期之后新的播出开始时、当音频源切换时等,修改或更新所述延迟。
由于本公开的系统被设计为随时间获悉网络的特性,所以修改所述延迟可能要加以小心,因为延迟的变化能够被用户听到。例如,根据至少一个实施例,所述系统避免在音频段(例如,音乐或歌曲)内修改所述延迟,而改为,在正随时间收集网络统计信息时,仅在设备(例如,扬声器)从空闲模式中退出时更新所述延迟。在基于所收集的统计信息确定所述系统反复落后(例如,在保持音频的顺畅播放中)的情景下,可以实施更进取的方法来更新所述延迟(例如,在音频段之间更新所述延迟)。与修改所述延迟有关的上述要点具有技术效应,即所述延迟的变化对听觉效果的影响降低。
多设备设置
如上所述(并且在图1中显示的示例性系统100中示出),本公开的内容管理系统包括在任何给定时间点同时播出的多个数据模块(例如,扬声器)。因此,根据至少一个实施例,所计算的播出延迟应该遵循所述系统中最弱的链接。
例如,根据本公开的一种或更多个实施例,在所述系统启动时,每一个数据模块可以直接或间接地通知播放器(主机)模块它的网络延迟。由于渲染器模块不一定知道哪个模块在播放器内的系统中,所述渲染器可以告知其相应的跟随器模块该渲染器的网络延迟。然后,所述跟随器可以聚合来自其相关联的渲染器的所有值,并将聚合值传递给所述播放器。
播放器,在从所述跟随器模块接收到所述聚合值后,可以计算或以其它方式确定这些延迟的最大值。每一个链接(所述系统中的主机-客户端对)可以定期重新评估这些值,并在最大延迟改变时更新所述播放器。根据至少一个实施例,只有播放器能够修改终端系统等待时间,并且播放器可以通过更新音频帧的播出时间来这样做。应当理解,对所述延迟的更新意味着将音频的时间戳更新为其原始时间戳(例如,基于播出的样本数目)和所需的延迟。总延迟的计算可以是子延迟的聚合加上某种类型的余量。
图2根据本文所述的一种或更多个实施例,显示了在用于播出的媒体数据分发期间在多个数据模块之间的示例数据流程。例如,所述数据流程可以在播放器模块215、跟随器模块220a和220b和渲染器模块230a、230b、230e和230f之间,其中所有所述模块都是内容管理系统(例如,图1中显示的示例性内容管理系统100)的组件,所述模块通过一个或更多个网络(例如,网络125和135之一或二者,其可以是图1中显示的示例性内容管理系统100中相同或不同的网络(例如,房屋内的不同WLAN、一个无线网络和另一个有线网络等))获得和/或交换数据,并且其中每一个模块根据上述它们各自的角色的特征进行操作。
根据至少一个实施例,播放器模块215可以从源(262)提取(例如,检索、接收、获得等)媒体数据。例如,播放器模块215可以从源提取音频数据,并将音频数据分发到组中的跟随器模块220a和220b。由播放器模块215获得的数据的源可以是,例如,在线音频/视频流服务或网站、便携式用户设备(例如,蜂窝电话、智能电话、个人数字助理、平板电脑、膝上型计算机、智能电视等),它们充当所述系统中的控制客户端(例如,图1中显示并且在上文详细描述的示例性内容管理系统100中的控制客户端150)、含有用于存储音频/视频数据的存储器的存储设备(例如,独立硬盘驱动器)等。
播放器模块215,在从所述源接收数据(262)时,可以确定(例如,评估、评价、检测等)网络的一个或更多个条件、网络的配置和/或组中其它模块(264)的能力,以便确定应向每一个其它数据模块发送所接收的数据的格式(例如,原始数据、编码数据等)。例如,根据至少一个实施例,播放器模块215可以基于播放器模块215与相应的跟随器模块220a和220b中的每一个之间的连接级别(例如,网络容量)、基于每一个跟随器模块220a和220b(和/或与所述跟随器模块220a和220b相关联的每一个渲染器模块230a、230b、230e和230f)的一一种或更多种能力(例如,硬件能力)、基于组中的不同数据模块之间的物理接近度、或者基于其任何组合,来确定用于将接收的数据发送到每一个跟随器模块220a和220b的格式。应当注意,在至少一些情景下,确定所接收的数据分发到组中其它数据模块的格式可以进一步基于要分发的数据的可用许可。
如上所述,播放器模块215可以被配置为将从源(262)获得的数据分包,并且通过网络将原始或编码数据包(266)和(268)分别发送到跟随器模块220a和220b。根据至少一个实施例,播放器模块215可以基于播放器模块215与每一个跟随器模块220a和220b之间的网络的可用带宽、基于每一个跟随器模块220a和220b(和/或与跟随器模块220a和220b相关联的每一个渲染器模块230a、230b、230e和230f)的能力等,来确定是否向每一个跟随模块220a和220b发送原始或编码的数据包(266)、(268)。例如,这可以是所述系统中的一个或更多个跟随模块220a和220b或渲染器模块230a、230b、230e和230f不能解码所有编解码器时的情况。此外,在涉及劣化的(例如,有限的)网络条件(例如,低带宽)的情景中,播放器模块215可能难以将原始数据发送到跟随器模块220a和220b之一或二者。在这样的情景下,播放器模块215可以改为将编码数据发送到跟随器模块220a和220b。
应当注意,在一些情况下,播放器模块215,在从源(262)接收数据时,可以对所接收的数据执行初始解码。在这样的情况下,所述系统可以被配置为在播放器模块215进行初始解码之后重新编码所述数据。然而,还应当理解,由播放器模块215原始接收到的数据不一定在所有情况下都被编码(因此可以没有由播放器模块215执行的初始解码)。
每一个跟随器模块220a和220b可以分别从播放器模块215接收(例如,通过网络)原始或编码数据包(266)和(268),并发送所述数据包(282)、(280)、(278)、(276)到它们相应的渲染器模块230a、230b、230e和230f。每一个跟随器模块220a和220b可以按与所述数据包从播放器模块215接收时相同的格式将所述数据包发送到它们相应的渲染器模块230a、230b、230e和230f,或者每一个跟随器模块220a和220b可以对接收到的数据进行解析并执行各种操作(272)、(274)(例如,转码、音频处理等),然后重新打包所述数据以发送给相应的渲染器模块。
根据本公开的至少一个实施例,每一个渲染器模块230a、230b、230e和230f是所述内容管理系统(例如,在图1中显示并在上文详细描述的示例性内容管理系统100中的数据模块130a-130m)中的数据流水线的终点。因而,在从跟随器模块220a和220b接收原始或编码数据(282)、(280)、(278)、(276)时,每一个渲染器模块230a、230b、230e和230f可以被配置为播出所接收到的数据(284)。另外,每一个渲染器模块230a、230b、230e和230f也可以被配置为在播出数据之前对所接收的数据执行附加的本地处理(286)(例如,在音频情形下的淡入/淡出)。
图3根据在本文中描述一种或更多个实施例,示出了在确定多设备系统的延迟中多个数据模块之间的示例性数据流程。所述多设备系统可以类似于,例如,上文所述并且在图1中显示的内容管理系统100。例如,所述数据流程可以在播放器模块315、跟随器模块320a和320b和渲染器模块330a、330b、330e和330f之间。另外,组中的这些不同数据模块之间在确定延迟的处理期间的所述示例性数据流与上文关于确定多设备设置中的延迟所述的数据交换类似。因此,为了简洁起见,这里不再重复这样的示例性数据流程。
图4是根据本文描述的一种或更多个实施例的示例性计算机(400)的高级框图,其被布置为提供了数据模块(例如,音频设备)的灵活和自适应系统以在网络上播出数据(例如,音频数据)。在非常基本的配置(401)中,计算设备(400)通常包括一个或更多个处理器(410)和系统存储器(420)。存储器总线(430)能够被用于处理器(410)和系统存储器(420)之间的通信。
取决于所需的配置,处理器(410)能够是任何类型的,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任何组合。处理器(410)能够包括一级多级的缓存,例如一级缓存(411)和二级缓存(412)、处理器核心(413)和寄存器(414)。处理器核心(413)能够包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核心(DSP核心)或其任何组合。存储器控制器(415)也能够与处理器(410)一起使用,或者在一些实施中,存储器控制器(415)能够是处理器(410)的内部部分。
取决于所需的配置,系统存储器(420)能够是任何类型的,包括但不限于易失性存储器(例如RAM)、非易失性存储器(例如ROM、闪速存储器等)或其任何组合。系统存储器(420)通常包括操作系统(421)、一个或更多个应用(422)和程序数据(424)。应用(422)可以包括用于在网络上操作的多个数据模块的系统(423)。根据本公开的至少一个实施例,当在估算跨模块要渲染的数据的渲染时间(例如,估算音频数据跨音频设备播出的播出时间)时,所述用于在网络上操作的多个数据模块的系统(423)被设计为通过利用例如由公共访问接入点产生的Wi-Fi信标作为参考,实现和维持不同模块之间的高度准确的同步(例如,<20微秒(μs))。所述用于在网络上操作的多个数据模块的系统(423)能够在相同访问接入点上操作的模块之间实现这种紧密的音频同步,其消除了数据中任何可察觉的差异(例如,播出的音频数据中的可听见的差异),从而改善整体用户体验。
程序数据(424)可以包括存储指令,所述指导当由一个或更多个处理设备执行时,实现在网络上操作的多个数据模块的系统(423)和方法。另外,根据至少一个实施例,程序数据(424)可以包括网络数据(425),所述网络数据可以涉及从系统(423)在其上操作的本地网络定期收集的各种统计信息。根据至少一些实施例,应用(422)能够被布置为用操作系统(421)上的程序数据(424)操作。
计算设备(400)能够具有附加特征或功能性和用于促进基本配置(401)和任何所需设备和接口之间的通信的附加接口。
系统存储器(420)是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)或其它光学存储器、磁带盒、磁带、磁盘存储器或其它磁存储设备、或能够被用于存储所需信息并且能够由计算设备400访问的任何其它介质。任何这样的计算机存储介质能够是设备(400)的一部分。
计算设备(400)能够被实现为诸如手机、智能电话、个人数据助理(PDA)、个人媒体播放器设备、平板电脑计算机(平板电脑)、无线网络表设备、个人耳机设备、专用设备或包括任何上述功能的混合设备的小尺寸便携式(或移动)电子设备的一部分。计算设备(400)也能够被实现为包括膝上型计算机和非膝上型计算机配置的个人计算机。
前面的详细描述通过使用框图、流程图和/或示例来阐述所述设备和/或过程的各个实施例。只要这些框图、流程图和/或示例包含一个或更多个功能和/或操作,本领域技术人员将会理解,这样的框图、流程图或示例中的每一个功能和/或操作能够通过各种各样的硬件、软件、固件或其实际上的任何组合个别地和/或共同地实现。根据本公开的至少一个实施例,在本文中描述的主题的几个部分可以通过专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)或其它集成格式来实现。然而,本领域技术人员将认识到,在本文中公开的实施例的某些方面在整体或部分上能够等同地在集成电路中作为在一个或更多个计算机上运行的一个或更多个计算机程序、作为在一个或更多个处理器上运行的一个或更多个程序、作为固件或其实际上的任何组合实现,并且根据本公开,设计电路和/或编写软件和/或固件的代码将完全属于本领域技术人员的技术内。
另外,本领域技术人员将领会,在本文中描述的主题的机制能够作为多种形式的程序产品分发,并且不管用于实际执行所述分发的非瞬态信号承载介质的具体类型如何,在本文中描述的主题的说明性实施例均适用。非瞬时信号承载介质的示例包括但不限于以下:可记录型介质,例如软盘、硬盘驱动器、压缩盘(CD)、数字视频盘(DVD)、数字磁带、计算机存储器等;以及传输类型介质,例如数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路等)。
关于在本文中使用基本上任何复数和/或单数术语,本领域技术人员能够根据情形和/或应用视情况从复数转换为单数和/或从单数转换为复数。为了清楚起见,在本文中可以明确阐述各种单数/复数排列。
还应当注意,在本文中所述的系统和方法可以收集关于用户的个人信息或可以利用个人信息的情况下,可以向用户提供机会以控制与所述系统和/或方法相关联的程序或功能部件是否收集用户信息(例如,关于用户偏好的信息)。另外,某些数据在它被存储或使用之前可以用一种或更多种方式处理,从而消除个人可识别信息。例如,可以处理用户的身份,使得不能对该用户确定个人可识别信息。因而,用户可以控制收集关于所述用户并由服务器使用的信息的方式。
如此,已经描述了本主题的具体实施例。其它实施例在所附权利要求的范围内。在一些情况下,权利要求中所述的动作能够按不同的顺序执行并且仍然达到期望的结果。另外,附图中所描绘的过程不一定需要所显示的特定顺序或相继顺序来达到期望的结果。在某些实施中,多任务和并行处理可能是有利的。
下面,描述根据本公开的系统和方法的其它示例。
第一示例涉及包含与至少一个网络(105,125,135)连接的多个数据模块(115,120,130)的系统,其中每一个数据模块被配置为:根据确定的操作角色进行操作,其中所确定的操作角色是一起限定一组所述数据模块的多个操作角色中的一个,并且其中每一个操作角色的特征在于由所述组内的数据模块执行的特定功能;以及在所述系统基于与所述网络、与所述数据模块和/或与其它数据模块相关联的一个或更多个参数进行主动操作的同时,在不同的操作角色、不同的数据模块组、或二者之间切换。
在基于第一示例的第二示例中,所述多个数据模块中的每一个被配置为:从数据源(110)接收数据;将所接收的数据发送到所述数据模块组内的每一个其它数据模块;并且在为所述数据模块组设立的预设时间内重放来自所述数据源的数据。
在基于第二示例的第三示例中,根据第一操作角色操作的所述组中的数据模块被配置为:设立用于重放来自所述数据源的数据的预设时间;以及将所述预设时间传达给所述组中的其它数据模块,致使由所述数据模块组的数据重放是同步的。
在基于前述示例任何一个的第四示例中,根据第一操作角色操作的数据模块被配置为:从数据源接收数据;为所述数据模块组中的每一个其它数据模块,基于与所述数据模块的连接级别和/或所述数据模块的能力,确定向所述数据模块发送的所接收的数据的格式;以及将所述数据以针对相应的数据模块确定的格式发送到每一个其它数据模块。
在基于第四示例的第五示例中,向所述组中的每一个其它数据模块发送的接收到的数据的格式基于以下一项或更多项来确定:不同数据模块之间的网络容量,不同数据模块之间的物理接近度,每一个数据模块的硬件能力,以及要传输的数据的可用许可。
在基于前述示例任何一个的第六示例中,与所述网络、与所述数据模块和/或与其它数据模块相关联的所述一个或更多个参数,包括以下一个或更多个:所述网络的状况,所述网络的配置,所述数据模块的能力,以及所述其它数据模块的能力。
在基于第四示例的第七示例中,向所述组中的每一个其它数据模块发送的接收到的数据的格式基于以下一项或更多项来确定:不同数据模块之间的网络容量,不同数据模块之间的物理接近度,每一个数据模块的硬件能力,以及要传输的数据的可用许可。
在基于前述示例任何一个的第八示例中,根据第一操作角色操作的数据模块被配置为:确定与所述数据模块组中的每一个其它数据模块相关联的延迟;以及基于与每一个其它数据模块相关联的所述确定的延迟,修改应用于所述组中不同数据模块之间数据播出的公共延迟。
在基于第八示例的第九示例中,与所述组中的每一个其它数据模块相关联的延迟是所述数据模块内部的网络延迟和处理延迟之一或二者。
在基于第八或第九示例的第十示例中,根据第一操作角色操作的数据模块被配置为:从根据第二操作角色操作的组中的数据模块接收聚合延迟值;从所述聚合延迟值确定最大延迟;以及基于所述确定的最大延迟修改应用于不同数据模块之间数据播出的公共延迟。
在基于第十示例的第十一示例中,从根据第二操作角色操作的数据模块接收的所述聚合延迟值包括与根据第三操作角色操作的组中的数据模块相关联的延迟值,其中所述第三操作角色的特征在于播出来自所述数据源的数据。
在基于第二至第十一示例中任何一个的第十二示例中,从所述数据源接收的数据是音频数据。
在基于第十二示例的第十三示例中,所述多个数据模块中的每一个是独立的音频设备。
在基于第十二示例的第十四示例中,所述多个数据模块中的至少一个是独立的音频设备。
在基于第十四示例的第十五示例中,所述音频设备是扬声器设备。
第十六示例涉及一种计算机实现的方法,所述方法包含:由数据模块确定所述数据模块在通过网络彼此通信的一组数据模块内操作的操作角色,其中所确定的操作角色是一起限定所述数据模块组的多个操作角色中的一个,并且其中每一个操作角色的特征在于由所述组内的数据模块执行的特定功能;由所述数据模块根据所确定的操作角色操作;以及在操作的同时,基于与所述网络、与所述数据模块和/或与所述组中的其它数据模块相关联的一个或更多个参数,切换到不同的操作角色、不同的数据模块组或二者。
在基于第十六示例的第十七示例中,与所述网络、与所述数据模块和/或与所述组中的其它数据模块相关联的所述一个或更多个参数,包括以下一个或更多个:所述网络的状况,所述网络的配置,所述数据模块的能力,以及所述其它数据模块的能力。
在基于第十六或第十七示例的第十八示例中,根据所确定的操作角色进行操作包括以下一项或更多项:从数据源接收数据;将所接收的数据发送到所述数据模块组内的一个或更多个所述其它数据模块中;以及在为所述数据模块组设立的预设时间中重放来自所述数据源的数据。
在基于第十八示例的第十九示例中,从数据源接收的数据是音频数据。
在基于第十六至第十九示例中任何一个的第二十示例中,所述数据模块组是一组独立的音频设备。
Claims (19)
1.一种系统,包含:
与至少一个网络连接的包括主机媒体设备的多个媒体设备,所述多个媒体设备中的每一个媒体设备使用至少一个处理器和存储器进行操作,其中所述多个媒体设备中的每一个媒体设备被配置为:
根据确定的操作角色进行操作,其中所述确定的操作角色是多个操作角色中的一个操作角色,所述多个操作角色一起限定一组所述媒体设备,并且其中所述多个操作角色中的每一个操作角色的特征在于由所述组内的所述媒体设备执行的特定功能;以及
在所述系统基于与所述网络、与所述媒体设备和/或与其它媒体设备相关联的一个或更多个参数进行主动操作的同时,在不同的操作角色之间切换,在不同的媒体设备组之间切换,或者在不同的操作角色和不同的媒体设备组二者之间切换;
其中,所述多个媒体设备被配置为同时播出,其中,所述多个媒体设备中的每一个媒体设备被配置为在所述系统启动时直接或间接地通知所述主机媒体设备与该媒体设备相关联的网络延迟,并且其中所述主机媒体设备确定遵循所述系统中最弱的链接的计算出的播出延迟并且将其应用于所述多个媒体设备。
2.权利要求1所述的系统,其中所述多个媒体设备中的每一个媒体设备被配置为:
从数据源接收数据;
将所接收的数据发送到所述媒体设备组内的每一个其它媒体设备;以及
在为所述媒体设备组设立的预设时间内重放来自所述数据源的所述数据。
3.权利要求2所述的系统,其中根据第一操作角色操作的所述组中的媒体设备被配置为:
设立用于重放来自所述数据源的所述数据的所述预设时间;以及
将所述预设时间传达给所述组中的所述其它媒体设备,致使由所述媒体设备组的数据重放是同步的。
4.权利要求1所述的系统,其中根据第一操作角色操作的媒体设备被配置为:
从数据源接收数据;
为所述媒体设备组中的每一个其它媒体设备,基于与所述媒体设备的连接级别和/或所述媒体设备的能力,确定向所述媒体设备发送的所接收的数据的格式;以及
将所述数据以用于相应的媒体设备的确定的格式发送到每一个所述其它媒体设备。
5.权利要求4所述的系统,其中用于将所接收的数据发送到每一个其它媒体设备的所述确定的格式作为原始数据或作为编码数据。
6.权利要求1所述的系统,其中与所述网络、与所述媒体设备和/或与其它媒体设备相关联的所述一个或更多个参数包括以下一个或更多个:所述网络的状况;所述网络的配置;所述媒体设备的能力;以及所述其它媒体设备的能力。
7.权利要求4所述的系统,其中向所述媒体设备发送接收到的数据的格式进一步基于以下一项或更多项被确定:不同媒体设备之间的网络容量;不同媒体设备之间的物理接近度;每一个所述媒体设备的硬件能力;以及要传输的所述数据的可用许可。
8.权利要求1所述的系统,其中根据第一操作角色操作的媒体设备被配置为:
确定与所述媒体设备组中的每一个所述其它媒体设备相关联的延迟;以及
基于与每一个所述其它媒体设备相关联的所述确定的延迟,修改被应用于所述组中不同媒体设备之间的数据播出的公共延迟。
9.权利要求8所述的系统,其中与所述组中的每一个所述其它媒体设备相关联的延迟是所述媒体设备内部的网络延迟和处理延迟之一或二者。
10.权利要求8所述的系统,其中根据所述第一操作角色操作的媒体设备被配置为:
从根据第二操作角色操作的组中的媒体设备接收聚合延迟值;
从所述聚合延迟值确定最大延迟;以及
基于确定的所述最大延迟,修改被应用于不同媒体设备之间的数据播出的公共延迟。
11.权利要求10所述的系统,其中从根据第二操作角色操作的媒体设备接收的所述聚合延迟值包括与根据第三操作角色操作的组中的媒体设备相关联的延迟值,其中所述第三操作角色的特征在于播出来自数据源的数据。
12.权利要求2所述的系统,其中从所述数据源接收的所述数据是音频数据。
13.权利要求11所述的系统,其中所述多个媒体设备中的至少一个媒体设备是独立的音频设备。
14.权利要求13所述的系统,其中所述独立的音频设备是扬声器设备。
15.计算机实现的方法,包含:
由数据模块确定所述数据模块在通过网络彼此通信的包括主机数据模块的一组数据模块内操作的操作角色,其中确定的所述操作角色是多个操作角色中的一个操作角色,所述多个操作角色一起限定所述一组数据模块,并且其中所述多个操作角色中的每一个操作角色的特征在于由所述组内的所述数据模块执行的特定功能;
由所述数据模块根据确定的所述操作角色操作;以及
在操作的同时,基于与所述网络、与所述数据模块和/或与所述组中的其它数据模块相关联的一个或更多个参数,切换到不同的操作角色,切换到不同的数据模块组,或者切换到不同的操作角色和不同的数据模块组二者;
其中,所述数据模块组被配置为同时播出,其中,所述数据模块组中的每一个数据模块被配置为在启动时直接或间接地通知所述主机数据模块与该数据模块相关联的网络延迟,并且其中,所述主机数据模块确定遵循所述数据模块组中最弱的链接的计算出的播出延迟并且将其应用于所述数据模块组。
16.权利要求15所述的方法,其中与所述网络、与所述数据模块和/或与所述组中的其它数据模块相关联的所述一个或更多个参数包括以下一个或更多个:所述网络的状况;所述网络的配置;所述数据模块的能力;以及所述其它数据模块的能力。
17.权利要求15所述的方法,其中根据确定的所述操作角色进行操作包括以下一项或更多项:
从数据源接收数据;
将所接收的数据发送到所述数据模块组内的一个或更多个所述其它数据模块;以及
在为所述数据模块组设立的预设时间中重放来自所述数据源的所述数据。
18.权利要求17所述的方法,其中从所述数据源接收的所述数据是音频数据。
19.权利要求15所述的方法,其中所述数据模块组是一组独立的音频设备。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/735,489 US10516718B2 (en) | 2015-06-10 | 2015-06-10 | Platform for multiple device playout |
US14/735,489 | 2015-06-10 | ||
PCT/US2016/036383 WO2016200894A1 (en) | 2015-06-10 | 2016-06-08 | Platform for multiple device playout |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107409138A CN107409138A (zh) | 2017-11-28 |
CN107409138B true CN107409138B (zh) | 2020-09-11 |
Family
ID=56178489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680019391.9A Active CN107409138B (zh) | 2015-06-10 | 2016-06-08 | 用于多设备播出的平台 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10516718B2 (zh) |
EP (1) | EP3308273A1 (zh) |
CN (1) | CN107409138B (zh) |
WO (1) | WO2016200894A1 (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152527B1 (en) | 2015-12-28 | 2018-12-11 | EMC IP Holding Company LLC | Increment resynchronization in hash-based replication |
US10324635B1 (en) * | 2016-03-22 | 2019-06-18 | EMC IP Holding Company LLC | Adaptive compression for data replication in a storage system |
US10310951B1 (en) | 2016-03-22 | 2019-06-04 | EMC IP Holding Company LLC | Storage system asynchronous data replication cycle trigger with empty cycle detection |
US9959073B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Detection of host connectivity for data migration in a storage system |
US10095428B1 (en) | 2016-03-30 | 2018-10-09 | EMC IP Holding Company LLC | Live migration of a tree of replicas in a storage system |
US9959063B1 (en) | 2016-03-30 | 2018-05-01 | EMC IP Holding Company LLC | Parallel migration of multiple consistency groups in a storage system |
US10565058B1 (en) | 2016-03-30 | 2020-02-18 | EMC IP Holding Company LLC | Adaptive hash-based data replication in a storage system |
US10083067B1 (en) | 2016-06-29 | 2018-09-25 | EMC IP Holding Company LLC | Thread management in a storage system |
US9983937B1 (en) | 2016-06-29 | 2018-05-29 | EMC IP Holding Company LLC | Smooth restart of storage clusters in a storage system |
US10048874B1 (en) | 2016-06-29 | 2018-08-14 | EMC IP Holding Company LLC | Flow control with a dynamic window in a storage system with latency guarantees |
US10013200B1 (en) | 2016-06-29 | 2018-07-03 | EMC IP Holding Company LLC | Early compression prediction in a storage system with granular block sizes |
US10152232B1 (en) | 2016-06-29 | 2018-12-11 | EMC IP Holding Company LLC | Low-impact application-level performance monitoring with minimal and automatically upgradable instrumentation in a storage system |
CN107801103B (zh) * | 2016-08-29 | 2020-04-03 | 上海交通大学 | 异构网络下基于网络状况的多媒体资源自适应同步方法 |
CN107038047B (zh) * | 2017-03-31 | 2020-08-14 | Oppo广东移动通信有限公司 | 音频播放设备的软件版本同步方法、装置及音频播放设备 |
US10542052B2 (en) | 2017-04-27 | 2020-01-21 | Samsung Electronics Co., Ltd. | Multi-area grouping |
US10956278B2 (en) * | 2017-04-28 | 2021-03-23 | Splunk Inc. | Intelligent captain selection for disaster recovery of search head cluster |
US10528517B1 (en) | 2018-08-09 | 2020-01-07 | Qualcomm Incorporated | Systems and methods for power conservation in a SOUNDWIRE audio bus through pattern recognition |
US10359827B1 (en) | 2018-08-15 | 2019-07-23 | Qualcomm Incorporated | Systems and methods for power conservation in an audio bus |
US11722561B2 (en) * | 2020-12-22 | 2023-08-08 | Telefonaktiebolaget Lm Ericsson (Publ) | DTLS/SCTP enhancements for RAN signaling purposes |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101124756A (zh) * | 2005-01-11 | 2008-02-13 | 哈里斯施特拉特克斯网络公司 | 用于复用准同步数字体系和分组数据的系统和方法 |
CN101615967A (zh) * | 2008-06-26 | 2009-12-30 | 华为技术有限公司 | 一种业务数据的发送、接收方法、装置和系统 |
CN103053157A (zh) * | 2010-07-30 | 2013-04-17 | 诺基亚公司 | 用于确定和均衡媒体轨道的一个或多个段的方法和装置 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5533021A (en) * | 1995-02-03 | 1996-07-02 | International Business Machines Corporation | Apparatus and method for segmentation and time synchronization of the transmission of multimedia data |
US5844600A (en) | 1995-09-15 | 1998-12-01 | General Datacomm, Inc. | Methods, apparatus, and systems for transporting multimedia conference data streams through a transport network |
US6615243B1 (en) * | 1999-04-01 | 2003-09-02 | Thomson Licensing S.A. | System and method for programming and transmitting macros for controlling audio/video devices |
US6631410B1 (en) * | 2000-03-16 | 2003-10-07 | Sharp Laboratories Of America, Inc. | Multimedia wired/wireless content synchronization system and method |
US7392421B1 (en) * | 2002-03-18 | 2008-06-24 | Symantec Operating Corporation | Framework for managing clustering and replication |
WO2003093950A2 (en) | 2002-05-06 | 2003-11-13 | David Goldberg | Localized audio networks and associated digital accessories |
US8290603B1 (en) | 2004-06-05 | 2012-10-16 | Sonos, Inc. | User interfaces for controlling and manipulating groupings in a multi-zone media system |
US8020023B2 (en) | 2003-07-28 | 2011-09-13 | Sonos, Inc. | Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices without a voltage controlled crystal oscillator |
US8086752B2 (en) | 2006-11-22 | 2011-12-27 | Sonos, Inc. | Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data |
US8234395B2 (en) | 2003-07-28 | 2012-07-31 | Sonos, Inc. | System and method for synchronizing operations among a plurality of independently clocked digital data processing devices |
US7571014B1 (en) | 2004-04-01 | 2009-08-04 | Sonos, Inc. | Method and apparatus for controlling multimedia players in a multi-zone system |
US8024055B1 (en) | 2004-05-15 | 2011-09-20 | Sonos, Inc. | Method and system for controlling amplifiers |
US8214447B2 (en) | 2004-06-08 | 2012-07-03 | Bose Corporation | Managing an audio network |
US8190680B2 (en) * | 2004-07-01 | 2012-05-29 | Netgear, Inc. | Method and system for synchronization of digital media playback |
US20060072525A1 (en) * | 2004-09-23 | 2006-04-06 | Jason Hillyard | Method and system for role management for complex bluetooth® devices |
US20080152165A1 (en) | 2005-07-01 | 2008-06-26 | Luca Zacchi | Ad-hoc proximity multi-speaker entertainment |
JP5017811B2 (ja) * | 2005-07-19 | 2012-09-05 | ソニー株式会社 | データ伝送システム,データ取得装置,データ取得方法,データ蓄積装置,データ送信方法,およびそのプログラム |
US9413799B2 (en) * | 2007-01-27 | 2016-08-09 | Blackfire Research Corporation | Broadcasting media from a stationary source to multiple mobile devices over wi-fi |
US8239559B2 (en) | 2006-07-15 | 2012-08-07 | Blackfire Research Corp. | Provisioning and streaming media to wireless speakers from fixed and mobile media sources and clients |
US8607281B2 (en) | 2006-09-07 | 2013-12-10 | Porto Vinci Ltd. Limited Liability Company | Control of data presentation in multiple zones using a wireless home entertainment hub |
US8483853B1 (en) | 2006-09-12 | 2013-07-09 | Sonos, Inc. | Controlling and manipulating groupings in a multi-zone media system |
US8619868B2 (en) * | 2007-02-23 | 2013-12-31 | Nokia Corporation | Backward-compatible characterization of aggregated media data units |
EP2165541B1 (en) * | 2007-05-11 | 2013-03-27 | Audinate Pty Ltd | Systems, methods and computer-readable media for configuring receiver latency |
US8576922B2 (en) * | 2007-06-10 | 2013-11-05 | Apple Inc. | Capturing media in synchronized fashion |
WO2009086597A1 (en) | 2008-01-07 | 2009-07-16 | Avega Systems Pty Ltd. | Systems and methods for providing zone functionality in networked media systems |
US8505054B1 (en) * | 2009-12-18 | 2013-08-06 | Joseph F. Kirley | System, device, and method for distributing audio signals for an audio/video presentation |
JP2013068754A (ja) | 2011-09-22 | 2013-04-18 | Onkyo Corp | 音声出力装置及びそのプログラム |
US20130076651A1 (en) | 2011-09-28 | 2013-03-28 | Robert Reimann | Methods and apparatus to change control centexts of controllers |
US20130339537A1 (en) * | 2012-06-13 | 2013-12-19 | Harman International Industries, Incorporated | System for dynamic stream management in audio video bridged networks |
JP5974881B2 (ja) | 2012-12-14 | 2016-08-23 | ソニー株式会社 | 情報処理装置およびその制御方法 |
US9521449B2 (en) * | 2012-12-24 | 2016-12-13 | Intel Corporation | Techniques for audio synchronization |
CN104378506B (zh) * | 2014-11-11 | 2017-12-12 | 东莞宇龙通信科技有限公司 | 数据操作方法、数据操作装置和终端 |
US9848041B2 (en) * | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
US10447493B2 (en) * | 2016-07-26 | 2019-10-15 | Honeywell International Inc. | MAC and physical layer techniques for enabling communications on shared physical medium with multi-drop capability |
US10542052B2 (en) * | 2017-04-27 | 2020-01-21 | Samsung Electronics Co., Ltd. | Multi-area grouping |
-
2015
- 2015-06-10 US US14/735,489 patent/US10516718B2/en active Active
-
2016
- 2016-06-08 EP EP16731451.7A patent/EP3308273A1/en not_active Ceased
- 2016-06-08 WO PCT/US2016/036383 patent/WO2016200894A1/en active Application Filing
- 2016-06-08 CN CN201680019391.9A patent/CN107409138B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101124756A (zh) * | 2005-01-11 | 2008-02-13 | 哈里斯施特拉特克斯网络公司 | 用于复用准同步数字体系和分组数据的系统和方法 |
CN101615967A (zh) * | 2008-06-26 | 2009-12-30 | 华为技术有限公司 | 一种业务数据的发送、接收方法、装置和系统 |
CN103053157A (zh) * | 2010-07-30 | 2013-04-17 | 诺基亚公司 | 用于确定和均衡媒体轨道的一个或多个段的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2016200894A1 (en) | 2016-12-15 |
EP3308273A1 (en) | 2018-04-18 |
US20160366206A1 (en) | 2016-12-15 |
US10516718B2 (en) | 2019-12-24 |
CN107409138A (zh) | 2017-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107409138B (zh) | 用于多设备播出的平台 | |
US10249303B2 (en) | Methods and systems for detecting and processing speech signals | |
KR102162382B1 (ko) | 피어-투-피어 성능의 개선 기법 | |
US10284678B2 (en) | Bandwidth management based on profiles | |
US10171305B2 (en) | Profile generation for bandwidth management | |
US11863841B2 (en) | Video playing control method and system | |
CN106713495B (zh) | Ip地理位置的上传方法及访问方法、装置及访问系统 | |
TW201534096A (zh) | 有效混合網路電話資料之系統及方法 | |
ES2797673T3 (es) | Controlar un flujo de datos | |
CN106415520A (zh) | 用于回放的高码率内容的预测性递送的系统和方法 | |
US10268444B2 (en) | Bluetooth identity binding for volume control | |
US7805488B2 (en) | Determining social activity profile of a participant in a communication network | |
EP3310093A1 (en) | Traffic control method and apparatus | |
EP3225059A1 (en) | Clock synchronization using wifi beacons | |
US20140188975A1 (en) | Transmission apparatus, transmission method, and program | |
WO2016112641A1 (zh) | 客户端、流媒体数据接收方法和流媒体数据传输系统 | |
CN103747296A (zh) | 一种视频播放的方法及系统 | |
US20190306870A1 (en) | Dejittering System | |
CN107251561A (zh) | 设备对通过广播的dash的可用性开始时间调整 | |
CN103716596B (zh) | 图像处理装置和图像处理方法 | |
CN109547830B (zh) | 一种用于多个虚拟现实设备的同步播放的方法与装置 | |
US9692831B1 (en) | Pausing interactive sessions | |
CN112737971B (zh) | 数据处理方法、装置、存储介质及网络设备 | |
CN103546499B (zh) | 一种文件数据处理方法和服务器 | |
WO2017096789A1 (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 | ||
CB02 | Change of applicant information |
Address after: American California Applicant after: Google limited liability company Address before: American California Applicant before: Google Inc. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |