CN104813303A - 回放同步 - Google Patents
回放同步 Download PDFInfo
- Publication number
- CN104813303A CN104813303A CN201380055666.0A CN201380055666A CN104813303A CN 104813303 A CN104813303 A CN 104813303A CN 201380055666 A CN201380055666 A CN 201380055666A CN 104813303 A CN104813303 A CN 104813303A
- Authority
- CN
- China
- Prior art keywords
- media
- message
- clock
- set value
- instruction
- 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
Abstract
各种示例性实施例涉及用于在发送媒体设备和接收媒体设备之间同步媒体回放的方法和媒体设备,包括:在接收媒体设备处,接收来自发送媒体设备的多个消息,其中这多个消息包括多个发送者时间戳;基于这多个发送者时间戳和接收媒体设备的时钟来生成多个时钟偏移值;从这多个时钟偏移值中识别最小时钟偏移值;定位用于回放的第一媒体数据和与第一媒体数据相关联的第一呈现时间;以及使第一媒体数据在基于最小时钟偏移与第一呈现时间相匹配的第一时间被渲染。
Description
相关申请的交叉引用
本申请要求Lee等人于2012年9月14日递交的题为“回放同步”的美国临时申请No.61/701,326的优先权,该临时申请的全部公开内容出于所有目的通过引用结合于此,好像在本文中被完全提出一样。
本申请涉及Lau等人于2011年10月21日递交的题为“媒体分发架构”的美国申请No.13/278,799,该美国申请要求Lau等人于2010年10月22日递交的题为“媒体分发架构”的美国临时申请No.61/405,835的优先权,这些申请的全部公开内容出于所有目的通过引用结合于此,好像在本文中被完全提出一样。
技术领域
本文公开的各种示例性实施例一般地涉及媒体流传输和联网的媒体回放。
背景技术
随着诸如智能手机和平板之类的电子设备变得越发流行,人们越发频繁地使用这类设备来播放诸如音乐和视频之类的内容。通常,这些媒体源可能不令用户完全满意地渲染(render)媒体。例如,显示器可能太小或者扬声器音量可能质或量不足。另外,来自媒体源的输出可能不被多个人满意地或容易地享受。此外,在未随身携带媒体源的情况下,用户无法在他们家里各处的不同地点享受媒体。
发明内容
下面给出各种示例性实施例的简要概述。以下概述中可能进行了某些简化和省略,这是为了突出和介绍各种示例性实施例的某些方面,而不是为了限制发明的范围。后面的章节中将给出足够允许本领域普通技术人员做出和使用发明构思的优选示例性实施例的详细描述。
本文描述的各种实施例涉及一种在发送媒体设备和接收媒体设备之间同步媒体回放的方法,该方法包括:在接收媒体设备处,接收来自发送媒体设备的多个消息,其中这多个消息包括多个发送者时间戳;基于这多个发送者时间戳和接收媒体设备的时钟来生成多个时钟偏移值;从这多个时钟偏移值中识别最小时钟偏移值;定位(locate)用于回放的第一媒体数据和与第一媒体数据相关联的第一呈现时间;以及使第一媒体数据在基于最小时钟偏移与第一呈现时间相匹配的第一时间被渲染。
本文描述的各种实施例涉及一种用于使媒体回放与发送媒体设备同步的接收媒体设备,该接收媒体设备包括:被配置成存储用于回放的媒体数据的存储器;被配置成与发送媒体设备通信的网络接口;以及处理器,该处理器被配置成:经由网络接口接收来自发送媒体设备的多个消息,其中这多个消息包括多个发送者时间戳;基于这多个发送者时间戳和接收媒体设备的时钟来生成多个时钟偏移值;从这多个时钟偏移值中识别最小时钟偏移值;定位用于回放的第一媒体数据和与第一媒体数据相关联的第一呈现时间;以及使第一媒体数据在基于最小时钟偏移值与第一呈现时间相匹配的第一时间被渲染。
本文描述的各种实施例涉及一种编码有指令的非暂时性机器可读存储介质,该指令供接收媒体设备运行以在发送媒体设备和接收媒体设备之间同步媒体回放,该介质包括:用于在接收媒体设备处接收来自发送媒体设备的多个消息的指令,其中这多个消息包括多个发送者时间戳;用于基于这多个发送者时间戳和接收媒体设备的时钟来生成多个时钟偏移值的指令;用于从这多个时钟偏移值中识别最小时钟偏移值的指令;用于定位用于回放的第一媒体数据和与第一媒体数据相关联的第一呈现时间的指令;以及用于使第一媒体数据在基于最小时钟偏移值与第一呈现时间相匹配的第一时间被渲染的指令。
各种实施例另外包括从接收媒体设备和发送媒体设备之间的往返运输获取多个时间戳;基于这多个时间戳建立下限偏移值;以及在识别最小时钟偏移值后,确定最小时钟偏移值表示比下限偏移值更好的对发送设备时钟和接收设备时钟之间的真实时钟偏移的估计,其中,使第一媒体数据在基于最小时钟偏移值与第一呈现时间相匹配的第一时间被渲染是基于以下确定来执行的:确定最小时钟偏移值表示比下限偏移值更好的对发送设备时钟和接收设备时钟之间的真实时钟偏移的估计。
各种实施例被描述,其中识别最小时钟偏移值包括:生成多个时钟偏移值中的第一时钟偏移值;将最小时钟偏移值设置成等于第一时钟偏移值;在将最小时钟偏移值设置成等于第一时钟偏移值后生成多个时钟偏移值的第二时钟偏移值;确定第二时钟偏移值小于最小时钟偏移值;并且基于对第二时钟偏移值小于最小时钟偏移值的确定,将最小时钟偏移值设置成等于第二时钟偏移值。
各种实施例另外包括通过从接收媒体设备的时钟的值中减去最小偏移值来修改该时钟的值,其中基于最小时钟偏移值与第一呈现时间相匹配的第一时间包括与第一呈现时间相匹配的时钟的值。
各种实施例另外包括在接收媒体设备处接收来自发送媒体设备的消息,其中该消息包括第二媒体数据、第二呈现时间和发送者时间戳;基于发送者时间戳生成时钟偏移值;确定时钟偏移值是比接收媒体设备的时钟和发送媒体设备的时钟之间的真实偏移的最小时钟偏移值更精确的表示;基于时钟偏移值调整最小时钟偏移值;定位用于回放的第三媒体数据和与第三媒体数据相关联的第三呈现时间;在调整最小时钟偏移值后使第三媒体数据在基于最小时钟偏移值与第三呈现时间相匹配的第二时间被渲染。
各种实施例被描述,其中:确定时钟偏移值是比接收媒体设备的时钟和发送媒体设备的时钟之间的真实偏移的最小时钟偏移值更精确的表示包括:确定时钟偏移值小于零,并且基于时钟偏移值调整最小时钟偏移值包括:通过从接收媒体设备的时钟的值中减去偏移值来修改该时钟的值。
各种实施例另外包括将来自发送媒体设备的时间域的多个时间戳中的至少一个发送者时间戳转换到接收媒体设备的时间域,其中基于多个发送者时间戳和接收媒体设备的时钟来生成多个时钟偏移值包括:在将来自发送媒体设备的时间域的多个时间戳中的至少一个发送者时间戳转换到接收媒体设备的时间域后基于至少一个发送者时间戳生成至少一个时钟偏移值。
各种实施例被描述,其中多个消息包括第一多个消息和第二多个消息,该方法还包括:生成第一多个消息到达的间隔的第一量度(measure);确定第一多个消息到达的间隔的第一量度表明网络是不稳定的;指示发送媒体设备发送附加消息;在指示发送媒体设备发送附加消息后生成第二多个消息到达的间隔的第二量度;确定第二多个消息到达的间隔的第二量度表明网络是稳定的,其中从多个时钟偏移值中识别最小时钟偏移值包括:使用与第二多个消息相关联的多个时钟偏移值中的至少一个时钟偏移值。
各种实施例被描述,其中多个消息包括第一多个消息和第二多个消息,该方法还包括:由发送媒体设备发送第一多个消息;由发送媒体设备生成与第一多个消息的发送相关联的网络性能的第一量度;确定网络性能的第一量度表明网络是不稳定的;基于对网络性能的第一量度表明网络不稳定的确定,由发送媒体设备发送第二多个消息;由发送媒体设备生成与第二多个消息的发送相关联的网络性能的第二量度;以及确定网络性能的第二量度表明网络是稳定的。
附图说明
为了更好地理解各种示例性实施例,参考以下附图,其中:
图1例示出用于媒体回放的示例性环境;
图2例示出用于形成和操作虚拟媒体网络的示例性方法;
图3例示出示例性虚拟媒体网络;
图4例示出媒体源的示例性部件图;
图5例示出媒体节点的示例性部件图;
图6例示出媒体设备的示例性硬件图;
图7例示出广播媒体信号的示例性方法;
图8例示出发送媒体设备用来与接收媒体设备同步回放的示例性方法;
图9例示出接收媒体设备用来与发送媒体设备同步回放的示例性方法;
图10例示出接收媒体设备用来在媒体流传输期间获得更好的回放同步的示例性方法;及
图11例示出确定下限偏移的示例性方法。
具体实施方式
本文给出的描述和附图例示出各种原理。将理解,本领域技术人员将能够设想虽然本文未明确描述或示出、但体现这些原理并且被包含在本公开的范围内的各种布置。如本文所使用的,术语“或”指非排除性的或(即,和/或),除非另外指明(例如,“或者别的”或“或者在替代例中”)。另外,本文描述的各种实施例不一定相互排除,而是可被组合以生成结合本文描述的原理的附加实施例。
本文描述的各种实施例使用用于分发媒体内容的架构。有线或无线媒体传输技术可被提供以在保持各种媒体设备之间的精确定时同步的同时允许向多个区域的媒体的同时传输。用户可具有扬声器、显示器或其他渲染设备的网络并且独立地选择哪些渲染设备主动输出媒体。这些渲染设备与本文将描述的其他设备可属于虚拟媒体网络。
由虚拟媒体网络渲染的媒体可源自媒体源。媒体源可以是蜂窝电话、平板、立体声、机顶盒、PC或其他设备。媒体在虚拟媒体网络中的传送方法可以是有线的(如通过辅助线缆)或无线的(如利用蓝牙或WiFi)。扬声器和其他渲染设备本身可在自成形网络中被控制。媒体可由媒体源注入到网络中并且端点网络本身可控制视音频分发、定时和渲染。在某些实施例中,被注入到网络中的音频是视音频信号的音频部分。视频信号可在媒体源(例如,平板电脑)上播放。音频信号可与视频信号保持同步。
在各种实施例中,用户可选择任何媒体应用来充当媒体的源。例如,用户可选择MP3应用、因特网无线电应用等。用户随后可选择输出设备(如他们的起居室中的扬声器)来使媒体被发送到所选的输出设备。音频可被操作系统发送到所选的输出设备。用户可调用第二应用来将其他扬声器添加到虚拟媒体网络,以及控制扬声器的音量等。在某些实施例中,第二应用从不修改媒体。网络中的设备可处理视音频分发、定时和渲染。因此,媒体源可不承受这些处理的负担。另外,这种布置可允许用户选择他们喜欢的任何媒体应用作为媒体的源,而无需修改媒体应用。
在各种实施例中,通过虚拟媒体网络分发的媒体可被保持同步。为了实现这种回放同步,发送媒体数据的各种媒体设备可包括与媒体数据的帧相关联的时间戳以指示何时该关联的媒体应被渲染。为了使能这种机制,媒体设备可被提供考虑媒体设备的内部时钟之间的差的方法。例如,两个媒体设备可能利用不同的时钟值开始操作,或者时钟值可能由于时钟以稍微不同的速度运行而在操作期间逐渐分开。
虽然过去已开发了某些联网时钟同步的方法,但是这些方法可能仅在有线网络中是可靠的,其中在有线网络中网络延迟相对恒定并因此容易被作为渲染处理的一部分来考虑。另一方面,在诸如WiFi或蓝牙之类的无线网络中,网络延迟可能短时间段内大幅变化,从而使得估计同步分组被发送的时间的处理变复杂。本文描述的各种方法实施减小或消除这种可变延迟对联网时钟同步处理的影响的时钟同步处理。例如,通过在一段时间内生成多个潜在的时钟偏移值,接收设备能够从群组中选择最小偏移值,从而使用受网络延迟的可变成分影响最小的偏移值。用于改进联网时钟同步的各种附加特征将在下面更详细地描述。
以下定义将在将本说明书各处被使用:
广播器——能够发送被针对虚拟媒体网络格式化的媒体流的任何设备或这种设备内的广播机制。
渲染器——能够渲染被针对虚拟媒体网络格式化的媒体流的任何设备或这种设备内的渲染机制。
媒体节点——包含渲染器或广播器的任何设备。某些实施例的媒体节点可负责维护网络时间同步和包括媒体路由信息的网络的状态。
媒体源——将原始媒体发送到汇集器(sink)的任何设备。可包括几乎任何类型的硬件,例如比如蜂窝电话、智能手机、平板、机顶盒、电视、DVD/蓝光/其他媒体播放器、立体声系统、视频游戏控制台、膝上型笔记本、台式PC、服务器或任何其他能够发送媒体数据的设备。
汇集器——从源接收源发的媒体的任何设备或设备内用于接收媒体信号的机制。
网关使能媒体节点——组合了汇集器和广播器的任何设备。网关可经由汇集器接受媒体并将媒体重新广播到虚拟媒体网络中给渲染器。
虚拟媒体网络——具有至少一个网关的一个或多个节点的群组。虚拟媒体网络可由用户建立并可渲染在网络中的渲染设备之间同步的媒体信号。注意,在某些实施例中,仅一个媒体节点充当虚拟媒体网络的活动网关。
媒体设备——结合虚拟媒体网络操作的任何设备,例如比如媒体节点或媒体源。
现在参考其中相似标号指代相似部件或步骤的附图,公开各种示例性实施例的广泛方面。
图1例示出用于媒体回放的示例性环境100。本示例中总共有五个网络媒体节点104a-b、106a-c;各种示例性实施例可包括更少或附加的媒体节点(未示出)。示出的示例性环境100被布置成两个虚拟媒体网络。如图所示,媒体源102a充当用于一个虚拟媒体网络的媒体信号的源,而媒体源102b充当用于另一个虚拟媒体网络的媒体源,然而其他布置是可能的。媒体信号可以是音频或视频。在各种实施例中,媒体信号是视音频信号的音频部分。视频信号可在媒体源102a,b上播放。注意在示例性实施例中,在各种信号被不同设备渲染时,音频信号与视频信号保持同步。另外注意视频信号可被发送到虚拟媒体网络中的设备之一或媒体源节点102a,b以外的某个设备。在各种实施例中,每个虚拟媒体网络包括一个网关设备,而在其他实施例中,虚拟媒体网络采用多个网关设备。如上所述,网关设备具有广播器和用于接收媒体信号的汇集器。网关设备可具有或不具有用于渲染音频和/或视频的渲染器。在例示的示例中,起居室中的设备充当用于第一虚拟媒体网络的网关;然而,具有广播器的不同设备可充当该网关。
在某些实施例中,系统在保持精确的定时同步的同时允许媒体向多个区域的同时传输。作为一个示例,用户可配置扬声器的网络,独立地选择哪些扬声器主动地播放,并使它们的回放同步。将媒体传送到网络中的方法可以是有线的(如通过辅助线缆)或无线的(如利用蓝牙或WiFi或另一种网络通信协议)。作为一个示例,起居室网关104a具有辅助输出线路以通过其辅助线路之一将媒体信号提供到立体声接收器108,并因此提供到附接到它的扬声器110。另一方面,起居室网关104a可经由无线传输将媒体信号提供到办公室渲染器106a和厨房渲染器106b。另外,起居室网关104a可具有或可不具有它自己的渲染器。在某些实施例中,属于网络的各种媒体节点被提供并渲染不同信道的媒体流。例如,媒体源可渲染视频信号,第一渲染器可渲染立体声混合音频信号的左扬声器信道,第二渲染器可渲染立体声混合音频信号的右扬声器信道,网关可渲染视频信号和立体声混合音频信号的双信道。各种其他信道模式和媒体设备间这些信道的分发将是清楚的。
在某些实施例中,媒体节点104a-b、106a-c本身在自成形网络中被管理。媒体节点104a-b、106a-c本身可控制视音频分发、定时和渲染。因此,很多处理负荷可被从媒体源102移除。图1的示例涉及家庭环境,但是实施例不限于此。虚拟媒体网络可在任何环境中部署。
图2例示出用于形成和操作虚拟媒体网络的示例性方法200。在步骤202中,媒体设备发现彼此并交换设备状态信息。步骤202例如可在媒体节点104、106被上电时发生。由于媒体节点104、106可在彼此不同的时刻被上电,因此该步骤可被连续运行、重复或以其他方式进行。在某些实施例中,媒体节点104、106执行“自发现”协议,其中媒体节点104、106获悉彼此的存在和能力,例如充当源、汇集器、广播器或渲染器的能力。交换的设备状态信息还可包括例如设备目前在虚拟媒体网络中是否是活动的、该虚拟媒体网络的标识、设备目前是否充当网关等信息。
在步骤204中,媒体源102与网关媒体节点104配对。用户可专门指定一个将充当网关的媒体节点104,或者网关可在无用户干预的情况下被自动确定。例如,智能手机102a的用户可选择起居室媒体节点104a作为主要收听设备,使得其成为网关。在某些实施例中,网关媒体节点104是基于其作为媒体源节点102的当前活动输出设备的状态来选择的。在某些实施例中,网关媒体节点104在充当网关的同时充当媒体源节点102的活动输出设备,并就此渲染媒体数据的至少某些信道。在某些实施例中,网关媒体节点104向媒体源102报告设备或状态信息。
在步骤206中,虚拟媒体网络形成。步骤206可响应于用户对媒体节点104、106的选择而形成。例如,用户可访问媒体源102上的允许用户选择媒体节点104、106的软件程序。注意,如果媒体节点104、106已经是另一虚拟媒体网络的一部分,则该媒体节点104、106可经由媒体源102被指示为不可用。作为补充或替代,用户可以能够请求使用中的媒体节点104、106被释放以便被包含在当前的虚拟媒体网络中。在各种实施例中,步骤206的结果是指示网关媒体节点104将媒体信号转发到虚拟媒体网络中的其他媒体节点104、106。
在步骤208中,媒体可从媒体源102被转移到网关媒体节点104。该步骤208可响应于用户选择在与媒体源相关联的输出设备上呈现该媒体而启动。例如,用户可使播放媒体的任何应用在智能手机102a上运行。用户随后可选择网关媒体节点104作为输出设备并且媒体可被转移到网关媒体节点104。注意,该媒体转移可在操作系统(OS)级发生。该转移的含义是任何媒体应用可被用户选择为虚拟媒体网络的媒体源。
在步骤210中,网关媒体节点104可将媒体信号广播到虚拟媒体网络中的其他媒体节点104、106。例如,起居室网关104a可将它从智能手机102a接收的媒体信号广播到办公室渲染器106a、厨房渲染器106b和立体声接收器108。在某些实施例中,每个媒体节点104、106以其自己的用户可控级别(例如,音量)播放媒体。因此,可能有某些命令被从媒体源102发送到网关媒体节点104。然而,网关可执行很多处理。因此,媒体源102不会因沉重的处理负荷而陷入困境。
图3例示出示例性虚拟媒体网络300。如图所示,存在两个媒体节点320、330,它们因为具有用于接收媒体信号的汇集器322、333和用于将媒体信号提供到另一媒体节点320、330、340的广播器而能够充当网关。为了例示,存在与媒体节点320、330、340分开的接入点350。注意,媒体节点320、330、340之一可充当接入点。
某些媒体节点320、330包括广播器324、334。这些节点在本文中可被称为广播节点。广播器324、334可通过硬件或软件的任意组合来实施。在各种实施例中,广播器324、334以其他媒体节点320、330、340理解的播放时间(airtime)广播格式传输媒体。注意,该格式可与用于从媒体源310发送媒体360的格式不同。广播器324、334和渲染器326、336可在同一媒体节点320、330中共存,以便本地回放能与远程渲染器上的回放同步。源注入可经由源汇集器链路来完成。不同于源汇集器传送,播放时间广播可以用于具有同步回放的点到多点媒体传输。
如所述,能够充当网关的媒体节点320、330具有汇集器322、332和广播器324、336的组合。在某些实施例中,网关320、330从媒体源310接收媒体并以和虚拟媒体网络中的其他媒体节点320、330、340相兼容的格式重新广播该媒体。网关320、330还包括渲染器326、336。在各种实施例中,网关媒体节点320、330被视为端点。
网络上可以存在多个能够充当网关的媒体节点320、330。在某些实施例中,网关媒体节点320、330利用选举方法来确定供媒体源310使用的最佳网关。例如,在仅一个具有渲染器326、336的媒体节点320、330对于媒体源310是活动的情况下,该渲染节点也可以是最佳网关,以为其他源节约网络带宽。另一方面,如果多个渲染器对于媒体源310是活动的,则最佳网关可以是具有最强或最佳网络连接的那一个。选举方案的发生可用于识别最佳候选者,并且如果必要的话,流切换可对不同网关320、330发生,这种情况下,原始网关320、330可变成源310的汇集器。这可在流构建或流中途期间发生。在活动网关被禁止的情况下,网络可以自愈并选举新网关来重新建立播出时间广播流。
某些媒体节点320、330、340包括渲染器326、336、346。这种媒体节点320、330、340在本文中可被称为渲染节点。渲染器326、336、346可通过硬件或软件的任意组合来实施。以媒体信号的音频为例,渲染器326、336、346可解码并通过内部加电的扬声器或经由到另一放大器/扬声器设备的模拟或数字输出来播放媒体流。对于视频,渲染器326、336、346可通过内部加电的显示器或经由到另一显示器或者具有或驱动显示器的设备的模拟或数字输出来解码和播放媒体流。在各种实施例中,具有渲染器326、336、346的媒体节点320、330、340支持虚拟挂钟(wall clock)的创建、维护和分发。渲染器326、336、346可使用挂钟来精确地在播放时间流格式中指定的时间戳处渲染流。
在图3的示例中,媒体源310到网关媒体节点320中的汇集器322之间存在连接。媒体360由网关媒体节点320中的渲染器326播放。为了建立该连接,用户可能已选择网关媒体节点320作为媒体源310的输出设备。例如,媒体源310可以是允许用户选择将音频发送至哪个扬声器的蜂窝电话。正被蜂窝电话播放的任何音频可被发送至选择的扬声器。因此,无论什么应用正在提供音频(例如,因特网无线电、MP3等),音频都可被路由到网关媒体节点320。注意,为了让这种情况发生,无需对提供该音频的应用进行改变。媒体源310和网关媒体节点320之间的连接可以是无线或有线的。在各种实施例中,它是蓝牙无线连接。然而,蓝牙以外的无线协议可被使用。
除了媒体源310和网关媒体节点320中的汇集器322之间的连接以外,媒体节点320中的广播器324也被用于将媒体360发送到媒体节点330中的渲染器336和媒体节点340中的渲染器346。在本示例中,接入点350充当中介。然而,接入点350可以不是必备的。在各种实施例中,媒体节点320充当接入点。从媒体源310到媒体节点330和媒体节点340的连接可以通过与媒体源310和媒体节点320之间的连接相似的方式被建立。用户还可建立媒体节点330、340来作为虚拟媒体网络300的一部分。媒体源310可具有允许用户选择哪些媒体节点320、330、340来添加到虚拟网络的软件应用。该应用可向媒体节点320发送指示其将媒体信号转发到作为虚拟媒体网络的活动部分的其他媒体节点330、340的命令。媒体节点320可处理重新格式化媒体信号、路由、在媒体节点之间同步回放等细节。因此,媒体源310不会承受沉重的处理负担。
将理解,虚拟媒体网络300只是设备的一个可能的集合的一种可能的布置。各种替代媒体网络300可包括更少或更多的设备并且可通过不同方式分发媒体。例如,媒体源310可将媒体直接发送到接入点,媒体节点330可代替媒体节点320充当网关,并且媒体节点340可不参与到虚拟网络中。各种替代布置将是清楚的。
如前所述,媒体源310可将媒体360注入到虚拟媒体网络300中。示例包括PC或智能手机。媒体注入的可用方法可包括支持模拟或数字传送、蓝牙和WiFi的线缆。在某些实施例中,媒体源310是广播器,以和虚拟媒体网络相兼容的格式发送媒体数据。在其他实施例中,技术限制使媒体源310的能力限于广播。例如,许多电话的安全模型可防止音频驱动器被第三方修改。另外,媒体源310设备本身可不具有可用的处理或网络带宽。此外,在某些实施例中,媒体源的初始链路的QoS级别采用比其他端点更高的QoS,以便至少一个端点可渲染到最高的可能保真度。
注意,很多格式和连接可用于媒体源310到汇集器322的传输。媒体源310可通过有线、BT A2DP或经由Wi-Fi的特定协议来向汇集器322进行发送,如某些非限制性示例那样。WiFi协议可被设计成在质量和延时之间折衷,或保证精确度。例如,协议可检测差错并请求数据的重传。通常,这可能不是广播的目标;然而,重要的是媒体在广播之前可靠地到达。本文公开的实施例保持与现有设备的兼容性。
在各种实施例中,网络是基于标准的Wi-Fi基础结构的。每个媒体节点可以连接到接入点350,在那里经由DHCP获得IP地址。某些节点310、320、330可能不具有允许输入无线接入密钥的UI(显示器、键盘输入等)。这种情况中,WPS-PBC可被用于实现连接。其他方法可以包括自组织模式,借助该模式,用户从使能了GUI的设备直接连接到端点并经由由节点服务的网页或直接与节点进行通信的应用页面输入网络参数。另一种方法用于让在电话或其他设备上运行的应用经由蓝牙与媒体节点进行通信。应用可以提示用户连接到哪个接入点以及相应的网络接入码。在某些实施例中,媒体节点320、330、340在该设立阶段被用户提供了名称。
在缺少诸如接入点350之类的基础结构的情况下,节点可将自身转化成虚拟接入点。其他节点可发现接入点350并连接以形成私有网络。WPS-PBC和自组织方法可被用于进行安全连接。
图4例示出媒体源400的示例性部件图。媒体源400可对应于示例性环境100的媒体源102a、b或示例性虚拟媒体网络300的媒体源310。媒体源400可包括网络接口410。在各种实施例中,网络接口410包括多个不同的接口。例如,网络接口410可包括Wi-Fi兼容接口和蓝牙兼容接口。作为补充或替代,网络接口410可包括与任何其他协议相兼容的接口。在本示例中,媒体信号(例如,音频流或视频流)可使用网络接口410的蓝牙兼容接口来发送。网络接口410的WiFi兼容接口可被用于发送用于控制虚拟媒体网络的命令。
用户可访问虚拟网络媒体应用420来控制虚拟媒体网络。作为一个示例,虚拟网络媒体应用420可呈现用户界面以允许用户选择媒体节点104和106、控制它们的音量、回放等。在某些实施例中,存在用于网络的主音量和用于每个媒体节点104、106的各个音量。
媒体源应用430可以是能够在媒体源400上播放音频的任何应用。例如,它可以是MP3播放器、因特网音频、web浏览器等。在各种实施例中,媒体将在用户选择的无论什么输出设备上播放。该输出设备选择可以受操作系统(OS)440的控制。例如,OS 440可提供允许用户选择输出设备的弹出窗口。媒体节点104、106中的一个或多个可作为选项出现。通过选择媒体节点104、106之一,与音频应用相关联的媒体信号可通过网络接口410被从媒体源400发送到选择的媒体节点104、106。在某些实施例中,媒体库450被用于解码媒体。媒体库将解码后的媒体发送到网络媒体驱动器445,网络媒体驱动器445将媒体信号发送到选择的输出设备。如果媒体节点104、106被选为输出设备,则媒体信号通过网络接口450被发送。在某些实施例中,网络媒体驱动器445是蓝牙驱动器。然而,网络媒体驱动器445可以与任何协议相兼容。
注意对于前述实施例,虚拟媒体应用420从不接触媒体信号。这可提供如下优势:当通过选择用于媒体源400的适当输出设备将媒体信号发送到媒体节点104、106时,任何媒体源430可被使用。因此,虚拟网络媒体应用420的某些实施例与任何媒体源应用430相兼容。另外,无需对媒体源应用430进行改变。
如前面已经讨论的,网关媒体节点104的某些实施例具有执行媒体信号的重新格式化和处理以便与虚拟媒体网络相兼容的能力。因此,网关媒体节点104可从媒体源102卸掉很多处理。
将认识到,媒体源400例示出一个示例,并且可对媒体源400进行很多修改同时仍实施本文描述的方法和技术。例如,在某些实施例中,网络媒体驱动器445包括虚拟网络媒体驱动器并且虚拟网络媒体应用420可不存在。在这种实施例中,用户可安装虚拟媒体网络驱动器445以辅助将媒体信号发送到媒体节点104、106。当用户希望媒体信号发送到媒体节点104、106时,用户简单地在OS 440呈现的界面中选择媒体节点。这选择了虚拟网络媒体驱动器445。例如,媒体信号可从媒体库450被提供到虚拟网络媒体驱动器445。如像前面的示例那样,媒体源应用430可以是用于播放媒体的任何应用。
虚拟网络媒体应用420可以与前面描述的类似。例如,虚拟网络媒体应用420可为用户提供用于选择添加到虚拟网络的媒体节点104、106并用于控制网络的界面。虚拟网络媒体应用420在某些实施例中是可选的,因为其功能可被合并到虚拟网络媒体驱动器445中。
另外,利用同一协议并经由网络接口410,命令信道可被用于发送命令并且数据信道可被用于发送媒体信号。例如,命令和数据都可根据WiFi协议或蓝牙协议被发送。如上所述,可替代地,命令和数据可根据不同的协议被发送。
注意,通过将驱动器445合并到OS 440中,来自任何媒体源应用430的媒体信号可被发送到媒体节点104、106。用户需要做的全部事情是选择媒体节点104、106之一。作为响应,虚拟网络媒体驱动器445被使用。因此,虚拟媒体网络可与在媒体源400上运行的任何媒体源应用430一起使用。
在某些实施例中,媒体源应用430被嵌入到虚拟网络媒体应用420中。在某些这样的实施例中,被媒体源应用430播放的任何媒体被发送到媒体节点104、106。
在各种实施例中,媒体被属于虚拟媒体网络的媒体源400和媒体节点104、106同时渲染。例如,媒体源400可渲染媒体的视频信道,而媒体节点104、106可渲染媒体的音频信道。在某些这样的实施例中,各种媒体信道保持同步。例如,媒体源400可将时间戳和媒体数据一起发送以表明该媒体数据何时应被媒体节点104、106渲染。类似地,当转发数据到其他媒体节点104、106时,网关104也可包括与媒体数据相关联的时间戳。为了使能时间戳的这种交换,各种媒体设备104、106、400可具有共同的参考时钟(如虚拟挂钟),或在各种时间域间转换时间戳的方法,如下面将更详细地描述的。
图5例示出媒体节点500的示例性部件图。媒体节点500可对应于示例性环境100的媒体节点104、106中的一个或多个。媒体节点500可具有网络接口510。网络接口510可根据一个或多个无线或有线协议来使能通信。在各种实施例中,一个或多个天线被连接到网络接口510。在某些实施例中,网络接口510既和Wi-Fi兼容又和蓝牙兼容。作为补充或替代,网络接口510可以与任何其他协议兼容。在某些实施例中,网络接口510包括一个或多个有线网络接口。
渲染器520可负责处理用于在扬声器530、显示器540或其他输出设备(未示出)上呈现的媒体信号。将理解,取决于媒体节点被设计要渲染的媒体的类型,各种替代媒体节点可不包括扬声器530或显示器540。另外,媒体节点500可不包括渲染器520,其中媒体节点520被设计成仅用作网关或其他广播器而非渲染设备。渲染模块可从网络接口510接收媒体信号。
广播器550可以能够经由网络接口510将媒体信号转发到其他适当媒体节点104、106。辅助输出560可被用于将媒体信号提供到诸如家庭立体声系统之类的设备。在某些实施例中,广播器550处理媒体信号到辅助输出560的转发。在各种实施例中,媒体节点500不包括辅助输出560。另外,媒体节点500可不包括广播器550,其中媒体节点500被设计成仅用作渲染设备而非网关或其他广播设备。
命令模块570可以能够处理命令以控制媒体信号。这些命令可包括音量、播放、暂停等。同步模块580可负责媒体信号在网络中的各种媒体节点上回放期间的精确同步。如下面将详细描述的,同步模块580可发送或接收用于建立初始时钟同步的信标消息。另外,在媒体流开始之后,同步模块580可插入或从媒体分组中提取时间戳以用于改进或校正媒体回放期间的时钟同步。
媒体节点104、106可以通过各种机制来控制。控制器可包括智能手机应用、平板应用或TV或机顶盒上的UI、节点上带显示或不带显示的按钮或PC应用。在某些实施例中,这些设备控制渲染器520是否渲染其特定流或特定信道、渲染器520的音量输出和主音量。
在某些实施例中,媒体节点500支持命令协议。命令协议可包括用于开启/关闭音频回放、将音频回放聚合成同步区域、传输诸如播放、前进、倒退和寻找之类的控制的方法、到节点的元数据传送、网络状态向加入网络的设备的公告、当设备离开网络时状态的更新、经由远程用户接口的控制以及维护播放时间网络的其他消息和方法。
注意,媒体节点500的元件可用软件、硬件或软件和硬件的组合来实施。媒体节点500可具有一个或多个处理器和其上带有指令的计算机可读存储介质,所述指令当在一个或多个处理器上运行时实施媒体节点500的各种元件的功能。
图6例示出媒体设备600的示例性硬件图。示例性媒体设备600可对应于示例性环境100的媒体设备102、104、106、媒体源400或媒体节点500中的任何一个。如图所示,硬件设备600可包括经由一个或多个系统总线660互连的处理器610、存储器620、用户接口630、网络接口640和储存器650。将理解,图6在某些方面构成一种抽象,并且媒体设备600的部件的实际组织可能比所例示的更复杂。例如,处理器610和存储器620可经由本地微处理器总线连接,并且用户接口630、网络接口640和储存器650可经由一个或多个输入/输出总线连接。
处理器610可以是能够运行存储器620或储存器650中存储的指令的任何硬件设备。这样,处理器可包括微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASCI)或其他类似设备。
存储器620可包括各种存储器,例如L1、L2或L3缓存或系统存储器。这样,存储器620可包括静态随机存取存储器(SRAM)、动态RAM(DRAM)、闪存、只读存储器(ROM)或其他类似的存储设备。
用户接口630可包括用于使能与用户的通信或渲染用户的媒体的一个或多个设备。例如,用户接口630可包括显示器、扬声器、打印机、辅助输出、鼠标、键盘、字母数字键盘、轨迹球、触笔或按钮。
网络接口640可包括用于使能与其他硬件设备的通信的一个或多个设备。例如,网络接口640可包括一个或多个被配置成根据以太网协议、TCP/IP协议、WiFi协议或蓝牙协议来通信的网络接口卡(NIC)。用于网络接口640的各种替代或补充硬件或配置将是清楚的。
储存器650可包括诸如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备或类似的存储介质之类的一个或多个机器可读存储介质。储存器还可包括便携式非易失性存储介质(如软盘)以将数据和代码输入到媒体设备600和从媒体设备600输出数据和代码。在各种实施例中,储存器650存储供处理器610运行的指令或处理器610可操作的数据。例如,储存器可存储用于协调媒体设备600的基本功能的操作系统670和用于发送足以使另一媒体设备同步回放的信息或用于处理由另一媒体设备发送的这种信息以同步回放的同步指令672。
依据媒体设备600的角色或能力,储存器650可存储各种附加指令。例如,在媒体设备600能够用作媒体源的情况下,储存器650可存储用于获取媒体或在设备600上播放媒体的媒体源应用指令674、用于解码媒体的媒体库指令676或用于使得用户能够向虚拟媒体网络发送命令的虚拟网络媒体应用指令678。这些指令674、676、678的各种其他功能鉴于前面的描述(如示例性媒体源400的描述)将是清楚的。在媒体设备600补充地或替代地能够用作媒体节点的情况下,储存器可存储用于处理由媒体源或其他控制器发出的命令的命令模块指令680、用于将媒体转发到其他媒体节点的广播器指令682和用于与其他设备同步地渲染媒体的渲染器指令684。这些指令680、682、684的各种其他功能鉴于前面的描述(如示例性媒体节点500的描述)将是清楚的。
媒体设备600中包含的部件是通常在适于与本文描述的方法和系统一起使用的计算机系统中发现的部件,并且打算表示这些计算机部件的广义类别。因此,媒体设备600可以是蜂窝电话、智能手机、PDA、平板计算机、个人计算机、移动计算设备、工作站、服务器、迷你计算机、大型计算机或任何其他计算设备。计算机还可以包括不同的总线配置、联网平台、多处理器平台等。各种操作系统660可以被使用,包括Unix、Linux、Windows、Macintosh OS、Palm OS、Android OS、iOS和其他适当的操作系统。
图7例示出广播媒体信号的示例性方法700。方法700可对应于方法200的步骤210。在步骤710中,网关媒体节点104和其他媒体节点102、104、106可建立定时参数。在某些实施例中,媒体节点104、106同步到虚拟挂钟。虚拟挂钟可被广播器使用以利用计划的渲染时间给媒体流打时间戳。虚拟挂钟可被渲染器用来精确地在给定时间渲染媒体样本。虚拟挂钟可帮助确保媒体节点104、106对渲染时间具有共识。在某些实施例中,每个渲染设备在媒体流中指定的时间渲染样本。用于渲染流的其他信息也可被包含在流格式中,包括采样频率、字大小、信道数、编码格式等。
虚拟挂钟或某些其他共同定时参考可在步骤710中被建立。例如,网关媒体节点104可启动包含时间戳的信标消息的“洪泛”,所述时间戳表明每个信标消息何时被发送。然后,进行接收的媒体节点104、106可通过确定发送者的时间戳和每个信标消息被发送的时间之间的差来计算偏移值。此计算出的偏移可反映三个独立值的总和:发送设备和接收设备的时钟之间的真实偏移;与诸如网络传播时间、发送设备在插入时间戳和实际发送信标消息之间所花费的时间、以及接收设备在接收信标消息和确定接收时间之间所花费的时间之类的时间相关联的固定延迟;以及与网络波动相关联并且为各种无线网络连接所共有的可变延迟。由于固定延迟几乎是恒定的,因此接收设备可被保证计算出的最小偏移是计算出的偏移中的如下偏移:该偏移包括最小可变网络延迟并因此是真实时钟偏移加上固定网络延迟的最接近的可用估计。接收设备随即可基于最小偏移来调整它自己的时钟或者坚持在比较后续发送设备时间戳和本地时钟时使用该偏移。固定网络延迟可在渲染处理期间被考虑以保证恰当的同步。类似的方法可被用于建立媒体源102和媒体网关104之间的同步。
在步骤720中,网关媒体节点104从媒体源102接收媒体信号。在步骤730中,网关媒体节点104解码媒体。网关可在解码之前解复用媒体信号。
在步骤740中,网关媒体节点104重新编码媒体以广播到其他媒体节点104、106。注意,网关可使用与媒体源102使用的不同的编码。例如,媒体信号可能在媒体源102处以和蓝牙相兼容的格式被编码。它可与和Wi-Fi相兼容的格式被重新编码。
在步骤750中,网关媒体节点104封装媒体信号。在各种实施例中,网关媒体节点104压缩媒体信号。作为压缩音频媒体信号的示例,在高质量网络中,诸如自由音频无损编解码器(FLAC)之类的轻型无损压缩技术可以被用于以最小的处理开销将带宽一分为二。在低质量网络中,诸如OGG或高级音频编码(AAC)之类的较高压缩标准可以被用于以声音质量和处理开销为代价来最小化网络带宽。在压缩算法本身以外,信号可以被重新采样到较低的采样速率,下混频到单信道流或向下采样到较低的采样分辨率。将媒体流编码或转码到压缩形式可以通过以处理开销为代价使用较少的网络带宽来改善播放时间可靠性。支持的编解码可包括各种比特率、采样频率、信道和采样大小的无损和有损压缩技术。
在某些实施例中,所有媒体节点104、106知道被支持的编码格式。在某些实施例中,所有广播器能够编码成被支持的格式。在某些实施例中,所有渲染器能够解码被支持的格式。用于每个流的编码格式可利用来自网络质量、可用处理资源、被支持的渲染区域的数目、被支持的活动流的数目以及最大可接受延时的反馈在媒体节点104、106之间确定。
在可选步骤760,冗余分组被添加。如果媒体信号已被压缩,则附加分组可被添加。在某些实施例中,一群分组与一群冗余分组交织。例如,以2:1的压缩比,两秒的原始媒体信号可被压缩成一秒。作为一个示例,值一秒的数据分组可与一秒的冗余分组交织。群中分组的数目可以为一或更高。
在某些实施例中,广播具有两个选项。在选项A中,如所例示的,网关媒体节点104可在步骤770中将媒体信号广播到其他媒体节点10。在选项B中(未示出),网关媒体节点104可将媒体信号发送到无线接入点。无线接入点可将媒体信号广播到其他媒体节点。
广播媒体可能是网络带宽的最大消耗者。典型的未压缩音频流可能超过1.5mbps。传送可能每个上行到接入点310的流消耗1.5mbps,每个下行到渲染器306的流消耗额外的1.5mbps,合计3mbps。对于点到点同播,典型的带宽可以是3mbps乘以同播流的数目。这具有使网络饱和的潜力。
各种实施例支持多个传送协议。在某些实施例中,IP上的UDP被使用。注意,在某些实施例中,进行接收的媒体节点不被要求确认分组的接收。例如,IP上的UDP可以不要求分组的接收。在某些实施例中,进行接收的媒体节点可请求网关重新发送未收到的数据分组。注意,这可能在使用IP上的UDP的实施例中发生。如上所述,在某些实施例中,冗余数据分组被发送。
网络统计资料可由媒体节点104、106维护。在各种实施例中,选举出的广播器或网关负责确定最佳传送方法以平衡服务质量、延时、处理器利用率和网络利用率。例如,如果网络因高可用带宽和到各个节点104、106的强连接而质量高,则有保证的传送协议可以被使用。如果网络饱和或质量较低,则多播技术可能更好。附加方法可帮助节约带宽并检测、校正或隐藏传送差错。一般地,多播、同播和点到点协议由构建流时确定的最合适协议支持,网络质量、可用处理功率和流的数目是决定过程中的促成因素。
媒体时钟可参考挂钟通过媒体流来恢复并可同步到媒体帧或样本群。媒体时钟可驱动硬件帧时钟、字时钟和比特时钟的形成。经由媒体流的同步可保证精确的时钟可以从合乎逻辑的观点在媒体节点104、106处生成。硬件(如晶体)的微小变化可能导致时钟漂移和时钟定时的其他变化。不断测量和比较媒体时钟和挂钟允许系统检测漂移。在某些实施例中,纯软件媒体时钟恢复机制涉及向媒体渲染缓冲器添加或从媒体渲染缓冲器移除媒体样本以跨设备重新同步时钟。在某些实施例中,渲染缓冲器操作以不引起明显的发出滴答声或跳跃的效果的方式完成。使用VCXO或压控振荡器的硬件机制可基于漂移测量被从处理器控制并将硬件振荡器推或拉成更严格的同步。
如上所述,本文描述的各种系统可通过建立共同定时参考来在多个设备之间同步媒体回放。例如,媒体源和媒体网关可协作以建立这种共同定时参考或者媒体网关和媒体节点可协作以建立这种共同定时参考。在建立定时参数的上下文中,该方法可被在两个媒体设备之间被分割:发送媒体设备和接收媒体设备。在各种实施例中,共同定时参考是发送媒体设备处的时钟值在接收媒体设备处的估计。
图8例示出发送媒体设备用来与接收媒体设备同步回放的示例性方法800。示例性方法800可由用作发送媒体设备(诸如例如示例性环境100的媒体源102或媒体网关104)的任何媒体设备执行。方法800可作为示例性方法700的步骤710的一部分或在当媒体设备之间的定时参数的同步合适时的任何时间执行。
方法800开始于步骤805并进行到步骤810,其中发送设备可确定发送设备应开始洪泛供接收设备用于建立定时参数的“信标消息”。例如,发送设备可确定接收设备已上电,接收设备已被添加到虚拟媒体网络,或发送设备要开始发送媒体到接收设备。在步骤815中,发送设备生成新的信标消息。信标消息可以是将由接收设备识别的任何类型的分组或其他数据消息。例如,信标消息可根据发送设备和接收设备都实施的专有协议来形成。在各种实施例中(例如在信标消息在去往接收设备的途中可穿越一个或多个诸如路由器或交换机之类的中间设备的实施例中),发送设备构造信标消息以携带关于该信标消息构成高优先级流量的标志或其他指示。用于优先化网络内的信标消息的各种机制将基于由各种可能的联网技术所采用的各个优先化方案而变化。信标消息这种优先化可有助于优化通过混合拓扑网络的路由时间从而减少可变网络延迟因素。
接着,在步骤820中,发送设备用发送设备的时钟目前表示的时间给信标消息打时间戳。该时间戳可称为“发送者时间戳”。然后,在步骤825中,发送设备将信标消息发送到一个或多个接收设备。在步骤820和步骤825之间流逝的时间形成将被接收设备计算的时钟偏移值的固定延迟分量的一部分。这样,方法800的各种实施方式力图减少或最小化发生在步骤820和步骤825之间的操作的数目。在各种实施例中,发送设备在相对于多个其他媒体设备建立定时参数中发挥作用。例如,媒体网关104可发送信标消息到多个其他媒体节点104、106。在某些这种实施例中,发送设备例如通过分别将信标消息的副本寄给每个媒体设备或将该消息多播给多个媒体设备来在步骤825中发送信标消息至多个媒体设备。作为补充或替代,发送设备多次运行方法800来适应多个其他媒体设备。
在步骤830中,发送设备确定发送设备是否完成向接收设备洪泛信标消息。例如,发送设备可继续洪泛信标消息直至预定数目的信标消息已被发送。在各种实施例中,发送设备作为替代或补充使步骤830的条件以来自接收设备的反馈为基础。例如,接收设备可在已实现充分的同步时发送消息或发送表明尽管预定数目的信标消息已被发送但尚未实现充分的同步的消息。作为确定洪泛是否应停止的另一方法,发送设备监视洪泛时段期间的网络性能并继续洪泛直至网络性能满足某种最小可接受阈值。例如,除了发送信标消息,发送设备还可发送往返诊断消息至接收设备。可替代地,接收设备可被配置成将信标消息额外发回发送设备以用于网络诊断。从接收设备接收返回的消息后,发送设备生成网络性能的一个或多个量度。例如,发送设备可生成前一洪泛窗上的网络延迟或抖动的量度,并且如果该量度低于某种最小可接受网络性能,则继续洪泛信标消息,即使预定数目的信标消息已被发送。鉴于本文的教导,清楚的是,这些和其他用于确定信标消息洪泛充分性的方法的各种组合可被采用。
如果发送设备在步骤830中确定信标消息洪泛应继续,则方法800沿环路返回到步骤815以发送附加的信标消息。在洪泛窗包括预定数目的信标消息的发送的各种实施例中,发送设备基于网络性能或其他因素确定前一窗不充分并且可在沿环路返回步骤815之前重置信标消息计数器,从而在新窗中启动另一组信标消息的发送。另一方面,如果发送设备在步骤830中确定洪泛应结束,则方法800进行到步骤835中的结束。之后,发送设备进行到向现已同步的接收设备发送媒体。
将注意到,在各种实施例中,发送设备可不接收任何来自接收设备的基于信标消息的返回消息,或者在发送设备接收返回消息的实施例中,发送设备不将任何返回消息用于建立定时参数。在某些实施例中,返回消息只用于判断洪泛时段的充分性。这样,并且不同于其他时钟同步方法,本文描述的方法可被称为“单向”同步方法,其中大部分同步计算由接收设备而非发送设备执行。
图9例示出接收媒体设备用来与发送媒体设备同步回放的示例性方法900。示例性方法900可由任何用作接收媒体设备(例如示例性环境100的媒体网关104或其他媒体节点104、106)的媒体设备来执行。方法900可作为示例性方法700的步骤710的一部分或在当媒体设备之间的定时参数的同步合适时的任何时间执行。
方法900开始于步骤905并进行到步骤910,其中接收设备初始化最小偏移变量“MinO”以用于在新消息被接收或处理时保持运行的最小偏移值。接着,在步骤915中,接收设备从发送设备接收信标消息。然后,在步骤920中,接收设备基于目前由接收设备的时钟表示的时间来生成时间戳。该时间戳可被称为“接收者时间戳”“R(x)”。在步骤915和步骤920之间流逝的时间形成将由接收设备计算的时钟偏移值的固定延迟分量的一部分。这样,方法900的各种实施方式力图减小或最小化在步骤920和步骤925之间发生的操作的数目。
在步骤925中,接收设备从信标消息中提取发送者时间戳“S(x)”。如上面讨论的,发送者时间戳由发送者设备在发送前不久插入到信标消息中,如在示例性方法800的步骤820中那样。在步骤930中,接收设备确定发送设备是否为虚拟媒体网络的媒体源。例如,如果接收设备作为虚拟媒体网络的网关来操作,则接收设备确定发送设备为媒体源。这种情况下,方法900进行到步骤935。接收设备随后将发送者时间戳从发送设备的时间域转换到虚拟媒体网络的时间域。该转换可涉及添加或减去先前在两个设备之间协商的偏移。时间域之间的这种协商和转换可根据本领域技术人员已知的任何方法来执行。在某些替代实施例中,源设备和媒体节点在同一时间域中维护时钟。在某些这样的实施例中,步骤930、步骤935不存在。
在步骤935中将发送者时间戳转换到虚拟媒体网络域中之后或者在步骤930中确定发送者不是媒体源之后,方法900进行到步骤940,其中接收设备基于发送者时间戳和接收者时间戳(例如,两个时间戳之差)来计算偏移值。该当前偏移值“CurO”等于发送者和接收者时钟之间的真实偏移加上信标消息在两个时间戳S(x)和R(x)的创建之间遇到的任何延迟。如上所述,该延迟包括两个分量。延迟的第一分量是与穿越网络的硬件和软件部件所花费的时间相关联的固定延迟(例如与消息行进所经由的数据路径和电路相关联的恒定延迟)以及OS在消息的发送/接收和相关联的时间戳的生成之间所花费的时间。这样的固定延迟可能已经作为渲染处理的一部分被考虑。延迟的第二分量是与随时间改变的延迟相关联的可变网络延迟。例如,诸如WiFi之类的共享介质网络可能在发送之前等待介质被清空,这样,可能在不同时间引入不同的延迟。
由于可变延迟仅引入附加的延迟(并且不消除延迟),因此对真实时钟偏移的更好估计是从延迟最少的消息获得的。这样,方法900搜索在洪泛期间获得的最小偏移值作为对真实偏移的最佳可用估计。在步骤945中,接收设备将当前偏移CurO与先前定位的最小偏移MinO相比较,或者如果循环的当前迭代是第一个,则将当前偏移CurO与在步骤910中初始化的最小偏移值相比较。如果CurO小于MinO,则已知CurO表示对发送者和接收者时钟之间的真实偏移的更接近的估计,并且在步骤950中,接收者设备用CurO的值改写MinO的值。
在步骤955中,接收者设备确定发送者设备是否已完成洪泛信标消息。例如,接收者设备可在等待附加的信标消息时确定是否已发生超时,可确定发送者设备已开始发送媒体消息,可确定预定数目的信标消息已被接收,或者可确定发送设备已发送表明洪泛结束的特殊消息。在各种实施例中,接收者设备确定洪泛是否足以建立希望的偏移精度。例如,接收者设备可跟踪信标消息被接收的间隔,并且可基于测量的间隔与已知的时间间隔的比较来确定网络是否稳定得足以产生希望的偏移值精度。如果网络不足够稳定,则接收设备向发送设备发送表明应执行附加的洪泛的消息。各种修改将是清楚的。鉴于本文的教导,清楚的是,这些和其他用于确定信标消息洪泛充分性的方法的各种组合可被采用。
如果接收设备确定正在执行或将要执行附加的洪泛,则方法900沿环路从步骤955返回到步骤915以处理附加的信标消息。否则,方法900进行到步骤960,其中接收设备基于确定的最小偏移来重置本地时钟。例如,接收设备可从当前时钟值减去MinO来将本地时钟设置成据估计更接近发送设备的实际时钟值的新值。在其中网络的固定延迟被知晓或被估计的某些实施例中,接收设备从当前时钟值减去MinO并加回到固定延迟值中以尝试分离出计算出的偏移值中的真实时钟偏移值。在某些实施例中,接收设备根本不改变本地时钟,而是可维持最小偏移值MinO以用于比较从发送者设备接收的时间戳与本地时钟。例如,接收设备可在任何这类比较之前将MinO添加到时间戳。各种其他修改将是清楚的。方法900可进行到步骤965中的结束。
在各种替代实施例中,接收设备采用先前建立的下限偏移来帮助确保在洪泛时段期间计算出的不合理的大偏移不被用于重置时钟。例如,如果洪泛时段被涵盖在高可变网络延迟时段中,则计算出的偏移可能远远大于发送者和接收者时钟之间的偏移的真实值。在某些这样的实施例中,接收者首先将在步骤940-950中计算出的最小偏移与先前建立的下限偏移相比较以确定该最小偏移是否大于下限偏移。如果是,则接收者拒绝基于该最小偏移更新时钟并且继续使用先前建立的下限。否则,接收者如在步骤960中详述的那样更新时钟,这是因为最小偏移值小于下限,因而是更好的估计。用于确定下限的示例性方法将在下面参考图11更详细地描述。
在各种实施例中,接收设备周期性地执行方法900以重建同步。在某些这样的实施例中,接收设备将时钟重置为其原始值,删除存储的偏移值,或者以其他方式“回滚”基于先前方法900的运行而做出的任何改变从而在确定时钟偏移时“重新开始”。通过周期性地重建时钟偏移,接收设备可更好地考虑发送设备和接收设备时钟之间的时钟漂移。
鉴于本文的教导将清楚,虽然方法900被描述为在每个信标消息被接收时对其进行处理的实时方法,但是各种替代实施例采用分批处理信标消息的方法。例如,在某些这样的实施例中,接收设备接收多个信标消息,在接收时对消息打时间戳,并且稍后按顺序处理接收的消息以通过与针对步骤925-960描述的方式类似的方式定位最小偏移。
将理解,虽然前述方法尝试生成两个设备之间的时钟偏移的最佳估计,但是网络状态在该初始洪泛时段之后临时改善并且更好的估计可在稍后获得是可能的。另外,方法可在初始定时参数建立之后被采用以尝试更好地估计时钟偏移。这些方法还可解决时钟漂移的可能性,其中晶体、温度或其他参数的差别可能导致发送设备时钟和接收设备时钟以稍微不同的速率工作。
图10例示出接收媒体设备用来在媒体流传输期间获得更好的回放同步的示例性方法1000。示例性方法1000可由用作接收媒体设备(例如虚拟环境100的媒体网关104或其他媒体节点104、106)的任何媒体设备执行。方法1000可作为示例性方法700的步骤780的一部分或在当媒体设备之间的定时参数的同步合适时的任何时间执行。
方法1000开始于步骤1005并进行到步骤1010,其中接收设备从发送设备接收媒体数据分组。接着,在步骤1015中,接收设备基于目前由接收设备的时钟表示的时间来生成时间戳“R(x)”。在步骤1020中,接收设备从媒体数据消息中提取发送者时间戳“S(x)”。发送者时间戳可以已由发送者设备在发送前不久插入到媒体数据消息中。在步骤1025中,接收设备确定发送设备是否为虚拟媒体网络的媒体源。例如,如果接收设备作为虚拟媒体网络的网关来操作,则接收设备可确定发送设备为媒体源。这种情况下,方法1000进行到步骤1030。接收设备随后将发送者时间戳从发送设备的时间域转换到虚拟媒体网络的时间域。该转换可涉及添加或减去先前在两个设备之间协商的偏移。时间域之间的这种协商和转换可根据本领域技术人员已知的任何方法来执行。在某些替代实施例中,源设备和媒体节点在同一时间域中维护时钟。在某些这样的实施例中,步骤1020、步骤1030不存在。
在步骤1030中将发送者时间戳转换到虚拟媒体网络域中之后或者在步骤1025中确定发送者不是媒体源之后,方法1000进行到步骤1035,其中接收设备基于发送者时间戳和接收者时间戳(例如,两个时间戳之差)来计算偏移值。在发送者时间戳已被转换的情况中,经转换的时间戳被用于计算该偏移。该偏移值“O”等于发送者和接收者时钟之间的真实偏移加上媒体数据消息在两个时间戳S(x)和R(x)的创建之间遇到的任何延迟,包括固定延迟和可变延迟二者。在步骤1040中,接收设备确定该偏移值是否表示对时钟之间的偏移的比先前采用的估计更好的估计。例如,在其中先前确定的最小偏移被用于重置接收设备的时钟的各种实施例中,接收设备确定当前偏移O是否小于零。该比较的肯定结果表明先前使用的最小偏移可能已合并了某个可变网络延迟并且从本地时钟减去该可变网络延迟“越过”理想设置点从而将本地时钟设为落后于发送者的时钟。通过合并比先前使用的最小值更少的(或零)可变延迟,当前偏移O可通过成为负数来揭示这种过冲。这种情况下,当前偏移O将被判断为揭示对真实时钟偏移的新的最佳估计,并且在步骤1045中可被用于再次重置本地时钟从而至少部分地校正先前的过冲。其他实施例的各种修改将是清楚的。例如,在其中先前确定的最小偏移不被用于修改本地时钟而是替代地坚持被用于时间戳比较的实施例中,步骤1040确定当前偏移O是否小于先前的最小偏移MinO,并且如果是,则接收设备在步骤1045中将MinO设置成等于O。各种其他修改将是清楚的。
在各种替代实施例中,接收设备采用先前建立的下限偏移来帮助确保在洪泛时段期间计算出的不合理的大偏移不被用于重置时钟。在某些这样的实施例中,接收者首先将在步骤1035中计算出的偏移与先前建立的下限偏移相比较以确定该偏移是否表示比下限偏移更好的对真实偏移的估计。如果是,则接收者拒绝基于该最小偏移更新时钟并且继续使用先前建立的下限。否则,接收者如在步骤1045中详述的那样更新时钟,这是因为该偏移值是比下限更好的估计。用于确定下限的示例性方法将在下面参考图11更详细地描述。
在步骤1050中,接收设备进行到处理接收的媒体分组以便例如在适当的时间渲染媒体输出。例如,接收设备可从媒体数据分组提取与发送者时间戳和接收者时间戳分开的呈现时间。该呈现时间指示由消息携带的媒体数据应被渲染的时间。在提取呈现时间之后,接收设备令媒体数据在与呈现时间相匹配的时间被渲染。例如,接收设备可缓冲媒体数据以供本地回放设备回放或者可将消息转发至另一媒体节点来回放。将理解,与呈现时间“匹配”的当前时间可涵盖当前时间与呈现时间戳之间的等同时间,但也可涵盖其他形式的匹配。例如,在各种实施例中,当前时间在当前时间减去被坚持的最小偏移值等于呈现时间戳时匹配。作为补充或替代,用于匹配的比较添加、减去或以其他方式将固定延迟值考虑在内。各种其他用于基于本地时钟、呈现时间戳和其他潜在可用值来确定回放的合适时间的方法将是清楚的。另外,当前时间基于最小偏移值与呈现时间相匹配的概念将被理解成涵盖采用先前已通过最小偏移值被修改的本地时钟但在其他方面不明确地将最小偏移值考虑在内的比较。各种实施例紧接在输出之前执行该比较以确保数据在合适的时间被输出。其他实施例使用该比较以将媒体数据在媒体有可能在呈现时间被回放的位置插入到回放缓冲器中。这种插入可能涉及在插入媒体数据之前插入“哑”数据以调整回放的定时。控制缓冲器中的数据的回放定时的各种附加方法将是清楚的。
图11例示出确定下限偏移的示例性方法1100。如上所述,各种替代实施例在信标洪泛和媒体分组的分析之前额外建立下限偏移以确定更好的时钟偏移估计。示例性方法1100可由用作接收媒体设备(例如虚拟环境100的媒体网关104或其他媒体节点104、106)的任何媒体设备执行。方法1000可作为示例性方法700的步骤710的一部分或在当媒体设备之间的定时参数的同步合适时的任何时间执行。
方法1100开始于步骤1105并进行到步骤1110,其中接收设备开始通过从发送设备接收握手消息来从在接收设备和发送设备之间的往返运输收集时间戳以用于计算下限。在各种实施例中,握手消息是通过与发送信标消息或媒体数据分组的信道不同的信道传送的。例如,握手消息可通过蓝牙信道来传送,而信标消息和媒体数据分组消息可通过WiFi信道来传送。作为采用的握手协议的一部分,发送者在握手消息中包含如下时间戳,该时间戳表明根据发送者时钟的发送者传送该握手消息的时间t1。然后在步骤1115中,在接近握手消息在步骤1110中的接收的时间,接收者记录根据接收者时钟的接收时间戳t2。
接着,接收者设备通过在步骤1120中生成如下时间戳来准备将握手消息传送回发送者设备,该时间戳表明根据接收者时钟的接收者将握手消息重新发送回发送者的时间t3。在某些实施例中,接收者可将时间戳t3插入到从发送者接收的握手消息中或插入到新生成的握手消息中。然后在步骤1125中,在接近时间戳t4的生成的时间,接收者将握手消息传送到发送者。然后,在步骤1130中,接收者可从发送者再次接收回握手消息。作为发送者处理握手消息的一部分,握手消息现在包括如下时间戳,该时间戳表明根据发送者时钟的发送者接收该握手消息的时间t4。
如下面将解释的,四个时间戳t1-t4可被用于计算下限偏移。然而,在某些实施例中,接收者设备首先使用时间戳t1-t4来计算握手消息所经历的网络运输时间以确定握手处理期间的网络延迟是否低得足以提供精确的或在其他方面可接受的下限。这样,接收者设备在步骤1135中使用以下公式计算运输时间:运输时间=((t2-t1)+(t4-t3))/2。接着,接收者通过例如确定计算出的运输时间是否小于预定阈值来确定该运输时间是否是可接受的。如果计算出的运输时间是不可接受的,则接收者设备在步骤1145中指示发送者重试握手处理并且沿环路返回到步骤1110以重新尝试处理。另一方面,如果网络运输时间是可接受的,则接收者使用以下公式在步骤1150中使用时间戳计算下限偏移:下限偏移=((t2-t1)-(t4-t3))/2。方法随后进行到步骤1155中的结束。
将明白,在某些实施例中,发送者时钟可能落后于接收者时钟,使得接收者设备产生的时间戳小于发送者设备产生的时间戳。将理解上面的下限时钟偏移公式可基于计算出的值的符号来表明时钟调整的方向。在某些实施例中,接收者设备在比较各种计算出的偏移来确定哪个偏移是更好的估计时可采用绝对值,使得仅大小被比较而非相对调整方向。
在各种实施例中,接收设备周期性地执行方法1100以重建同步。在某些这样的实施例中,接收设备将时钟重置为其原始值,删除存储的下限偏移值,或者以其他方式“回滚”基于先前方法1100的运行而做出的任何改变从而在确定时钟偏移时“重新开始”。通过周期性地重建下限偏移,接收设备可更好地考虑发送设备和接收设备时钟之间的时钟漂移。
鉴于前述内容,各种实施例实现了媒体回放在属于表现出可变延迟的网络的媒体设备之间的同步。例如,通过实施其中接收设备从多个消息中识别最小时钟偏移的单向同步方法,可变延迟对时钟同步的影响可被降低。此外,通过在媒体流已经开始后持续搜索更好的同步参数,接收设备可在考虑时钟漂移的同时改善同步。各种附加优点鉴于前述内容将是清楚的。
从前面的描述应明白,本发明的各种示例性实施例可在硬件中实施。此外,各种示例性实施例可作为存储在机器可读存储介质上的指令来实施,所述指令可被至少一个处理器读取和运行以执行本文详细描述的操作。机器可读存储介质可包括用于以机器可读的形式存储信息的任何机制,所述机器例如是个人或膝上型电脑、服务器或其他计算设备。因此,有形和非暂时性机器可读存储介质可包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光学存储介质、闪存设备和类似的存储介质。另外,如本文所使用的,术语“处理器”将被理解成涵盖微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或者能够执行本文描述的功能的任何其他设备。
本领域技术人员将理解,本文的任何框图表示体现了发明原理的例示性电路的概念性视图。类似地,将理解,任何流程图、流图、状态转移图、伪码等表示实质上可在机器可读介质上表示并因此由计算机或处理器运行的各种处理,不论该计算机或处理器是否被明确示出。
虽然已具体参考各种示例性实施例的某些示例性方面详细描述了各种示例性实施例,但是应理解,发明能够具有其他实施例并且其细节能够在各种明显的方面被修改。如本领域技术人员容易明白的,变化和修改可以在保持在本发明的精神和范围内的同时生效。因此,前述公开、描述和附图仅用于例示性目的并且不以任何方式限制本发明,本发明仅由权利要求限定。
Claims (15)
1.一种在发送媒体设备和接收媒体设备之间同步媒体回放的方法,所述方法包括:
在接收媒体设备处,接收来自发送媒体设备的多个消息,其中所述多个消息包括多个发送者时间戳;
基于所述多个发送者时间戳和接收媒体设备的时钟来生成多个时钟偏移值;
从所述多个时钟偏移值中识别最小时钟偏移值;
定位用于回放的第一媒体数据和与第一媒体数据相关联的第一呈现时间;以及
使第一媒体数据在基于最小时钟偏移与第一呈现时间相匹配的第一时间被渲染。
2.根据权利要求1所述的方法,其中识别最小时钟偏移值包括:
生成所述多个时钟偏移值中的第一时钟偏移值;
将最小时钟偏移值设置成等于第一时钟偏移值;
在将最小时钟偏移值设置成等于第一时钟偏移值之后生成所述多个时钟偏移值中的第二时钟偏移值;
确定第二时钟偏移值小于最小时钟偏移值;以及
基于对第二时钟偏移值小于最小时钟偏移值的确定,将最小时钟偏移值设置成等于第二时钟偏移值。
3.根据权利要求1所述的方法,还包括:
通过从接收媒体设备的时钟的值中减去最小偏移值来修改时钟的值,
其中基于最小时钟偏移值与第一呈现时间相匹配的第一时间包括与第一呈现时间相匹配的时钟的值。
4.根据权利要求1所述的方法,其中所述多个消息包括第一多个消息和第二多个消息,所述方法还包括:
生成第一多个消息到达的间隔的第一量度;
确定第一多个消息到达的间隔的第一量度表明网络不稳定;
指示发送媒体设备发送附加消息;
在指示发送媒体设备发送附加消息之后生成第二多个消息到达的间隔的第二量度;
确定第二多个消息到达的间隔的第二量度表明网络稳定,
其中从所述多个时钟偏移值中识别最小时钟偏移值包括使用与第二多个消息相关联的多个时钟偏移值中的至少一个时钟偏移值。
5.根据权利要求1所述的方法,其中所述多个消息包括第一多个消息和第二多个消息,所述方法还包括:
由发送媒体设备传送第一多个消息,
由发送媒体设备生成与第一多个消息的传送相关联的网络性能的第一量度,
确定网络性能的第一量度表明网络不稳定,
基于对网络性能的第一量度表明网络不稳定的确定由发送媒体设备传送第二多个消息,
由发送媒体设备生成与第二多个消息的传送相关联的网络性能的第二量度,以及
确定网络性能的第二量度表明网络稳定。
6.一种用于与发送媒体设备同步媒体回放的接收媒体设备,所述接收媒体设备包括:
被配置成存储用于回放的媒体数据的存储器;
被配置成与发送媒体设备通信的网络接口;以及
处理器,所述处理器被配置成:
经由网络接口接收来自发送媒体设备的多个消息,其中所述多个消息包括多个发送者时间戳;
基于所述多个发送者时间戳和接收媒体设备的时钟来生成多个时钟偏移值;
从所述多个时钟偏移值中识别最小时钟偏移值;
定位用于回放的第一媒体数据和与第一媒体数据相关联的第一呈现时间;以及
使第一媒体数据在基于最小时钟偏移值与第一呈现时间相匹配的第一时间被渲染。
7.根据权利要求6所述的接收媒体设备,其中在识别最小时钟偏移值中,所述处理器被配置成:
生成所述多个时钟偏移值中的第一时钟偏移值;
将最小时钟偏移值设置成等于第一时钟偏移值;
在将最小时钟偏移值设置成等于第一时钟偏移值之后生成所述多个时钟偏移值中的第二时钟偏移值;
确定第二时钟偏移值小于最小时钟偏移值;以及
基于对第二时钟偏移值小于最小时钟偏移值的确定,将最小时钟偏移值设置成等于第二时钟偏移值。
8.根据权利要求6所述的接收媒体设备,其中所述处理器还被配置成:
通过从接收媒体设备的时钟的值中减去最小偏移值来修改时钟的值,
其中基于最小时钟偏移值与第一呈现时间相匹配的第一时间是与第一呈现时间相匹配的时钟的值。
9.根据权利要求6所述的接收媒体设备,其中所述多个消息包括第一多个消息和第二多个消息,并且所述处理器还被配置成:
生成第一多个消息到达的间隔的第一量度;
确定第一多个消息到达的间隔的第一量度表明网络不稳定;
指示发送媒体设备发送附加消息;
在指示发送媒体设备发送附加消息之后生成第二多个消息到达的间隔的第二量度;
确定第二多个消息到达的间隔的第二量度表明网络稳定,
其中在从所述多个时钟偏移值中识别最小时钟偏移值中,所述处理器被配置成使用与第二多个消息相关联的多个时钟偏移值中的至少一个时钟偏移值。
10.一种系统,包括:
根据权利要求6所述的接收媒体设备,其中所述多个消息包括第一多个消息和第二多个消息;以及
所述发送媒体设备,包括:
发送媒体设备网络接口,被配置成与接收媒体设备通信,以及
发送媒体设备处理器,被配置成:
传送第一多个消息,
生成与第一多个消息的传送相关联的网络性能的第一量度,
确定网络性能的第一量度表明网络不稳定,
基于对网络性能的第一量度表明网络不稳定的确定,传送第二多个消息,
生成与第二多个消息的传送相关联的网络性能的第二量度,以及
确定网络性能的第二量度表明网络稳定。
11.一种编码有指令的非暂时性机器可读存储介质,所述指令供接收媒体设备运行以在发送媒体设备和接收媒体设备之间同步媒体回放,所述介质包括:
用于在接收媒体设备处接收来自发送媒体设备的多个消息的指令,其中所述多个消息包括多个发送者时间戳;
用于基于所述多个发送者时间戳和接收媒体设备的时钟来生成多个时钟偏移值的指令;
用于从所述多个时钟偏移值中识别最小时钟偏移值的指令;
用于定位用于回放的第一媒体数据和与第一媒体数据相关联的第一呈现时间的指令;以及
用于使第一媒体数据在基于最小时钟偏移值与第一呈现时间相匹配的第一时间被渲染的指令。
12.根据权利要求11所述的非暂时性机器可读存储介质,其中用于识别最小时钟偏移值的指令包括:
用于生成所述多个时钟偏移值中的第一时钟偏移值的指令;
用于将最小时钟偏移值设置成等于第一时钟偏移值的指令;
用于在将最小时钟偏移值设置成等于第一时钟偏移值之后生成所述多个时钟偏移值中的第二时钟偏移值的指令;
用于确定第二时钟偏移值小于最小时钟偏移值的指令;以及
用于基于对第二时钟偏移值小于最小时钟偏移值的确定将最小时钟偏移值设置成等于第二时钟偏移值的指令。
13.根据权利要求11所述的非暂时性机器可读存储介质,还包括:
用于通过从接收媒体设备的时钟的值中减去最小偏移值来修改时钟的值的指令,
其中基于最小时钟偏移值与第一呈现时间相匹配的第一时间是与第一呈现时间相匹配的时钟的值。
14.根据权利要求11所述的非暂时性机器可读存储介质,其中所述多个消息包括第一多个消息和第二多个消息,所述介质还包括:
用于生成第一多个消息到达的间隔的第一量度的指令;
用于确定第一多个消息到达的间隔的第一量度表明网络不稳定的指令;
用于指示发送媒体设备发送附加消息的指令;
用于在指示发送媒体设备发送附加消息之后生成第二多个消息到达的间隔的第二量度的指令;
用于确定第二多个消息到达的间隔的第二量度表明网络稳定的指令,
其中用于从所述多个时钟偏移值中识别最小时钟偏移值的指令包括用于使用与第二多个消息相关联的多个时钟偏移值中的至少一个时钟偏移值的指令。
15.一种非暂时性机器可读介质的组,所述组包括:
根据权利要求11所述的非暂时性机器可读存储介质,其中所述多个消息包括第一多个消息和第二多个消息;以及
编码有供发送媒体设备运行的指令的附加非暂时性机器可读存储介质,所述附加非暂时性机器可读存储介质包括:
用于传送第一多个消息的指令,
用于生成与第一多个消息的传送相关联的网络性能的第一量度的指令,
用于确定网络性能的第一量度表明网络不稳定的指令,
用于基于对网络性能的第一量度表明网络不稳定的确定传送第二多个消息的指令,
用于生成与第二多个消息的传送相关联的网络性能的第二量度的指令,以及
用于确定网络性能的第二量度表明网络稳定的指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261701326P | 2012-09-14 | 2012-09-14 | |
US61/701,326 | 2012-09-14 | ||
PCT/US2013/059539 WO2014043405A1 (en) | 2012-09-14 | 2013-09-12 | Playback synchronization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104813303A true CN104813303A (zh) | 2015-07-29 |
CN104813303B CN104813303B (zh) | 2018-11-16 |
Family
ID=53696567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380055666.0A Active CN104813303B (zh) | 2012-09-14 | 2013-09-12 | 回放同步 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104813303B (zh) |
HK (1) | HK1208090A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106717079A (zh) * | 2014-11-25 | 2017-05-24 | 谷歌公司 | 使用wifi信标的时钟同步 |
CN109906613A (zh) * | 2016-09-14 | 2019-06-18 | Dts有限责任公司 | 音频和视频的多模式同步渲染 |
CN112821973A (zh) * | 2016-12-13 | 2021-05-18 | B & W集团有限公司 | 音频回放的无线协调 |
US11265587B2 (en) * | 2016-08-29 | 2022-03-01 | Shanghai Jiao Tong University | Multimedia resource synchronous pushing method based on heterogeneous network |
CN115244939A (zh) * | 2019-11-20 | 2022-10-25 | 维斯克体育科技有限公司 | 用于数据流同步的系统和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1875555A (zh) * | 2003-10-27 | 2006-12-06 | 艾尔加因公司 | 无线局域网中的无线电通信方法 |
US20100034103A1 (en) * | 2008-08-06 | 2010-02-11 | International Business Machines Corporation | Robust Jitter-Free Remote Clock Offset Measuring Method |
CN101675614A (zh) * | 2007-05-10 | 2010-03-17 | 汤姆森许可贸易公司 | 使网络组件的时钟与另外的网络组件的时钟同步的方法及其网络组件 |
US20110051637A1 (en) * | 2005-09-30 | 2011-03-03 | Research In Motion Limited | Methods Apparatus For Dynamically Adjusting A Data Packet Window Size For Data Packet Transmission In A Wireless Communication Network |
US20110276648A1 (en) * | 2010-05-07 | 2011-11-10 | Microsoft Corporation | Clock synchronization for shared media playback |
-
2013
- 2013-09-12 CN CN201380055666.0A patent/CN104813303B/zh active Active
-
2015
- 2015-08-31 HK HK15108455.4A patent/HK1208090A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1875555A (zh) * | 2003-10-27 | 2006-12-06 | 艾尔加因公司 | 无线局域网中的无线电通信方法 |
US20110051637A1 (en) * | 2005-09-30 | 2011-03-03 | Research In Motion Limited | Methods Apparatus For Dynamically Adjusting A Data Packet Window Size For Data Packet Transmission In A Wireless Communication Network |
CN101675614A (zh) * | 2007-05-10 | 2010-03-17 | 汤姆森许可贸易公司 | 使网络组件的时钟与另外的网络组件的时钟同步的方法及其网络组件 |
US20100034103A1 (en) * | 2008-08-06 | 2010-02-11 | International Business Machines Corporation | Robust Jitter-Free Remote Clock Offset Measuring Method |
US20110276648A1 (en) * | 2010-05-07 | 2011-11-10 | Microsoft Corporation | Clock synchronization for shared media playback |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106717079A (zh) * | 2014-11-25 | 2017-05-24 | 谷歌公司 | 使用wifi信标的时钟同步 |
CN106717079B (zh) * | 2014-11-25 | 2020-01-14 | 谷歌有限责任公司 | 使用wifi信标的时钟同步 |
US11265587B2 (en) * | 2016-08-29 | 2022-03-01 | Shanghai Jiao Tong University | Multimedia resource synchronous pushing method based on heterogeneous network |
CN109906613A (zh) * | 2016-09-14 | 2019-06-18 | Dts有限责任公司 | 音频和视频的多模式同步渲染 |
CN109906613B (zh) * | 2016-09-14 | 2022-09-13 | Dts有限责任公司 | 音频和视频的多模式同步渲染 |
CN112821973A (zh) * | 2016-12-13 | 2021-05-18 | B & W集团有限公司 | 音频回放的无线协调 |
CN112838902A (zh) * | 2016-12-13 | 2021-05-25 | B & W集团有限公司 | 音频回放的无线协调 |
CN112994816A (zh) * | 2016-12-13 | 2021-06-18 | B & W集团有限公司 | 音频回放的无线协调 |
CN112821973B (zh) * | 2016-12-13 | 2024-03-12 | B & W集团有限公司 | 音频回放的无线协调装置和方法、计算机可读存储介质 |
CN112994816B (zh) * | 2016-12-13 | 2024-04-05 | B&W集团有限公司 | 音频回放的无线协调装置和方法 |
CN112838902B (zh) * | 2016-12-13 | 2024-04-09 | B&W集团有限公司 | 音频回放的无线协调装置和方法、计算机可读存储介质 |
CN115244939A (zh) * | 2019-11-20 | 2022-10-25 | 维斯克体育科技有限公司 | 用于数据流同步的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
HK1208090A1 (zh) | 2016-02-19 |
CN104813303B (zh) | 2018-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9237324B2 (en) | Playback synchronization | |
JP7391500B2 (ja) | 再生同期 | |
JP6640359B2 (ja) | ワイヤレスオーディオ同期 | |
CN101809906B (zh) | 同步互连网络中的相关数据流 | |
US8838722B2 (en) | Communications adaptable to mobile devices | |
US11625213B2 (en) | Systems and methods for providing real-time audio and data | |
US10516718B2 (en) | Platform for multiple device playout | |
US8705511B2 (en) | System and method for synchronous transmission of content | |
CN104464767A (zh) | 同步多个播放装置的音频播放的方法及音频播放系统 | |
CN104813303A (zh) | 回放同步 | |
US20120209933A1 (en) | Peer-To-Peer Communications | |
US20180115844A1 (en) | Location based services audio system | |
JP2022050411A (ja) | 複数のオーディオ機器の同期 | |
CN102752642B (zh) | 一种基于ip网络的多终端视频同步播放的方法及系统 | |
CN109906613A (zh) | 音频和视频的多模式同步渲染 | |
KR20180014004A (ko) | 가라오케 처리 방법, 장치 및 시스템 | |
CN105099594A (zh) | 无线网络内的时间戳复制 | |
CN104509023A (zh) | 跨多个信道的帧同步 | |
KR20160008602A (ko) | Wi-fi 직렬 버스를 위한 미디어 시간 기반 usb 프레임 카운터 동기화 | |
CN102710982A (zh) | 使媒体流同步的方法、缓冲媒体流的方法及系统、路由器 | |
WO2017193830A1 (zh) | 视频切换方法、装置、系统及存储介质 | |
CN104053071A (zh) | 分发控制系统、分发系统和分发控制方法 | |
CN104053069A (zh) | 分发控制系统、分发系统和分发控制方法 | |
TW201512980A (zh) | 同步複數播放裝置之音訊播放之方法及音訊播放系統 | |
CN104243133B (zh) | 一种同步方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into 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: 1208090 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |