对媒体流进行处理以便在多个端点同步输出的制作方法

文档序号:7989864阅读:168来源:国知局
对媒体流进行处理以便在多个端点同步输出的制作方法
【专利摘要】用于处理媒体流的方法和通信系统。多个同步媒体流被提供至处于通信系统的相应多个端点处的相应多个通信客户端。该通信客户端在该端点输出该媒体流,其中媒体流的所述提供和输出所需的时间量对于多个端点而言有所不同。至少一个媒体流的所述提供和所述输出中的至少一个被控制而使得多个媒体流在多个端点处的输出得以同步。
【专利说明】对媒体流进行处理以便在多个端点同步输出
【技术领域】
[0001]本发明涉及对媒体流进行处理。特别地,本发明涉及在通信系统的通信客户端对媒体流进行处理。
【背景技术】
[0002]媒体流可以被提供至通信系统的多个端点。例如,媒体流可以通过诸如互联网、电话网络(例如,PSTN或移动电话网络)或电视网络之类的网络而被广播至通信系统的多个端点。
[0003]媒体流可以在多个端点处实时(即当它们在端点处被接收时)输出给相应用户。例如,媒体流可以是电视媒体流并且该电视媒体流的内容例如可以是诸如体育赛事或音乐会之类的直播事件。可以当其在多个端点处被接收时实时输出的媒体流的另一个示例是游戏媒体流,例如其中多个用户(或“玩家”)通过互联网玩游戏,媒体流被输出给不同端点处的玩家以由此允许他们同时与游戏进行交互,并且甚至在游戏中与他人进行交互。

【发明内容】

[0004]发明人已经意识到,在媒体流被传送至多个端点的一些情况下,将媒体流传送至端点并且从该端点输出媒体流所需的时间量对于多个端点而言有所不同。这会导致同步的媒体流在它们从端点进行输出时变得不同步。发明人进一步意识到,在这样的情况下,能够对媒体流在多个端点处的输出进行控制以使得它们同步。
[0005]根据本发明的第一方面,提供了一种对通信系统中的媒体流进行处理的方法,该方法包括:将多个同步媒体流提供至处于通信系统的相应多个端点处的相应多个通信客户端;该通信客户端在该端点输出该媒体流,其中媒体流的所述提供和输出所需的时间量对于多个端点而言有所不同;并且对至少一个媒体流的所述提供和所述输出中的至少一个进行控制而使得多个媒体流的输出在多个端点处得以同步。
[0006]以这种方式,多个媒体流的输出在多个端点处被同步。这意味着无论向端点提供媒体流以及从端点进行媒体流输出所需的时间量如何,媒体流都可以在多个端点处同时输出。出于如这里所描述的多个原因这会是有益的。就以同步方式进行输出会有利于媒体流的意义而言,媒体流是“同步媒体流”。同步媒体流可以彼此相同,例如在同步媒体流是用于将电视媒体流传输至多个端点的电视媒体流的情况下。然而,同步媒体流并非必然彼此相同,例如在同步媒体流是要提供至多个游戏玩家的游戏媒体流的情况下,媒体流对于每个用户而言可以有所不同,但是就它们应当以同步方式被输出给用户的意义而言,它们仍然可以被认为是“同步的”。从端点提供和输出媒体流“所需的时间量”是这些处理在它们针对每个媒体流被单独执行的情况下将要耗费的时间量。然而,以上所描述的方法考虑到了每个媒体流的所需时间量并且因此对每个媒体流的处理进行控制以使得该媒体流被同步输出。这意味着媒体流全部都在与在各个端点处提供和输出媒体流所需的最长时间相等的时间量之后被输出。以这种方式,该方法提供了对跨通信系统的多个端点进行输出的媒体流的全局控制。
[0007]优选实施例涉及在两个或更多端点处对诸如流传输的“点播”视频或立体声视频之类的媒体流的输出进行控制,以使得媒体流的输出在端点处是同步的。例如,在媒体流是电视媒体流的情况下,可以对媒体流进行控制以使得处于两个位置(处于两个端点)的用户能够在完全相同的时间收看到相同的电视媒体。当媒体流被输出给端点处的用户的同时在两个用户之间还存在着通信活动(event)时,以这种方式对媒体流进行同步是特别有益的。对两个电视媒体流进行同步能够确保第一用户(在同时的通信活动中)并不会听到第二用户对于第一用户还没有看到的电视媒体流活动的反应一例如,在电视媒体流的内容是足球比赛的情况下第二用户对于进球的反应。
[0008]如以上所描述的,媒体流可以是游戏媒体流。以这种方式,一些实施例允许对游戏的响应时间进行同步和/或补偿。例如,如果两个玩家在通过互联网玩游戏,当通过互联网与管理两个玩家之间的游戏的服务器进行通信时,具有最慢延迟的玩家具有优势。可以在服务器对每个端点之间的通信等待时间(latency)进行定期监视并且可以延迟具有优势的玩家(即,具有较短等待时间的玩家)的响应时间以对该优势进行补偿并且与第二玩家的等待时间进行匹配。这使得游戏更多地取决于每个玩家的技巧而不是他们的端点和管理游戏的服务器之间的通信的响应时间。
[0009]通信客户端可以在媒体流在多个端点处进行所述提供和输出的同时通过通信系统而进行相互的通信活动。该方法可以进一步包括:当多个端点中的第一个的用户向多个端点中的所述第一个的通信客户端提供该通信活动的用户输入时,确定当前在多个端点中的所述第一个输出的媒体流的媒体要素;将所确定的来自多个端点中的所述第一个的媒体要素的指示作为所述通信活动的一部分传送至多个端点中的第二个;并且对该通信活动在多个端点中的第二个处的输出进行控制以使得所述用户输入在所述多个端点中的第二个处晚于所述指示所指示的确定的媒体要素而被输出。
[0010]提供多个同步媒体流的步骤可以包括将多个同步媒体流中的至少一个通过通信系统提供至多个端点中相应的至少一个。提供多个同步媒体流的步骤可以包括将多个同步媒体流从通信系统的服务器通过该通信系统而传送至多个端点。可替换地,提供多个同步媒体流的步骤可以包括将多个同步媒体流中的所述至少一个从多个端点中的另一个通过该通信系统而传送至多个端点中相应的至少一个。
[0011]该方法可以进一步包括:在媒体流中包括同步信息;并且将该媒体流在多个端点处进行缓冲,其中通信客户端依据媒体流中的同步信息而在端点处输出该媒体流。
[0012]媒体流之一中所包括的同步信息可以包括时间戳,其包括在该媒体流的帧的报头之中,其中相对应的通信客户端可以在该时间戳所指示的时间在相对应的端点处输出该媒体流的帧。该方法可以进一步包括由媒体流的源将帧标识符插入到媒体流之一之中,由此将时间戳与所述帧相关联。该方法可以进一步包括使用帧中的数据生成标识符以由此将时间戳与所述帧相关联。
[0013]该方法可以进一步包括对媒体流在多个端点处的所述提供和输出所需的时间量进行监视,其中对至少一个媒体流的所述提供和所述输出中的至少一个进行的所述控制包括向至少一个媒体流的所述提供和所述输出中的至少一个添加延迟以使得多个媒体流在多个端点处的输出得以同步。[0014]该监视步骤可以由相应通信客户端来执行,并且该方法可以进一步包括通过通信系统在通信客户端之间传送与所监视的时间量相关的信息,其中所述客户端中的至少一个向至少一个媒体流的所述提供和所述输出中的至少一个添加延迟以使得多个媒体流在多个端点处的输出得以同步。
[0015]该监视步骤可以由通信系统的服务器来执行。
[0016]对至少一个媒体流的所述提供和所述输出中的至少一个进行控制的步骤可以至少部分基于在多个端点之一从用户所接收的媒体控制输入。
[0017]每个媒体流可以是视频流、音频流和多媒体流之一。每个媒体流可以是电视媒体流和游戏媒体流之一。
[0018]根据本发明的第二方面,提供了一种用于处理媒体流的通信系统,该通信系统包括:多个端点,其包括相应的多个通信客户端,该通信客户端被配置为输出提供至该通信客户端的相应多个媒体流,其中提供和输出媒体流所需的时间量对于多个端点而言有所不同;和控制器,其被配置为对至少一个媒体流的所述提供和所述输出中的至少一个进行控制以使得多个媒体流在多个端点处的输出得以同步。
[0019]该通信客户端可以进一步被配置为在媒体流在多个端点处进行所述提供和输出的同时通过通信系统而进行相互的通信活动。
[0020]该通信系统可以进一步包括服务器,其包括所述控制器。
[0021]根据本发明的第三方面,提供了体现于相应的多个非瞬时计算机可读媒体上并且包括代码的多个计算机程序产品,该代码被配置为在通信系统的相应多个端点上执行时执行依据这里所描述的方法的操作。
【专利附图】

【附图说明】
[0022]为了更好地理解本发明并且示出其可以如何实施,现在将通过示例参考附图,其中:
图1示出了根据优选实施例的通信系统;
图2示出了根据优选实施例的用户终端的框图;和 图3是根据优选实施例的对媒体流进行处理的过程的流程图。
【具体实施方式】
[0023]现在将仅通过示例而对本发明的优选实施例进行描述。
[0024]图1示出了通信系统,其包括具有相关联的第一用户终端104的第一用户(用户A)102、具有相关联的第二用户终端114的第二用户(用户B) 112以及具有相关联的第三用户终端124的第三用户(用户C)122。在其它实施例中,通信系统可以包括任意数量的用户和相关联用户终端。用户终端104、114和124能够通过通信系统中的网络108进行通信,因此允许用户102、112和122通过网络108互相通信。在优选实施例中,该通信系统是基于分组的P2P通信系统,但是也能够使用其它类型的通信系统,诸如非P2P、VoIP或頂系统。网络108例如可以是互联网、电话网络(诸如PSTN或移动电话网络)或电视网络。用户终端104例如可以是移动电话、个人数字助理(PDA)、个人计算机(PC)(例如包括Windows?、Mac OS?和Linux?的PC)、游戏设备或者能够连接至网络108的其它嵌入式设备。用户终端104被配置为从用户终端104的用户102接收信息并向其输出信息。在本发明的优选实施例中,用户终端104包括诸如屏幕的显示器以及诸如键盘、鼠标、触摸屏、小键盘和/或操纵杆之类的输入设备。用户终端104连接至网络108。
[0025]用户终端104执行由与通信系统相关联的软件提供商所提供的通信客户端106。通信客户端106是在用户终端104中的本地处理器上执行的软件程序。客户端106在用户终端104执行为了使得用户终端104通过通信系统传送和接收数据的所需处理。如本领域已知的,客户端106可以通过数字证书的存在而被认证以通过通信系统进行通信(例如,以证明用户A 102是该通信系统的真正用户一在W02005/009019中更为详细地进行描述)。
[0026]用户终端114和124对应于用户终端104。用户终端114在本地处理器上执行与通信客户端106相对应的通信客户端116。以客户端106执行允许用户102通过网络108进行通信的所需处理相同的方式,客户端116执行允许用户112通过网络108进行通信的所需处理。用户终端124在本地处理器上执行与通信客户端106相对应的通信客户端126。以客户端106执行允许用户102通过网络108进行通信所的所需处理相同的方式,客户端126执行允许用户122通过网络108进行通信的所需处理。用户终端104、114和124是通信系统中的端点。图1出于简明仅示出了三个用户(102、112和122),但是如本领域中已知的,有更多用户可以连接至通信系统,并且可以使用在通信系统的相应端点上执行的相应通信客户端而通过通信系统进行通信。该通信系统包括网络108上的服务器110。
[0027]图2图示了在其上执行客户端106的用户终端104的详细视图。用户终端104包括中央处理单元(CPU)202,诸如屏幕的显示器204、诸如键盘(或小键盘)206的输入设备以及诸如鼠标208的指示设备与之进行连接。显示器204可以包括用于向CPU 202输入数据的触摸屏。输出音频设备210 (例如,扬声器)和输入音频设备212 (例如,麦克风)连接至CPU 202。显示器204、键盘206、鼠标208、输出音频设备210和输入音频设备212集成到用户终端104中。在可替换的用户终端中,显示器204、键盘206、鼠标208、输出音频设备210和输入音频设备212中的一个或多个可以不集成到用户终端104中并且可以经由相应接口连接至CPU 202。这样的接口的一个示例是USB接口。CPU 202连接至诸如调制解调器的网络接口 224以便与网络108进行通信。如图2所示,网络接口 224可以集成到用户终端104中。在可替换的用户终端中,网络接口 224并不集成到用户终端104中。如本领域已知的,用户终端104还包括用于存储数据的存储器226。
[0028]图2还图示了在CPU 202上执行的操作系统(0S)214。在OS 214顶端运行用于客户端106的软件栈216。该软件栈示出了客户端协议层218、客户端引擎层220和客户端用户界面层(UI)222。每一层负责特定的功能。由于每一层通常与其它两层进行通信,所以它们被视为排列于如图2所示的堆栈之中。操作系统214对计算机的硬件资源进行管理并且处理经由网络接口 224而往来于网络进行传送的数据。客户端软件的客户端协议层218与操作系统214进行通信并且对通信系统上的连接进行管理。需要较高级别处理的处理被送至客户端引擎层220。客户端引擎220还与客户端用户界面层222进行通信。客户端引擎220可以被配置为对客户端用户界面层222进行控制以经由客户端的用户界面向用户102呈现信息并且经由用户界面从用户102接收信息。
[0029]用户终端114和124以与如以上所描述的用户终端104相同的方式实施,其中用户终端114和124可以具有与这里关于用户终端104所描述的那些相对应的部件。[0030]现在参考图3对根据优选实施例的处理媒体流的方法进行描述。
[0031]在步骤S302,相应多个媒体流被提供至多个客户端(106、116和126)。例如,媒体流可以从服务器110通过网络108传送至客户端106、116和126。可替换地,媒体流的源可以是端点之一,例如端点104。媒体流可以存储在端点104的存储器226中并且可以被提供至端点104中的客户端106,并且通过网络108而被传送至客户端116和126。
[0032]在步骤S304,客户端106、116和126在相应端点104、114和124输出媒体流。以这种方式,媒体流被输出至用户102、112和122。输出媒体流可以涉及在媒体流之前被编码的情况下对该媒体流进行解码。
[0033]步骤S306表示对提供和/或输出步骤S302和S304的时序的控制。在步骤S302中向客户端106、116和126提供媒体流以及在步骤S304中向用户102、112和122输出媒体流得以被控制以使得媒体流在端点104、114和124被同步输出。以下描述了可以在其中执行步骤S306的控制的各个实施例。
[0034]在一个实施例中,客户端106接收媒体流并且确定该媒体流的媒体要素被输出至端点104的用户102的时间的指示。类似地,客户端116接收同步媒体流并且确定该同步媒体流的相对应媒体要素被输出至端点114的用户112的时间的指示。以下对可以被用来对此进行实施的两种方法进行描述。
[0035]第一种方法涉及向每个或一些视频帧上的报头添加时间戳(许多用于处理视频信号的协议已经具有该功能)并且将视频信号在端点处进行缓冲。该视频信号被缓冲一定时间量以使得具有时间戳的特定帧在该时间戳所指示的时间进行输出。换句话说,该视频信号被缓冲以将给定帧的传输与给定时间戳相匹配。该方法依赖于帧与特定时间戳相匹配的方式,这能够以多种方式来完成。一种简单的方式是令视频源将具体帧标识符插入到时间戳中以使得该时间戳能够特别识别出与之相匹配的帧。可替换地,给定帧中的信息可以被用来生成能够被用作该帧的标识符的数字。该数字优选地足够大以使得其能够被用作帧的临时唯一标识符。该数字随后可以被包括在时间戳中以使得该时间戳能够识别与之相匹配的帧。
[0036]第二种方法涉及对每个端点处相对于同步媒体流的源的等待时间进行监视并且针对相应等待时间进行调节。该方法可能比第一种方法更为简单,但是在对媒体流的输出进行同步的方面可能较不讲究且较不严密。对每个端点处的等待时间进行的监视被用来确定需要应用于从至少一个端点输出的媒体流的输出延迟以确保媒体流跨所有端点都是同步的。
[0037]要在每个端点处应用于媒体流的延迟可以在客户端进行计算。例如,客户端106能够识别出数据要素(例如,来自媒体流中的分组编号 X的数据要素)准备在时间T从端点104输出至用户102。该信息可以被传送至客户端116(8卩,与之交换)。客户端116可以确定来自分组编号X的相对应数据要素还没有在端点114被接收,或者在时间T+t秒之前将无法从端点114输出。响应于在客户端116确定输出迟滞,客户端116可以通过网络108向客户端106传送请求以请求第一客户端处的媒体输出延迟t秒。以这种方式,媒体流的数据要素在端点104和114处的输出得以同步。
[0038]提供至端点104、114和124的媒体流的数据可以包括同步信息。该同步信息可以被每个客户端106、116和126用来识别相对应的媒体要素(或“媒体分段”),而不是在分组层面对同步进行分析。以这种方式,客户端106、116和126能够识别出媒体流中应当以同步方式从端点104、114和124输出的不同数据要素。
[0039]在另一个实施例中,可以在服务器110基于从客户端(106、116和126)提供至服务器110的信息而针对每个端点(104、114和124)确定迟滞时间。这在服务器110是提供至客户端(106、116和126)的媒体流的源的情况下是特别有利的。例如,在媒体流从服务器110流传输至客户端(106、116和126)的情况下,服务器110可以向媒体流施加以相应延迟以便使得该媒体流在端点(104、114和124)处的输出同步。例如,如果用于向端点114传送媒体流以及从其输出媒体流的迟滞时间长于端点104的相对应迟滞时间,则与其将在向端点114进行传输之前施加于媒体流的延迟相比,服务器将在向端点104进行传输之前对媒体流施加以更大延迟。以这种方式,媒体流在端点104和114处的输出得以同步。
[0040]可以通过对从对应用户(102、112和122)输入的媒体控制指令进行分析来确定每个端点(104、114和124)处的迟滞。用户可以输入的媒体控制指令的示例是播放、暂停和快进。以这种方式,至少在一定程度上,用户能够对施加于从其相应端点所提供的媒体流的迟滞进行控制。
[0041]在端点处输出同步媒体流的同时,可能通过网络而在端点的客户端之间存在有通信活动。该通信活动例如可以是音频呼叫或视频呼叫。该通信活动以及媒体流的输出可以同时进行。在这种情况下,令媒体流在端点处的输出得以同步是特别有利的。以这种方式,正在进行呼叫的用户(例如,102和112)将在其呼叫期间在端点104和114处同步观看媒体流。这意味着用户102和112将在同时对媒体流作出反应,这会是有益的。例如,如果媒体流正在播出足球比赛,则两个用户将同时观看到进球。
[0042]在一些实施例中,在通信活动期间,用户102向客户端106提供一些用户输入(例如,语音输入)。当该用户输入在客户端106被接收时,客户端106确定当前从端点104输出的媒体流的媒体要素。该媒体要素与从用户102所接收的用户输入相对应。将该用户输入与相对应媒体要素相关联的信息作为附属信息(side information)随该通信活动的内容一起传送至客户端116,例如作为呼叫的编码音频信号的附属信息。接收该附属信息的端点终端114能够确保通信流的输出得到控制而至少晚于媒体流中的相对应媒体要素而出现。其有用之处在于,当两个用户在观看同步媒体流的同时进行通信活动时,确保一个用户在媒体流在其端点处输出之前不会听到其它用户对媒体流中的事件的反应。
[0043]以上所描述的方法步骤可以在端点处以软件或硬件来实施。作为示例,计算机程序产品(例如,以上所描述的客户端)可以实现于端点上并且由该端点的CPU来执行以便实施以上所描述的方法。
[0044]以上所描述的实施例涉及P2P通信系统,但是如对本领域技术人员显而易见的,可以实现使用任意其它类型的通信系统的实施例。
[0045]此外,虽然已经参考优选实施例特别示出并描述了本发明,但是本领域技术人员将要理解的是,可以对形式和细节进行各种改变而并不背离如所附权利要求所限定的本发明的范围。
【权利要求】
1.一种对通信系统中的媒体流进行处理的方法,该方法包括: 将多个同步媒体流提供至处于通信系统的相应多个端点处的相应多个通信客户端; 该通信客户端在该端点输出该媒体流,其中媒体流的所述提供和输出所需的时间量对于多个端点而言有所不同;以及 对至少一个媒体流的所述提供和所述输出中的至少一个进行控制以使得多个媒体流在多个端点处的输出得以同步。
2.根据权利要求1的方法,进一步包括通信客户端在媒体流在多个端点处进行所述提供和输出的同时通过通信系统互相进行通信活动。
3.根据权利要求2的方法,进一步包括: 当多个端点中的第一个的用户向多个端点中的所述第一个的通信客户端提供该通信活动的用户输入时,确定当前在多个端点中的所述第一个输出的媒体流的媒体要素; 将所确定的来自多个端点中的所述第一个的媒体要素的指示作为所述通信活动的一部分传送至多个端点中的第二个;以及 对该通信活动在多个端点中的第二个处的输出进行控制以使得所述用户输入在多个端点中的第二个处晚于所述指示所指示的确定的媒体要素而被输出。
4.根据之前任一项权利要求的方法,进一步包括: 在媒体流中包括同步信息;以及 将该媒体流在多个端点处进行缓冲, 其中通信客户端依据媒体流中的同步信息而在端点处输出该媒体流。
5.根据权利要求4的方法,其中媒体流之一中所包括的同步信息包括时间戳,其包括在该媒体流的帧的报头之中,其中相对应的通信客户端在该时间戳所指示的时间在相对应的端点处输出该媒体流的帧。
6.根据之前任一项权利要求的方法,进一步包括对媒体流在多个端点处的所述提供和输出所需的时间量进行监视,其中对至少一个媒体流的所述提供和所述输出中的至少一个进行的所述控制包括向至少一个媒体流的所述提供和所述输出中的至少一个添加延迟以使得多个媒体流在多个端点处的输出得以同步。
7.根据权利要求6的方法,其中所述监视由相应通信客户端来执行,并且该方法进一步包括通过通信系统在通信客户端之间传送与所监视的时间量相关的信息,其中所述客户端中的至少一个向至少一个媒体流的所述提供和所述输出中的至少一个添加延迟以使得多个媒体流在多个端点处的输出得以同步。
8.根据权利要求6的方法,其中所述监视由通信系统的服务器来执行。
9.一种用于处理媒体流的通信系统,该通信系统包括: 多个端点,其包括相应的多个通信客户端,该通信客户端被配置为输出提供至该通信客户端的相应多个媒体流,其中提供和输出媒体流所需的时间量对于多个端点而言有所不同;以及 控制器,其被配置为对至少一个媒体流的所述提供和所述输出中的至少一个进行控制以使得多个媒体流在多个端点处的输出得以同步。
10.体现于相应的多个非瞬时计算机可读媒体上并且包括代码的多个计算机程序产品,该代码被配置为在通信系统的相应多个端点上执行时执行依据权利要求1至8中任一项的操作。
【文档编号】H04N21/24GK103797809SQ201280021845
【公开日】2014年5月14日 申请日期:2012年5月4日 优先权日:2011年5月5日
【发明者】M.布雷涅斯 申请人:斯凯普公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1