在视频会议中结合直接和路由通信的制作方法

文档序号:7717985阅读:183来源:国知局
专利名称:在视频会议中结合直接和路由通信的制作方法
技术领域
本发明涉及通信领域,尤其涉及视频会议中的通信技术。
背景技术
许多人如今参与视频会议。在一些视频会议系统中,视频会议客户机连接到视频会议服务器。视频会议服务器管理和控制会议中的客户机并将音频/视频流路由到客户机。在其他视频会议系统中,客户机彼此直接连接,并且客户机管理该会议。参与视频会议的客户机通常具有不同的处理能力和可用带宽。例如,某些客户机可能能够以每秒30帧 (fps)的帧速率按IOSOp分辨率(每帧1920x1080个像素)来编码和回放,而其他客户机可能只能够以15fps的速率按CIF分辨率(320U40)来编码和接收。

发明内容
提供本发明内容以便以简化形式介绍在以下的具体实施方式
中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征。本发明内容亦非旨在用于限制所要求保护的主题的范围。视频会议对于点对点通信的客户机的至少一部分进行交叉链接,同时仍使用视频会议服务器。该视频会议服务器被配置成为交叉链接的客户机管理该视频会议的某些方面,并且可被配置成在视频会议中为客户机的某一些执行音频/视频处理。例如,该视频会议服务器可为不具有直接执行该处理的能力的客户机执行音频/视频处理以及流的路由。 能够处理其音频/视频需求的客户机可通过交叉链接来直接连接到其他客户机,同时仍使用该视频会议服务器以供管理。前述概括描述和以下详细描述两者都提供示例并且都只是说明性的。因此,前述概括描述和以下详细描述不应被认为是限制性的。此外,除了此处所阐明的那些之外还可提供其他特征或变型。例如,各实施例可涉及在详细描述中描述的各种特征组合和子组合。


合并在本公开中并且构成其一部分的附图示出本发明的各种实施例。在附图中图1是操作环境的框图;图2是示出在视频会议环境中不同的交叉链接的客户机的图示;图3是示出订阅视频会议的图示;图4示出客户机与服务器之间的示例性会议创建过程;图5是示出使用交叉链接以及视频会议服务器的视频会议系统的流程图;图6是示出视频会议系统中的客户机使用视频会议服务器以及建立交叉链接的流程图;图7是包括计算设备的系统的框图。
具体实施例方式以下详细描述参考各附图。只要可能,就在附图和以下描述中使用相同的附图标记来指示相同或类似的元件。尽管可能描述了本发明的各实施例,但是修改、改编和其他实现也是可能的。例如,可对附图中所示出的元件进行置换、添加、或修改,并且可通过对所公开的方法置换、重新排序、或添加阶段来修改此处所描述的方法。因此,以下详细描述并不限制本发明。相反,本发明的正确范围由所附权利要求书定义。图1是操作环境的框图。操作环境可包括视频会议环境100。视频会议环境100可包括具有各种能力的各种客户机,诸如经由内联网网络连接115连接的内联网客户机110 和视频会议服务器120。视频会议环境100还可包括第一因特网客户机130、第二因特网客户机140和第三因特网客户机150。这些因特网客户机中的每一个可经由因特网160连接到视频会议服务器120。视频会议服务器120、内联网客户机110、第一因特网客户机130、 第二因特网客户机140和第三因特网客户机150各自可包括参考图7更详细地描述的计算设备700。当两个或更多客户机想要在彼此间共享数据流时,可以使用视频会议环境100。每个客户机可使用视频会议服务器120连接到视频会议。视频会议服务器120可维护哪些客户机被连接以及每个客户机的能力的列表。能力可由参与视频会议的客户机提供和/或由视频会议服务器获得。每个客户机的能力可包括以下全部或部分,但不限于此客户机的处理能力、分辨率能力、帧率、比特率、连接速度、可用带宽、正使用的相机、编码/解码能力等。能力对于一些/所有客户机可以不同。例如,一些客户机能够以较低分辨率进行编码和回放(例如,以每秒15帧(fps) 的速率的CIF分辨率(320x240));—些客户机能够以中等分辨率进行编码和回放(例如, 以30fps帧率的VGA分辨率(每帧640x480像素));而其他客户机能够以较高分辨率进行编码和回放(例如,以30fps速率的720p和1080p)。此外,一些客户机能够编码和回放较大数量的流。客户机还可向视频会议服务器120提供其对观看和播放视频的所希望的偏好 (例如,全屏模式、全尺寸模式、小窗口模式、比特率和帧率)。视频会议服务器120可周期性地更新客户机的能力中的任何改变。例如,视频会议服务器120可以或者周期性地自动分析或者手动分析网络连接,并确定客户机具有比先前确定的更多的带宽可用。视频会议服务器120还可从客户机接收指示能力改变的消息并存储该信息以用于促进流的生成、数据共享和交叉链接。视频会议服务器120使用这一信息来确定可以进行交叉链接以使得交叉链接的客户机直接进行通信而不通过视频会议服务器120路由流的客户机。一般地,当视频会议服务器被用于在会议中路由所有的流时,视频会议服务器是网络中带宽的集中。通过视频会议服务器来对流进行中继将另一跳添加到客户机之间的路由,该另一跳增加了等待时间并可能降低视频会议的质量。当视频会议的所有的流通过视频会议服务器时,视频会议服务器的可伸缩性也被减小。然而,交叉链接的客户机从视频会议服务器卸载资源中的某一些,使得它可以其他方式来使用其资源。例如,当视频会议上的全部或部分客户机被交叉链接时,更多的视频会议可能能够被主存在视频会议服务器上。在确定要建立的交叉链接之后,视频会议服务器120向客户机发送建立交叉链接的请求。该交叉链接在交叉链接的客户机之间建立点对点连接。在视频会议期间的任何刻,视频会议服务器120可请求(或交叉链接的客户机可请求)取消该交叉链接。尽管交叉链接的客户机彼此直接发送流,但视频会议服务器仍然可将所生成的视频流从交叉链接的客户机发送给视频会议中未交叉链接的另一客户机。另外,视频会议服务器120可管理视频会议并向交叉链接的客户机提供消息。例如,视频会议服务器120可处理客户机添加到该会议/从该会议中移除,以及向交叉链接的客户机提供该会议中的改变的通知,诸如主讲人改变、带宽改变、订阅请求改变等等。视频会议服务器120还可被配置成确定客户机将生成什么流(例如,音频、视频、 应用共享等等),并请求将所生成的数据流发送给一个或多个目的地。例如,视频会议服务器120可请求除了由交叉链接的客户机(例如客户机130)所生成的流除了被发送给任何交叉链接的客户机(例如客户机140和客户机150)之外还被发送给服务器120。视频会议服务器120随后可将一个或多个流路由到未被交叉链接到生成该流的客户机的一个或多个客户机。例如,视频会议服务器120可从客户机130接收流230并将该流定向到客户机 110。图2是示出在视频会议环境中不同的交叉链接的客户机的图示200。每一客户机可生成一个或多个数据流以发送给视频会议服务器120和/或某一其他目的地。每一客户机可具有音频/视频输出,诸如连接到该客户机的摄像头和/或话筒。 该输入可被用于生成一个或多个视频流(可包括音频)以及在将其发送给所确定的目的地 (即视频会议服务器120和/或交叉链接的客户机)之前对该视频流进行编码。例如,客户机130可将视频流编码成包括当前正讲话的人的一系列视频帧。视频流可被编码成一系列视频帧,其中每一帧可包括单个图像。每一帧可由数据比特表示。视频流可被编码成并非每一帧中的每一数据比特都需要被发送才能表示该视频流的源。可使用不同的帧类型来编码和/或压缩视频流。帧类型可包括I帧、P帧以及B帧。I帧代表内帧,并且可包括可自己解码而无需参考视频流中的任何其他帧的帧。P帧代表预测帧并且可通过参考视频流序列中的至少一个前帧来解码。B帧代表双向预测帧并且可通过参考视频流中的至少一个前帧和至少一个后帧来解码。客户机可生成超过一种分辨率的流。例如, 客户机130可被配置成生成1080p、720p、480p和CIF的流。视频会议服务器120被配置成确定客户机的能力,帮助建立客户机之间的交叉链接,并且将所生成的流定向到适当的客户机。例如,视频会议服务器120可确定客户机130、 客户机140和客户机150具有被交叉链接的能力,而客户机110不具有被交叉链接的能力。如以上讨论的,客户机的能力和请求可通过视频会议服务器120来确定。一般地, 请求与查看视频资源的所需方式有关,而能力与显示和编码/解码视频的能力有关。例如, 客户机110可请求订阅来自客户机130的视频流O30)。客户机还可能希望查看来自视频会议中所有参与的客户机的视频流。例如,客户机140可请求订阅视频流Ο10、240和250)。 客户机150可请求订阅来自客户机110和客户机130的视频流010、230)。如图所示,客户机130已请求了订阅来自客户机110、客户机140和客户机150的视频流Ql0、240和250)。视频会议服务器120使用这一信息来确定要将什么客户机交叉链接。视频会议服务器120可被配置成(1)确定客户机是否有直接交叉链接的能力;( 确定服务器规模是否会通过交叉链接两个或更多客户机来改进;C3)确定带宽管理是否准许交叉链接的建立;(4)确定音频/视频质量是否会被改进;(5)确定客户机的位置对于交叉链接是否适当等等。一般地,视频会议服务器120确定交叉链接对该会议是否有利。视频会议服务器120 还可确定在交叉链接中仅卸载流的一部分。例如,视频会议服务器120可卸载需要大量带宽的流,诸如HD(高清晰度)流。当要建立交叉链接时,视频会议服务器120可请求客户机建立交叉链接。例如,视频会议服务器120可向客户机中的一个发送消息,以便与另一客户机建立交叉链接。根据一个实施例,一旦交叉链接可用,该交叉链接内的每一客户机就检测连接(例如带宽、质量等等),并且确定通过视频会议服务器120的该连接更好还是客户机之间的直接交叉链接更好。当直接交叉链接更好时,视频会议服务器120停止将所确定的流路由到交叉链接的客户机。视频会议服务器120确定它正发送给交叉链接的客户机的流是否正被发送到任何另一客户机,如果否,则视频会议服务器120则请求原始客户机停止发送流,由此节省客户机和视频会议服务器120的网络带宽和处理。视频会议服务器120可在视频会议期间的任何时候重新建立发送该流。例如,客户机150可请求取消自己与它的交叉链接的客户机中的任一个之间的交叉链接。视频会议服务器120还可通过向受影响的交叉链接的客户机发出消息。客户机130可将其生成的流230发送给视频会议服务器120,以及直接发送给客户机150和客户机140。客户机140可将其生成的流240直接发送给客户机150和客户机 130。客户机150可将其生成的流250发送给客户机130和客户机140,并且客户机110可将其生成的媒体流210发送给视频会议服务器120。视频会议服务器120将所接收任何流定向到所请求的目的地。所确定的流配置可在视频会议期间改变。视频会议服务器120或客户机可在视频会议期间的任何时候发送所更新的信息,以便允许其他客户机适应客户机的条件/配置的改变(诸如带宽、从大屏幕/全屏到子窗口模式的视频查看模式、或添加/移除客户机)。 根据一个实施例,当存在客户机的状态改变时,该客户机通知视频会议服务器120。视频会议服务器120随后使用这一信息来更新视频会议的客户机。客户机之间建立的任何交叉链接可遵循带宽策略。例如,带宽策略可指定只有特定百分比的可用带宽用于视频会议。视频会议服务器120可被配置成监视由客户机使用的带宽,并且基于该带宽使用来适当地调整交叉链接。除了交叉链接的音频/视频流以外,还可实现在交叉链接之间共享的其他数据。例如,可在客户机之间直接建立共享的应用,同时允许诸如视频服务器120等服务器管理该共享。图3是示出订阅视频会议的图示。如图所示,视频会议系统300包括视频会议服务器120和各种客户机,诸如客户机301、客户机303和客户机304。视频会议系统300中具有不同带宽和/或不同的视频编码和/或解码能力的客户机可以连接。视频会议系统300中的每一客户机可向视频会议服务器120注册,并且确定诸如可用带宽、最大编码分辨率、最大解码分辨率以及可用数据编码和/或解码算法等能力。 例如,客户机301可向视频会议服务器120注册,并且确定2Mbps的可用带宽,能够以30fps 的VGA (640x480)分辨率以及15fps的CIF(320xM0)分辨率来对视频流进行编码/解码。 客户机303可向视频会议服务器120注册,并且确定150Kbps的可用带宽,能够以30fps的 720p (1280x720)分辨率、30fps 的 VGA (640x480)分辨率以及 15fps 的 CIF (320x240)分辨率来对视频流进行编码/解码。客户机304可向视频会议服务器120注册,并且确定200Kbps的可用带宽,能够仅以15fps的CIF(320xM0)分辨率来对视频流进行编码/解码。客户机可能能够对它们不能解码的视频流进行编码,且反之亦然。例如,客户机 304可能能够接收并且解码VGA分辨率的视频流,但可能只能编码CIF分辨率的视频流。在此情形中,客户机301和客户机303可仅以VGA分辨率来对视频会议服务器120可向客户机 304发送的流进行编码。可将来自客户机304以CIF分辨率来编码的流发送给客户机301 和客户机303。在视频会议呼叫被建立且每一客户机的能力都向视频会议服务器120注册之后, 视频会议服务器120可将编码请求传递给每一客户机。例如,可请求客户机301和客户机 303各自用视频流的两个视频分辨率来编码——视频流的第一版本可用30fps的VGA分辨率来编码,以及视频流的第二版本可用15fps的CIF分辨率来编码。可请求客户机304用 15fps的CIF分辨率对一组视频流进行编码。如以上讨论的,视频会议服务器120还可指示客户机中的两个或更多客户机在它们之间建立交叉链接,使得可在交叉链接的客户机之间直接发送流。仍可指示交叉链接的客户机将所生成的流发送给视频会议服务器120。例如,客户机303和304可以是交叉链接的。视频会议服务器120随后可接收由客户机生成的流,并且基于每一客户机的所注册和/或所确定的能力来选择至少一个所接收的流以便发送给其他客户机。例如,视频会议服务器120可确定客户机304仅能够解码CIF分辨率的视频流,而客户机301和客户机 303能够解码VGA分辨率和CIF分辨率的视频流。视频会议服务器120随后可将由客户机304生成的CIF分辨率的流发送给客户机 301。客户机304将该CIF分辨率的流直接发送给客户机303,因为它们是交叉链接的。视频会议服务器120可将由客户机301生成的VGA分辨率的流发送给客户机303,并且将由客户机301生成的CIF流发送给客户机304。类似地,视频会议服务器120可将来自客户机303的VGA分辨率的流发送给客户机301,并且将来自客户机303的CIF流发送给客户机 304。视频会议服务器120可确定每一客户机是否具有足够带宽来接收视频流,并且基于该确定来选择不同的流。根据本发明的其他实施例,视频会议服务器120和/或诸如客户机303等客户机中的一个可周期性地重新评估可用带宽量。例如,视频会议服务器120 可确定客户机303可用的带宽从150Kbps下降到75Kbps,并且可开始将CIF分辨率的视频流而不是VGA分辨率的视频流从客户机301发送给客户机303。视频会议服务器120还可周期性地重新评估每一客户机的编码/解码能力,并且动态地更改针对每一客户机的视频流所请求的编码算法以及调整任何所建立的交叉链接。 该重新评估可按预先确定的次数自动执行和/或手动执行。例如,客户机304可以是从客户机301和客户机303接收CIF分辨率的视频流的唯一客户机。如果客户机304退出视频会议呼叫,则视频会议服务器120可请求客户机301和客户机303停止编码并停止发送其相应的视频流的CIF分辨率的版本。视频会议服务器还可通知客户机303停止与客户机304 所建立的交叉链接。视频会议服务器120可指示与视频会议呼叫相关联的客户机中的至少一个客户机对被确定为正被与视频会议呼叫相关联的其他客户机中的一个客户机使用的视频流进行编码。例如,视频会议服务器120可确定客户机304当前正使用CIF解码;视频会议服务器120可指示客户机303对CIF分辨率的流进行编码以便发送给视频会议服务器120,该 CIF视频流可被中继到另一服务器。图4示出客户机与服务器之间的示例性会议创建过程。示出并描述的创建过程使用[MS-C0NFPR0]集中式会议控制协议预配规范、[MS-SIPRE]会话发起协议(SIP)路由扩展规范、[MS-C0NFBAS]集中式会议控制协议基本体系结构和信令规范,[MS-C0NFAV] 集中式会议控制协议音频-视频扩展和[MS-SDPEXT]会话描述协议(SDP)版本2. 0协议扩展,[MS-AVEDGEA]音频视频边缘认证协议规范,[MS-TURN]使用中继NAT的遍历 (TURN)扩展,[MS-ICE]交互式连接建立(ICE)扩展,[MS-RTP]实时传输协议(RTP)扩展, [MS-RTPRADEX]冗余音频数据的RTP有效载荷扩展,[MS-SRTP]安全实时传输协议(SRTP) 扩展,以及[MS-SSRTP]伸缩安全实时传输协议(SSRTP)扩展。根据本发明的各实施例,可利用其他规范。以下是示例性呼叫流程。在步骤1,客户机向服务器发送实例化会议的请求(addconference (加入会议))。在步骤2,服务器用会议URI对客户机作出响应,该会议URI是唯一地标识会议焦点的会话发起协议(SIP)URI。根据一个实施例,服务器维护与参与会议的每一客户机的对话以及会话发起协议(SIP)信令关系,实现会议策略,并且帮助确保每一参与者接收到包括紧密耦合的会议的媒体。在步骤3,客户机向服务器发送加入在步骤1中被实例化的会议(adduseH添加用户))的SIP INVITE (SIP邀请)消息。在步骤4,服务器向客户机发送包含加入响应(adduser响应)的SIP 2000K。在步骤5,客户机向服务器发送订阅会议信息的SIP SUBSCRIBE (SIP订阅)消息。在步骤6,服务器向客户机发送带有会议信息文档以及视频会议服务器URI的SIP 2000K。在步骤7,服务器向客户机发送包含后续名单更新的SIP BEN0TIFY(SIP通知)。在步骤8,客户机向服务器发送带有getconference (取得会议)请求的SIP INFO (SIP信息)消息。在步骤9,服务器向客户机发送SIP 202接受信息。在步骤10,服务器向客户机发送带有getconference响应的SIP INFO。在步骤11,客户机向服务器发送SIP 2000K。在步骤12,客户机向服务器发送带有SDP Offer (提议)的SIP INVITE。客户机发送为ICE候选分配边缘服务器上的媒体端口的请求。服务器向客户机返回所分配的媒体端□。在步骤13,带有SDP回答的SIP 2000K从服务器到客户机。第二客户机发送为ICE 候选分配边缘服务器上的媒体端口的请求。服务器向第二客户机返回所分配的媒体端口。在步骤14,服务器向客户机发起ICE连接测试。在步骤15,服务器向客户机发送ICE连接响应。在步骤16,RTP/RTCP语音分组从服务器到客户机。在步骤17,RTP/RTCP语音分组从客户机到服务器。在步骤18,客户机向服务器发送更新的媒体描述提议。
在步骤19,服务器向客户机发送媒体描述回答。现在参考图5-6,将描述在视频会议中使用交叉链接的说明性过程。当阅读对在此提供的例程的讨论时,应当理解,各实施例的逻辑操作被实现为(1)运行于计算系统上的一系列计算机实现的动作或程序模块,和/或(2)计算系统内互连的机器逻辑电路或电路模块。该实现是取决于实现本发明的计算系统的性能要求来选择的。因此,所例示的并且构成此处所描述的实施例的逻辑操作被不同地表示为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可用软件、固件、专用数字逻辑、及其任何组合来实现。图5是示出使用交叉链接以及视频会议服务器的视频会议系统的流程图。在开始框之后,该操作前进至操作510,在那里注册客户机。例如,客户机可经由网络连接操作上连接到计算设备700并且可请求参与由计算设备700主存的视频会议呼叫。移至操作520,收集和/或分析每一注册客户机的能力和请求。例如,计算设备700 可确定对每一客户机可用的带宽量。计算设备700还可确定每一客户机的数据处理能力, 诸如视频编码和/或解码能力和/或数据处理速度。视频编码/解码能力可包括分辨率能力,诸如最大分辨率能力。还可从视频会议中的至少一个客户机接收订阅请求。例如,计算设备700可从一个客户机接收对来自第二客户机的VGA已编码30fps流的订阅请求。该请求可包括诸如期望分辨率、比特率和帧率等信息。根据本发明的各实施例,计算设备700可从参与视频会议的任何和/或所有客户机接收多个订阅请求。例如,一个客户机可请求所有其他参与客户机的较低分辨率版本;另一客户机可请求来自在视频会议中可被指定为活跃讲话者的任何客户机的高分辨率版本以及来自一些或所有其他客户机的低分辨率版本。移至操作530,基于客户机能力以及所接收的请求来确定要交叉链接的客户机。 一般地,选择具有足够带宽和处理能力来有效地对流进行编码/解码的客户机进行交叉链接。所请求的流的数量还可用于确定何时对客户机进行交叉链接。例如,许多会议是双方会议。在双方会议中,一般而言,将媒体处理移出视频会议服务器而不影响焦点或视频会议服务器的信令是有利的。对这些小会议进行交叉链接减小了没有所建立的交叉链接的视频会议服务器所需的大量带宽。还可使用所请求的客户机之间的流的分辨率。例如,将较高带宽的流移出视频会议服务器减小了对视频会议服务器的带宽。前进至操作M0,在客户机之间建立交叉链接。每一交叉链接在视频会议的客户机中的两个之间建立点对点通信。交叉链接的客户机可使用该交叉链接直接发送被定向到彼此的所有或一部分的流。例如,可建立交叉链接以便使用该交叉链接仅发送视频,而音频流通过视频会议服务器来路由。还可建立交叉链接以便通过该交叉链接来发送视频、音频和数据流(见图6以及相关讨论)。转移到操作550,向交叉链接的客户机提供来自视频会议服务器的通知。例如,通知可以是主讲人改变、客户机退出该会议、客户机被添加到该会议、客户机中的一个或多个的能力改变等等。前进至操作560,视频会议服务器将流路由到未交叉链接的客户机。例如,视频会议服务器可从交叉链接的客户机接收要被递送到未交叉链接的客户机的流。转移到判定操作570,确定客户机能力是否改变。当客户机能力改变和/或系统要求改变时,方法500可移至操作575,在那里可修改交叉链接。可对交叉链接进行许多修改。可移除交叉链接,可改变(增加、减小)使用该交叉链接的流量,可添加交叉链接等等。
当不改变能力时,该过程前进至结束操作并返回以处理其他动作。图6是示出视频会议系统中的客户机使用视频会议服务器以及建立交叉链接的流程图。在开始操作之后,该过程前进至操作610,在那里一客户机与另一客户机建立交叉链接。视频会议服务器向客户机发送指示要建立交叉链接的消息。根据本发明的各实施例, 视频会议服务器向客户机中的一个(建立客户机)发送与第二客户机(接收客户机)建立交叉链接的消息。视频会议服务器还可向该接收客户机发送消息,该消息指示建立交叉链接的邀请将来自该建立客户机。视频会议服务器还可向该建立客户机和该接收客户机发送口令,使得该邀请可被自动接受。该建立客户机向该接收客户机进行呼叫,并且与该客户机直接建立交叉链接。前进至操作620,向视频会议服务器通知所建立的交叉链接。根据本发明的各实施例,两个客户机都向服务器通知所建立的交叉链接。另选地,客户机中的一个可向服务器通知所建立的交叉链接。转移至操作630,可测试交叉链接的连接。例如,客户机可将交叉链接的连接的质量/速度与通过视频会议服务器的连接的质量/速度作比较。当交叉链接的连接被确定为可接受时,视频会议服务器可停止在交叉链接的客户机之间发送流。当交叉链接的连接不可接受时,视频会议服务器可指示客户机移除该交叉链接,并且使用通过视频会议服务器的连接。前进至操作640,客户机向所确定的目的地发送所生成的流。目的地中的某些可以是交叉链接的客户机,在该情况下,流直接被发送给该客户机,而另一目的地可以是视频会议服务器,在该情况下,流被发送给视频会议服务器。可将流发送给视频会议服务器以及发送给一个或多个交叉链接的服务器。移至操作650,交叉链接的客户机从视频会议服务器接收通知。例如,通知可以是主讲人改变、客户机退出该会议、客户机被添加到该会议、客户机中的一个或多个的能力改
变等等。图7是包括计算设备700的系统的框图。根据本发明的一个实施例,上述存储器存储和处理单元可在诸如图7的计算设备700的计算设备中实现。可使用硬件、软件、或固件的任何合适的组合来实现该存储器存储和处理单元。例如,存储器存储和处理单元可用计算设备700或结合计算设备700的任何其他计算设备718来实现。根据本发明的各实施例,上述系统、设备和处理器是示例,而其他系统、设备和处理器可包括上述存储器存储和处理单元。此外,计算设备700可包括用于上述系统100的操作环境。系统100可以在其他环境中操作并且不限于计算设备700。参考图7,根据本发明的一个实施例的系统可包括诸如计算设备700的计算设备。 在基本配置中,计算设备700可包括至少一个处理单元702和系统存储器704。取决于计算设备的配置和类型,系统存储器704可包括,但不限于,易失性存储器(例如,随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM))、闪存、或任何组合。系统存储器 704可包括操作系统705、一个或多个编程模块706,并且可包括与确定能力以及对视频编码/解码有关的程序707。例如,操作系统705可适用于控制计算设备700的操作。在一个实施例中,编程模块706可包括例如数据分析模块和/或视频会议服务器720。此外,本发明的各实施例可结合图形库、其他操作系统、或任何其他应用程序来实践,并且不限于任何特定应用或系统。该基本配置在图7中由虚线708内的那些组件示出。计算设备700可具有附加特征或功能。例如,计算设备700还可包括附加数据存储设备(可移动和/或不可移动),诸如例如磁盘、光盘、或磁带。这些附加存储在图7中由可移动存储709和不可移动存储710示出。此处所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器704、可移动存储709 和不可移动存储710都是计算机存储介质(即,存储器存储)的示例。计算机存储介质可包括,但不限于,RAM、R0M、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、 数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可用于存储信息并且可由计算设备700访问的任何其它介质。任何这样的计算机存储介质可以是设备700的一部分。计算设备700还可具有输入设备712,诸如相机、键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可包括输出设备714,如显示器、扬声器、打印机等。上述设备是示例并且可使用其他设备。此处所使用的术语计算机可读介质还可包括通信介质。通信介质可由诸如载波或其他传输机制的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传递介质。术语“已调制数据信号”可描述具有以对该信号中的信息编码的方式设定或者改变的一个或多个特征的信号。作为示例而非限制,通信介质可包括诸如有线网络或直接线连接的有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质的无线介质。计算设备700还可包含可允许设备700诸如通过例如内联网或因特网的分布式计算环境中的网络来与其他计算设备718通信的通信连接716。通信连接716是通信介质的一个示例。如上所述,多个程序模块和数据文件可存储在包括操作系统705的系统存储器 704中。当在处理单元702上执行时,编程模块706 (例如,视频会议服务器720)可执行各过程,包括例如,如上所述的方法的各阶段中的一个或多个。前述过程是示例,并且处理单元702可执行其他过程。根据本发明的各实施例可使用的其他编程模块可包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用程序等。一般而言,根据本发明的各实施例,程序模块可包括可执行特定任务或可实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本发明的各实施例可用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器的系统或可编程消费电子产品、小型机、大型计算机等。本发明的各实施例也可在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。此外,本发明的各实施例可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路中,或在包含电子元件或微处理器的单个芯片上实践。本发明的各实施例还可使用能够执行诸如,例如,AND(与)、0R(或)和NOT(非)的逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的各实施例可在通用计算机或任何其他电路或系统内实践。例如,本发明的各实施例可被实现为计算机过程(方法)、计算系统、或诸如计算机程序产品或计算机可读介质的制品。计算机程序产品可以是计算机系统可读并且对用于执行计算机过程的指令的计算机程序编码的计算机存储介质。计算机程序产品还可以是计算系统可读并且对用于执行计算机过程的指令的计算机程序编码的载体上的传播信号。因此,本发明可在硬件和/或软件(包括固件、常驻软件、微码等)中体现。换言之,本发明的各实施例可采用其上包含在供指令执行系统使用或结合其使用的介质中的计算机可使用或计算机可读程序代码的计算机可使用或计算机可读存储介质上的计算机程序产品的形式。计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序供指令执行系统、装置、或设备使用或结合其使用的任何介质。计算机可使用或计算机可读介质可以是,例如,但不限于,电、磁、光、电磁、红外、 或半导体系统、装置、设备、或传播介质。更具体的计算机可读介质示例(非穷尽列表),计算机可读介质可包括以下具有一条或多条导线的电连接、便携式计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或闪存)、光纤、以及便携式压缩盘只读存储器(CD-ROM)。注意,计算机可使用或计算机可读介质甚至可以是其上打印程序的纸张或另一合适的介质,因为程序可经由例如对纸张或其他介质的光学扫描而电子地捕获,随后如有必要被编译、解释,或以其他合适的方式处理,并且随后存储在计算机存储器中。以上参考根据本发明的各实施例的方法、系统和计算机程序产品的框图和/或操作图示描述了本发明的各实施例。框中所注明的各功能/动作可按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可基本上同时执行,或者这些框有时可按相反的次序来执行。尽管描述了本发明的某些实施例,但是可存在其他实施例。此外,虽然本发明的各实施例被描述为与存储在存储器和其他存储介质中的数据相关联,但数据还可存储在或读取自其他类型的计算机可读介质,诸如辅助存储设备,像硬盘、软盘、或CD-ROM,来自因特网的载波,或其他形式的RAM或ROM。此外,所公开的各方法的各阶段可以任何方式来修改,包括通过对各阶段重新排序和/或插入或删除各阶段,而不背离本发明。包括此处所包括的代码中的版权在内的所有权利都归属于申请人并且是本申请人的财产。申请人保持并且保留此处所包括的代码中的所有权利,并且授予仅关于所授权的专利的再现且未出于其他目的再现该材料的许可。虽然本说明书包括各示例,但本发明的范围由所附权利要求书来指示。此外,尽管用结构特征和/或方法动作专用的语言描述了本说明书,但是权利要求书并不限于上述特征或动作。相反,上述具体特征和动作是作为本发明的各实施例的示例来公开的。
权利要求
1.一种用于对客户机进行交叉链接并使用视频会议服务器来管理视频会议中的客户机的方法,包括在视频会议中的第一客户机与服务器之间建立第一连接,并且在所述视频会议中的第二客户机与所述服务器之间建立第二连接;确定所述第一客户机的第一能力和所述第二客户机的第二能力;其中所述第一能力和所述第二能力是对所述视频会议内所使用的流进行编码和解码的能力;向所述第一客户机和所述第二客户机中的至少一个发送在所述第一客户机与所述第二客户机之间建立交叉链接的连接的请求,其中在所述交叉链接的连接被建立之后,在所述第一客户机与所述第二客户机之间递送流而不通过所述视频会议服务器;以及使用所述视频会议服务器来管理所述视频会议中的所述第一客户机与所述第二客户机。
2.如权利要求1所述的方法,其特征在于,还包括所述客户机中的至少一个确定所述交叉链接的连接何时比与所述服务器建立的连接递送流更快。
3.如权利要求1所述的方法,其特征在于,还包括在所述交叉链接被建立之后指示所述第一客户机和所述第二客户机停止向所述服务器发送所生成的流。
4.如权利要求1所述的方法,其特征在于,还包括响应于所述视频会议中主讲人改变来向所述第一客户机和所述第二客户机发送通知。
5.如权利要求1所述的方法,其特征在于,确定所述能力包括确定与所述第一客户机和所述第二客户机相关联的至少一个通信介质的带宽,以及确定所述第一客户机和所述第二客户机中的每一个的处理能力。
6.如权利要求1所述的方法,其特征在于,管理所述视频会议包括接受来自第三客户机对所述视频会议的订阅,同时维持所述第一客户机与所述第二客户机之间的所述交叉链接的连接。
7.如权利要求6所述的方法,其特征在于,还包括当所述第三客户机没有与所述第一客户机交叉链接时,指示所述第一客户机向所述服务器和所述第二客户机发送所生成的流,其中所述服务器将所生成的流路由到所述第三客户机。
8.如权利要求2所述的方法,其特征在于,还包括确定所述视频会议内的情况何时改变,并且响应于所述情况改变来修改所述交叉链接,其中修改所述交叉链接改变所述第一客户机与所述第二客户机之间的数据流。
9.如权利要求1所述的方法,其特征在于,确定所述视频会议内的情况何时改变包括确定何时达到带宽限制。
10.一种存储指令集的计算机可读介质,当所述指令集被执行时执行一种用于对客户机进行交叉链接并使用视频会议服务器来管理视频会议内的客户机的方法,所述方法由所述指令集执行,所述方法包括为所述视频会议中的每一客户机建立与所述视频服务器的连接;确定所述视频会议内的每一客户机的能力,所述能力至少包括编码能力和可用带宽;确定所述视频会议内要交叉链接的客户机;在每一所确定的客户机之间建立所述交叉链接,其中在所述交叉链接的连接被建立之后,在交叉链接的客户机中的至少两个之间递送流而不通过所述视频会议服务器;以及使用所述视频会议服务器来管理所述交叉链接的客户机和所述视频会议中的其他客户机。
11.如权利要求10所述的计算机可读介质,其特征在于,还包括对于所建立的交叉链接中的每一个,确定何时使用所述交叉链接的连接来代替与所述服务器的连接。
12.如权利要求10所述的计算机可读介质,其特征在于,还包括向所述交叉链接的客户机中的至少一些指示何时停止向所述服务器发送所生成的流。
13.如权利要求10所述的计算机可读介质,其特征在于,还包括响应于所述视频会议中主讲人改变来向所述交叉链接的客户机发送通知。
14.如权利要求10所述的计算机可读介质,其特征在于,所述流是视频流,并且其中与所述视频流相关联的音频流由所述视频会议服务器来处理和路由。
15.如权利要求10所述的计算机可读介质,其特征在于,管理所述视频会议包括在建立所述交叉链接之后接受来自新客户机对所述视频会议的订阅,以及确定何时为所述新客户机建立交叉链接的连接。
16.如权利要求15所述的计算机可读介质,其特征在于,还包括指示交叉链接的客户机向所述服务器发送所生成的流,其中所述服务器将所生成的流路由到未交叉链接到所指示的客户机的客户机。
17.如权利要求11所述的计算机可读介质,其特征在于,还包括确定所述视频会议内的情况何时改变,以及响应于所述情况改变来修改所述交叉链接中的至少一个,其中修改所述交叉链接改变所修改的交叉链接的客户机之间的数据流量。
18.如权利要求10所述的计算机可读介质,其特征在于,确定所述视频会议内的情况何时改变包括确定何时达到带宽限制。
19.一种用于生成流以及对客户机进行交叉链接并使用视频会议服务器来管理视频会议内的客户机的系统,所述系统包括存储器存储;网络连接设备;以及耦合到所述存储器存储的处理单元,其中所述处理单元用于注册经由所述网络连接设备操作上耦合到所述系统的第一视频会议客户机和第二视频会议客户机,其中用于注册所述第一视频会议客户机和所述第二视频会议客户机包括用于确定所述第一视频客户机和所述第二视频会议客户机的能力,其中所述能力被用于确定编码能力;在所述第一视频会议客户机与所述第二视频会议客户机之间建立交叉链接;其中从所述第一视频会议客户机发送到所述第二视频会议客户机的流不由所述处理单元处理;从所述第一视频会议客户机接收流,并将所述流路由到所述视频会议中的另一客户机。
20.如权利要求19所述的系统,其特征在于,还包括在所述视频会议中讲话者改变后通知所述第一视频会议客户机和所述第二视频会议客户机。
全文摘要
本发明公开了在视频会议中结合直接和路由通信。视频会议对于点对点通信的客户机的至少一部分进行交叉链接,同时仍使用视频会议服务器。该视频会议服务器继续为交叉链接的客户机管理该视频会议的某些方面,并且可被配置成在视频会议中为客户机的某一些执行音频/视频处理。例如,该视频会议服务器可为不具有直接执行该处理的能力的客户机执行音频/视频处理以及流的路由。能够处理其音频/视频需求的客户机可通过交叉链接来直接连接到其他客户机,同时仍使用该视频会议服务器以供管理。
文档编号H04L12/18GK102299917SQ201110188510
公开日2011年12月28日 申请日期2011年6月24日 优先权日2010年6月25日
发明者D·库科莱恰, J·郑, T·摩尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1