使用多个比特率流的视频会议订阅的制作方法

文档序号:7738093阅读:106来源:国知局
专利名称:使用多个比特率流的视频会议订阅的制作方法
使用多个比特率流的视频会议订阅背景视频会议订阅允许客户选择其愿意观看的参与者。视频电话会议可以使用允许两个和/或更多位置通过双向视频和音频传输同时交互的交互式的通讯技术。视频会议可以使用音频和视频的通讯以将位于不同地点的人一起集合到会议中。这可以是私人办公室中两个人之间的对话(点对点)和/或可以包括多于一个人在不同地点的大房间中的若干地点(多点)。除了会议活动的音频和视频传输之外,视频会议还可以用于分享文档、计算机显示的信息和白板。音频/视频传输可以使用称为编码的过程被捕获、记录和数字化,通过例如计算机网络的通信介质被传送到另一个地点,并且被接收、解码以及向视频会议中的另一个参与者显示。众多编码/解码标准与这一过程兼容。视频会议中的传统策略是将视频流由一个参与者路由至另一个参与者,而不是混合视频内容(解码所有传入的视频流,将其组成在一起,并且将其重新编码为单个视频流并且将重新编码的流发送到每个参与者)。因此,一些系统仅能够切换到并且示出视频电话会议中的活跃发言者,而不是示出来自所有参与者的视频或允许用户选择观看其想要观看的任意参与者。此外,传统的系统可能不允许客户订阅特定的流以替代静态混合流,并且由于带宽限制客户可能不能够接收这么多的流。概述可以提供使用多个比特率流的视频会议订阅。提供本概述以便用一种简单的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在确定所要求保护的主题的关键或必要特征。本概述也不旨在用于限制所要求保护的主题的范围。可以提供视频会议订阅。视频会议服务器可以以多个不同的比特率接收来自视频会议中每个客户的视频流,并且可以接收来自每个客户的订阅请求。订阅请求可以包括以给定的分辨率和/或帧率来观看来自特定的其它客户的视频流的请求。视频会议服务器可以将接收到的视频流与订阅请求相匹配,以便向订阅客户发送其所需的视频流。服务器还能够请求来自参与者的不同版本的视频流(例如不同的分辨率)和/或修改视频流以便更好地符合订阅请求。前面的一般描述和以下的详细描述都仅提供示例并且仅是示例性的。因此,前面的一般描述和以下的详细描述都不应被认为是限制的。此外,除此处提出的之外,可以提供特征或变种。例如,可以将实施例定向至详细描述中描述的各种特征的组合和子组合。附图简述被合并入并且构成本公开的一部分的附图示出本发明的各实施例。在附图中

图1是视频会议环境的框图;图2是示出各视频订阅配置的示图;图3是示出多个比特率(MBR)编码的示图;图4是用于提供视频会议中订阅的方法的流程图;图5是在图4的方法中使用的用于选择与订阅请求匹配的视频流的子例程的流程图;以及
图6是包括计算设备的系统的框图。详细描述以下详细描述参考附图。在任何可能的地方,相同的标号在附图和以下描述中用于指示相同或相似的元素。尽管描述本发明的实施例,但是修改、适应和其它实现是可能的。例如,可以对附图中示出的元素做出替换、增加或修改,并且可以通过替换、重新排序或增加阶段到所公开的方法来修改此处描述的方法。因此,以下详细描述不限制本发明。替代地,由所附权利要求书定义了本发明的合适范围。可以提供视频会议中的订阅。与本发明的实施例一致,多个比特率(MBR)的方案可以用于与客户订阅由参与视频会议的其他客户提供的视频流的请求一致,将数据流入客户。例如,一个客户可能想要同时观看来自参与视频会议的每个其他客户的视频源流,而另一个客户仅想要观看来自一个其他客户的流。图1是视频会议环境100的框图。视频会议环境100可以包括内部网客户110和通过内部网连接115连接的视频会议服务器120。视频会议环境100可以进一步包括第一因特网客户130、第二因特网客户140和第三因特网客户150。每个因特网客户可以通过因特网160被连接至视频会议服务器120。与本发明的实施例一致,视频会议服务器120、内部网客户110、第一因特网客户130、第二因特网客户140和第三因特网客户150的每个都可以包括以下关于图6更详细描述的计算设备600。当多个客户想要在彼此之间共享视频流时,可以使用视频会议环境100。每个客户可以连接至视频会议服务器120。视频会议服务器120可以维护哪些客户被连接以及每个客户有什么能力的列表。与本发明的实施例一致,视频会议服务器120可以负责确定哪些客户可负责将视频流发送给视频会议服务器120。视频会议服务器120可以将从客户接收的视频流发送给其他连接的客户。视频流可以被编码为一系列的视频帧,其中每帧可以包括单幅图像。每帧可以由数据比特表示。可以编码视频流,从而为了表示视频流的源,并不需要发送每帧中的每个数据比特。不同的帧类型可以用于编码和/或压缩视频流。每个客户可以编码至少一个视频流以发送给视频会议服务器120。例如,每个客户可以具有例如连接至客户的网络摄像头和/或话筒的音频/视频输入。输入可以用于生成视频流(其可以包括音频),并且客户可以在将其发送至视频会议服务器120之前编码视频流。视频会议服务器120可以接收来自每个客户的编码流并且确定哪些流中转到每个客户。例如,内部网客户110可以将视频流编码为一系列包括当前讲话者的视频帧。视频会议服务器120可以将来自内部网客户110的示出当前讲话者的编码流发送到第一因特网客户130、第二因特网客户140和第三因特网客户150。视频会议服务器120可以将来自第一因特网客户130、第二因特网客户140和第三因特网客户150中每一个的编码源流发送到内部网110以示出观众成员。图2是示出视频会议环境100中各视频订阅配置的示图。第一因特网客户130可以将第一源视频流230发送到视频会议服务器120。第二因特网客户140可以将第二源视频流240发送到视频会议服务器120。第三因特网客户150可以将第三源视频流250发送到视频会议服务器120。内部网客户110可以将第四源视频流210发送到视频会议服务器 120。每个源视频流可以包括包含分辨率和帧率的性质。例如,源视频流可以包括以高清晰度(1280x720像素)的分辨率和30帧每秒(fps)的帧率、VGA (640x480)的分辨率和 30fps的帧率、和/或CIF(320xM0)的分辨率和15fps的帧率编码的视频。每个客户可以将订阅请求发送至视频会议服务器120。订阅请求可以包括诸如源客户、分辨率和/或帧率等的请求参数。例如,内部网客户110可以请求订阅来自第一因特网客户130的视频流。视频会议服务器120可以确定与订阅请求匹配的视频流(例如第一源视频流230)是否可用。与本发明的实施例一致,视频会议服务器120可以确定第一源视频流230是否包括任何和/或全部其它订阅请求参数。例如,订阅请求可以包括对来自第一因特网客户130的以VGA分辨率和30fps帧率编码的视频流的请求。如果第一源视频流 230匹配这些参数,即如果第一源视频流230以VGA分辨率和30fps帧率编码,则视频会议服务器120可以将第一源视频流230中转到内部网客户110。如果第一源视频流230不匹配这些参数,视频会议服务器可以指示第一因特网客户对包括不同版本的第一源视频流230的另外的源视频流进行编码,其中不同的版本包括第一因特网客户130所能编码的与订阅请求参数尽可能接近的匹配。例如,第一因特网客户130不能够以VGA分辨率和30fps帧率编码源视频流,但是能够以VGA分辨率和15fps 帧率编码源视频流。第一因特网客户130从而可以以VGA分辨率和15fps帧率编码另外的源视频流,并且将另外的源视频流发送到视频会议服务器120。视频会议服务器120可以响应于来自内部网客户110的订阅请求,而将另外的源视频流中转到内部网客户110。与本发明的实施例一致,视频会议客户可以将对多于一个视频流的订阅请求发送到视频会议服务器120。例如,第一因特网客户130可以请求订阅来自参与视频会议的每个其他客户的源视频流。视频会议服务器120可以将第二源视频流M0、第三源视频流250 和第四源视频流210中转至第一因特网客户130。进一步与本发明的实施例一致,客户可以想要观看来自参与视频会议的所有客户的视频源流。例如,第二因特网客户140可以参与四个客户的视频会议,并且请求订阅示出所有四个参与客户的2x2的合成视频流。视频会议服务器可以使用数字信号处理将第一源视频流230、第二源视频流M0、第三源视频流250和第四源视频流210合成为单个视频流, 以的网格排列四个源,并且将单个合成的视频流发送至第二因特网客户M0。进一步与本发明的实施例一致,客户可以想要订阅多个视频源流,但是没有足够的带宽来接收所请求流的原始版本。例如,第三因特网客户150可以请求订阅来自内部网 110和第一因特网客户130的视频流。订阅可以包括请求以hi的矩阵以及VGA分辨率和 15fps帧率发送这两个流的参数。如果以VGA分辨率和30fps帧率将第一源视频流230和第四源视频流210发送至视频会议服务器120,则在将两个视频流合成为用于发送到第三因特网客户150的一个新视频流之前,视频会议服务器120可以例如通过每隔一帧删除一帧以修改第一源视频流230和第四源视频流210中的每一个。图3是示出多个比特率(MBR)编码的示图。如以上关于图1所述,视频会议系统 100可以包括内部网客户110、视频会议服务器120、第一因特网客户130和第二因特网客户 140。与本发明的实施例一致,内部网客户110可以基于来自其他客户的订阅请求,将源视频流的高分辨率版本310和源视频流的低分辨率版本320发送到视频会议服务器120。例如,第一因特网客户可以向视频会议服务器120发送对来自内部网客户110的高分辨率视频流的订阅请求305,并且视频会议服务器120可以通过将源视频流的高分辨率版本310中转至第一因特网客户130以响应。第二因特网客户140可以以和内部网客户110提供的视频源流的低分辨率版本 320不同的帧率,来发送对来自内部网客户110的低分辨率视频流的订阅请求340。视频会议服务器120可以修改低分辨率版本320以匹配所请求的帧率,并且将视频源流的修改的版本350发送到第二因特网客户140。与本发明的实施例一致,订阅请求可以包括模式参数。例如,客户想要订阅来自所有其他参与者的视频流,但是以更高的分辨率接收当前说话者的流。因此客户可以发送包括语音模式参数的订阅请求。根据每个源视频流指示其含有当前的说话者,视频会议服务器120可以为客户的订阅切换视频流,并且当其为当前说话者时,当前说话的客户可以添加另外的高分辨率的视频流。另一种可能的组成可以有一个主导说话者客户和众多听众客户。说话者想要观看来自听众客户的众多和/或全部视频流,而听众客户仅想要观看说话者和/或在问答环节中提问的客户。视频会议服务器120可以允许说话者客户通过请求低分辨率的流来订阅所有的听众客户。如果所有的较低分辨率流所需的总带宽仍高于说话者客户能够处理的带宽,则视频会议服务器120可以将流修改为较低帧率。与本发明的实施例一致,说话者客户可以切换以观看一个听众客户或多个听众客户。例如如果听众客户数小于可配置的阈值,则听众客户可以将较高分辨率的视频流发送到视频会议服务器120。图4是与用于说明在视频会议中提供订阅的本发明的实施例一致的方法400内所包含的一般阶段的流程图。方法400可以用以下关于图6更详细描述的计算设备600实现。 以下将更详细地描述实现方法400的各阶段的方法。与本发明的实施例一致,方法400的任何和/或全部阶段可以在视频会议服务器120和/或多个视频会议客户中的任何一个上执行。方法400可以在开始方框410处开始,并且进行到其中计算设备600可以注册至少一个客户的阶段420处。例如,该至少一个客户可以通过网络连接可操作地连接至计算设备600,并且可以请求参与由计算设备600主持的视频电话会议。作为注册的一部分,计算设备600可以确定该至少一个客户的包括可用的计算能力和编码/解码方案的能力,并且可以要求该至少一个客户以多个不同的比特率提供多个视频流。与本发明的实施例一致,如果该客户有能力,则计算设备600可以请求该至少一个客户提供若干个视频流,但是如果该客户具有少量的可用的计算能力、处理器周期、存储器和/或带宽,则计算设备可以要求该客户仅提供一个流。方法400可以从阶段420处前进至其中计算设备600可以接收来自该至少一个客户的至少一个编码视频流的阶段430处。多个客户可以参与视频会议,并且每个客户可以发送至少一个视频流。例如,计算设备600可以从至少一个客户接收以VGA分辨率和30fps 帧率编码的音频/视频流。与本发明的实施例一致,计算设备600可以接收来自至少一个客户的多个流。例如,客户可以发送三种版本的视频流一个以高清晰度分辨率和30fps帧率编码,一个以VGA分辨率和30fps帧率编码,一个以CIF分辨率和15fps帧率编码。方法400可以从阶段430处前进至其中计算设备600可以接收来自视频会议中至少一个客户的订阅请求的阶段440处。例如,计算设备600可以从一个客户接收对来自第二客户的VGA编码的30fps的流的订阅请求。与本发明的实施例一致,计算设备600可以接收来自参与视频会议的任何和/或全部客户的多个订阅请求。例如,一个客户可以请求
10所有其他参与客户的较低分辨率的版本,另一个客户可以请求来自被指定为视频会议中的活跃说话者的客户的高分辨率版本以及来自若干或所有其他客户的低分辨率版本。方法400可以从阶段440处前进至其中计算设备600可以找到与订阅请求匹配的视频流以发送到至少一个客户的子例程450处。例如,计算设备600可以确定第二客户已经正在将VGA编码的30fps的视频流发送至计算设备600,并且因此计算设备600可以确定这一视频流与订阅请求匹配。以下关于图5将描述与子例程450有关的进一步的细节。方法400可以从子例程450处前进至其中计算设备600可以将匹配视频流发送到客户的阶段460处。例如,计算设备600可以通过网络连接将从第二客户接收的匹配视频流中转至发送订阅请求的客户。方法400可以从阶段460处前进至其中计算设备600可以确定是否已经接收到任何更多订阅请求的阶段470处。订阅请求可以包括修改现有订阅的请求,例如其中一个客户请求该客户已经正在接收的流的低分辨率版本。例如,可以响应于可用带宽的下降作出这一请求。订阅请求还可以包括由已经接收至少一个视频流的客户提出的对来自另外的客户的视频流的请求,或者来自视频会议中其他客户的请求。如果计算设备600确定已经接收到另一个订阅请求,则方法400可以返回至子例程450并且尝试找到匹配的视频流。如果没有接收到另外的订阅请求,计算设备600可以继续等待另外的请求直到视频会议结束为止,此时方法400可以在阶段480处结束。图5是在图4的方法中使用的用于选择与订阅请求匹配的视频流的子例程的流程图。在子例程450中,计算设备600可以分析例如所请求的视频流的源客户这样的与订阅请求相关的性质。子例程450可以在阶段510处开始,其中计算设备600可以确定与被请求的源客户相关的视频流是否可用。这一确定可以包括确定源客户是否被连接至视频会议, 源客户当前是否正在向计算设备600发送视频流,和/或如果由计算设备600和/或视频会议中的另一个客户请求、源客户是否能够发送视频流。在阶段510处,如果计算设备600 确定被请求的源客户不能够提供所请求的视频流,则子例程450可以前进至阶段515处,其中计算设备600可以依照预定义的逻辑选择替代的源客户。例如,计算设备600可以选择被指定为活跃说话者的客户。与本发明的实施例一致,计算设备600可以向请求的客户返回错误,以通知该客户所请求的订阅不可用。计算设备600可以继续做出关于在整个视频会议中被请求的源客户是否变为可用的周期性的确定。如果在阶段515处选择替代的源客户,则子例程450可以返回至阶段510处以确定新选择的源客户是否可用。在阶段510处,如果计算设备600确定被请求的源客户是可用的和/或能够提供视频流,则子例程450可以前进至阶段520处,其中计算设备600可以确定与订阅请求相关的源客户当前是否正在以与订阅请求相关的分辨率发送视频流。例如,客户可以请求订阅 VGA(640x480)分辨率的源客户的视频流。计算设备600可以确定源客户是否正在提供其视频流的VGA分辨率的版本。如果不是,子例程450可以前进至其中计算设备600可以确定源客户是否能够以正确分辨率提供视频流的阶段525处。在阶段525处,如果计算设备600确定源客户能够以所请求的分辨率提供视频流, 则子例程450可以前进至阶段530处,其中计算设备600可以请求源客户开始以所请求的分辨率发送视频流。如果确定源客户不能够以所请求的分辨率提供视频流,则子例程450 可以前进至阶段535处,其中计算设备600可以选择使用最接近的可能分辨率的另一个版本的源客户的视频流。例如,源客户能够提供CIF分辨率的视频流以代替VGA分辨率的视频流。一旦由计算设备600选择了视频流的分辨率,子例程450可以前进至阶段540处, 其中计算设备600可以确定与订阅请求相关的帧率的视频流是否可用。如果在阶段520处选择的流不匹配所请求的帧率,则子例程450可以前进至阶段545处,其中计算设备600可以例如通过删除间隔的帧以降低帧率来修改视频流。例如,计算设备600可以接收对15fps 的VGA分辨率的视频流的订阅请求,但是由源客户提供的视频流可以是以30fps编码。例如,计算设备600可以从视频流中丢弃帧以降低帧率。与本发明的实施例一致,类似于关于分辨率的阶段525处的过程,计算设备600可以确定源客户是否能够以所请求的帧率编码和发送视频流,并且可以请求源客户将匹配的流发送至计算设备600。子例程450可以从阶段540和/或阶段545处返回方法400的阶段460处。与本发明的实施例一致,订阅请求可以为诸如源客户、分辨率和帧率等的性质提供替代的可接受的值。例如,订阅请求可以包括对来自第一客户的视频流的请求,并且可以指示来自第二客户的视频流也是可接受的。类似地,订阅请求可以对所请求的分辨率区分优先级,例如如果可用则优选高清晰度的视频流,指示VGA分辨率的流也是可接受的,但是如果仅有CIF分辨率的流是可用的,则请求计算设备600响应于订阅请求而不发送视频流。与本发明一致的实施例可以包括用于向多个客户提供数据的系统。系统可以包括存储器存储以及被耦合至存储器存储的处理单元。处理单元可以被操作为接收来自至少一个第一客户的至少一个视频流,接收来自至少一个第二客户的视频订阅请求,确定从至少一个第一客户接收的至少一个视频流是否与来自至少一个第二客户的视频订阅请求匹配, 并且响应于确定从至少一个第一客户接收的至少一个视频流与来自至少一个第二客户的视频订阅请求匹配,将从至少一个第一客户接收的至少一个视频流发送至至少一个第二客户。视频订阅请求可以包括所请求的分辨率和/或所请求的帧率。如果从至少一个第一客户接收的至少一个视频流与来自至少一个第二客户的视频订阅请求不匹配,则处理单元可以被操作为指示至少一个第一客户以停止编码和发送至少一个视频流。与本发明的实施例一致,处理单元可以被操作为注册多个参与视频会议的客户, 接收来自多个客户的每一个的至少一个视频流,接收来自每个注册客户的至少一个视频订阅请求,确定来自每个注册客户的至少一个视频订阅请求是否与从多个客户接收的至少一个视频流匹配,并且将匹配的至少一个接收到的视频流发送至多个客户中的每一个。确定订阅请求和接收到的视频流之间的匹配可以包括确定视频流是否与订阅请求中被请求的源客户、所请求的分辨率和/或所请求的帧率匹配。如果接收到的视频流与至少一个订阅请求不匹配,处理器可以被操作为确定是否可以修改至少一个接收到的视频流以匹配至少一个视频订阅请求,修改视频流,以及将已修改的视频流发送至请求的客户。修改视频流可以包括以一个不同的分辨率重新编码视频流、从视频流中丢弃至少一帧、和/或将至少两个接收的视频流合并为单个视频流。与本发明的进一步实施例一致,处理单元可以被操作为确定与订阅请求相关的视频流源客户是否能够编码满足订阅请求的视频流。如果源客户能够这么做,则处理单元可以发送指令至视频流源客户以编码匹配的视频流,并且将所产生的匹配视频流发送至作出请求的至少一个注册客户。被操作为确定源客户是否能够发送匹配的视频流可以包括被操作为确定视频流
12源客户是否能够编码两个不同版本的视频流,其中两个版本在分辨率和/或帧率上不同。如果处理单元确定接收到的视频流不能够满足至少一个订阅请求和/或没有客户能够提供所请求的视频流,处理单元可以被操作为计算哪些接收到的视频流最接近地与该至少一个视频订阅请求匹配,并且将与该至少一个视频订阅请求最接近匹配的视频流发送至作出请求的至少一个注册客户。例如,处理单元可以确定至少一个视频流是否与和订阅请求相关的视频流源客户匹配,与和订阅请求相关的视频流源客户匹配的至少一个视频流是否与和订阅请求相关的分辨率匹配,和/或与和订阅请求相关的视频流源客户以及分辨率匹配的至少一个视频流是否与和订阅请求相关的帧率相匹配。处理单元可以将该至少一个视频流发送至请求的客户。如果处理单元确定至少一个视频流与和订阅请求相关的视频流源客户不匹配,则处理单元可以被操作为从多个客户中选择和与订阅请求相关的视频流源客户不同的第二视频流源客户,并且将从选定的第二视频流源客户接收的至少一个视频流发送至请求的客户。从多个客户中选择和与订阅请求相关的视频流源客户不同的第二视频流源客户可以包括选择正在发送包括当前说话者的视频流的第二视频流源客户。与本发明一致的另一个实施例可以包括用于向多个客户提供视频流的系统。系统可以包括存储器存储以及被耦合至存储器存储的处理单元。处理单元可以被操作为注册多个视频会议客户,接收来自多个视频会议客户中的每一个的至少一个源视频流,接收来自多个视频会议客户中的至少一个的至少一个视频流订阅请求,确定从多个视频会议客户中的每一个接收的源视频流的至少一个第一视频流是否与至少一个视频流订阅请求匹配,并且响应于确定从多个视频会议客户中的每一个接收的源视频流的至少一个第一视频流与至少一个视频流订阅请求匹配,将匹配的源视频流的至少一个第一视频流发送至请求的多个视频会议客户中的至少一个。处理单元可以进一步被操作为从多个视频会议客户中的至少一个接收至少一个第二视频流订阅请求,确定从多个视频会议客户中的每一个接收的源视频流的至少一个第二视频流是否与至少一个第二视频流订阅请求匹配,并且响应于确定从多个视频会议客户中的每一个接收的源视频流的至少一个第二视频流与至少一个第二视频流订阅请求匹配,将匹配的源视频流的至少一个第二视频流发送至请求的多个视频会议客户中的至少一个。与本发明的实施例一致,被操作为将匹配的源视频流的至少一个第二视频流发送至请求的多个视频会议客户中的至少一个可以包括处理单元被操作为创建匹配的源视频流的至少一个第一视频流和匹配的源视频流的至少一个第二视频流的合成视频流,并且将该合成视频流发送至请求的多个视频会议客户中的至少一个。处理单元可以进一步被操作为接收来自多个视频会议客户中的至少一个的至少一个第二源视频流,其中所述至少一个第二源视频流包括至少一个源视频流的不同版本。 不同版本可以包括至少一个第一视频源流的较低分辨率的版本。处理单元可以被操作为接收来自至少一个第一视频会议客户的至少一个第一视频源流,接收来自至少一个第二视频会议客户的至少一个第二视频源流,从至少一个第三视频会议客户接收对来自至少一个第一视频会议客户和来自至少一个第二视频会议客户的源视频流的订阅请求,并且创建至少一个第一视频源流和至少一个第二视频源流的合成视频流。被操作为创建合成视频流可以包括被操作为修改至少一个视频源流的帧率并且将已修改的流合成为单个视频流。与本发明一致的另一个实施例可以包括用于在视频会议中提供码率匹配的系统。 系统可以包括存储器存储以及被耦合至存储器存储的处理单元。处理单元可以被操作为接收来自多个视频会议客户的多个视频流,接收来自多个视频会议客户中的至少一个的至少一个订阅请求,并且确定是否正在以所请求的分辨率和所请求的帧率、为所请求的多个视频流中的至少一个接收来自源客户的所请求的多个视频流中的至少一个。如果多个视频流中没有与所请求的分辨率和/或帧率匹配,则处理单元可以被操作为确定源客户是否能够发送匹配的视频流,请求源客户这样做,并且将匹配的视频流发送至请求的客户。订阅请求可以包括对多个视频流的至少一个、所请求的分辨率和/或所请求的帧率的请求。每个客户可以发送多个视频流中的至少一个。图6是包括计算设备600的系统的框图。与本发明的实施例一致,上述的存储器存储和处理单元可以在例如图6的计算设备600的计算设备中实现。硬件、软件或固件的任意合适组合可以用于实现存储器存储和处理单元。例如,存储器存储和处理单元可以用计算设备600或任何其它计算设备618与计算设备600结合实现。上述的系统、设备和处理器是示例,并且与本发明的实施例一致,其它系统、设备和处理器可以包括上述的存储器存储和处理单元。此外,计算设备600可以包括如上所述的系统100的操作环境。系统100 可以在其它环境中操作,而不限于计算设备600。参考图6,与本发明的实施例一致的系统可以包括例如计算设备600的计算设备。 在基本体系结构中,计算设备600可以包括至少一个处理单元602和系统存储器604。取决于计算设备的配置和类型,系统存储器604可以包括但不限于,易失性(例如随机存取存储器(RAM))、非易失性(例如只读存储器(ROM))、快闪式存储器、或任意组合。系统存储器 604可以包括操作系统605、一个或更多程序模块606,并且可以包括程序数据607。操作系统605可以例如适用于控制计算设备600的操作。在一个实施例中,程序模块606可以包括例如数据分析模块和/或视频会议服务器620。此外,本发明的实施例可以与图形库、其它操作系统或任何其它应用程序共同实现,并且不限于任何特定的应用程序或系统。通过虚线608中的那些组件在图6中示出这一基本的配置。计算设备600可以具有另外的特征或功能。例如,计算设备600还可以包括另外的数据存储设备(可移动和/或不可移动的),诸如例如磁盘、光盘、或磁带。这些另外的存储在图6中由可移动存储609和不可移动存储610来示出。计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动的介质。系统存储器604、可移动存储609和不可移动存储610都是计算机存储介质的示例(即存储器存储)。计算机存储介质包括但不局限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其它存储器技术,CD-ROM、数字多功能盘(DVD)或其它光学存储、盒式磁带、磁带、磁盘存储或其它磁性存储设备、或可以用来存储信息并且可以被计算设备600访问的任何其它介质。任何此类计算机存储介质可以是计算设备600的一部分。计算设备600还可以具有输入设备612,诸如键盘、鼠标、笔、 语音输入设备、触摸输入设备等等。还可以包括诸如显示器、扬声器、打印机等的输出设备 614。上述的设备是示例,并且可以使用其它设备。计算设备600还可以包含允许设备600诸如跨分布式计算环境中例如内部网或因特网的网络与其它计算设备618通信的通信连接616。通信连接616是通信介质的一个示例。通信介质可以一般地由计算机可读指令、数据结构、程序模块、或诸如载波或其它传输机制等的已调数据信号中的其它数据来体现,并且包括任何信息传递介质。术语“已调数据信号”可以描述具有一个或更多特征集或以对信号中的信息编码的方式变化的信号。为了示例,而不是限制,通信介质可以包括诸如有线网络或有向有线连接等的有线介质,以及诸如声学的、射频(RF)、红外的和其它无线介质等的无线介质。此处使用的术语计算机可读介质可以包括存储介质和通信介质。如上所述,众多程序模块和数据文件可以被存储在包括操作系统605的系统存储器604中。当在处理单元602上执行时,程序模块606(例如视频会议服务器620)可以执行包括例如以上描述的方法400的一个或更多阶段的过程。上述过程是示例,并且处理单元602可以执行其它过程。可以依照本发明的实施例使用的其它程序模块可以包括电子邮件和联系人应用程序、文字处理应用程序、电子数据表应用程序、数据库应用程序、幻灯片演示应用程序、画图或计算机辅助应用程序等。一般地,与本发明的实施例一致,程序模块可以包括可以执行特定任务或可以实现特定抽象数据类型的例程、程序、组件、数据结构、以及其它类型的结构。此外,可以用其它计算机系统配置来实现本发明的实施例,包括手持式设备、多处理器系统、基于微处理器或可编程的消费电子产品、微型计算机、大型计算机等等。还可以在分布式计算环境中实现本发明的实施例,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以同时位于本地和远程存储器存储设备中。此外,可以在包括离散电子元件的电路中,在包含逻辑门的封装或集成的电子芯片中,在使用微处理器的电路中,或在包含电子元件或微处理器的单片机上实现本发明的实施例。还可以使用能够执行诸如例如与、或和非的逻辑操作的其它技术来实现本发明的实施例,该技术包括但不限于,机械的、光学的、流体的和量子的技术。此外,可以在通用计算机中或在任何其它电路或系统中实现本发明的实施例。例如,本发明的实施例可以被实现为计算机过程(方法)、计算系统或制造的商品,诸如计算机程序产品或计算机可读介质。计算机程序产品可以是计算机系统可读取的并且编码用于执行计算机过程的指令的计算机程序的计算机存储介质。计算机程序产品还可以是计算系统可读取的并且编码用于执行计算机过程的指令的计算机程序的载波上的传播信号。因此,本发明可以被包含在硬件和/或软件(包括固件、常驻软件、微代码等) 中。换句话说,本发明的实施例可以采取计算机可用或计算机可读存储介质上的计算机程序产品的形式,该计算机可用或计算机可读存储介质具有包含在介质中由指令执行系统或连同指令执行系统使用的计算机可用或计算机可读程序代码。计算机可用或计算机可读介质可以是能够包含、存储、通信、传播、或传输由指令执行系统、装置或设备使用或连同指令执行系统、装置或设备使用的程序的任何介质。计算机可用或计算机可读介质可以是,例如但不限于,电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置、设备或传播介质。更具体的计算机可读介质示例(非详尽的列表),计算机可读介质可以包括下列具有一条或更多线的电连接、便携式计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或快闪式存储器)、光纤、以及便携式的光盘只读存储器(CD-ROM)。注意到计算机可用或计算机可读介质甚至可以是程序被打印在其上的纸或另一合适介质,因为程序可以通过例如光学扫描纸或其它介质被电子地获取,然后被编译、被解释或以合适的方式被处理,如果必要,则然后被存储在计算机存储器中。例如,以上参考依照本发明的实施例的方法、系统和计算机程序产品的框图和/ 或操作示图描述了本发明的实施例。方框中标出的功能/动作可以不以任何流程图中所示的顺序进行。例如,取决于所包含的功能/动作,连续示出的两个方框实际上可以本质上并发地执行,或者方框有时可以以相反的顺序执行。尽管已经描述了本发明的特定实施例,但是可以存在其它实施例。此外,尽管已经描述了本发明的实施例与存储在存储器和其它存储介质中的数据相关,但是数据也能够被存储在其他类型的计算机可读介质上或从其它类型的计算机可读介质被读取,所述其他类型的计算机可读介质诸如例如硬盘、软盘、或CD-ROM的次级存储设备、来自因特网的载波、 或其它形式的RAM或ROM。此外,所公开的方法的阶段可以以包括重新排序阶段和/或插入或删除阶段的任何方式修改,而不偏离本发明。此处所包括的所有权利,包括代码的版权都被授予,并且是申请者的财产。申请者保持和保留此处所包括的代码的所有权利,并且仅授予连同所授予的专利的复制以重新生产材料而不用于其它用途的许可。尽管本说明书包括示例,但是本发明的范围由以下权利要求书说明。此外,尽管用结构特征和/或方法动作专用的语言描述了本说明书,但是所附利要求书不限于上述的特征或动作。相反,上述的具体特征和动作是作为本发明的实施例的示例公开的。
权利要求
1.一种用于提供视频流210、230、240、250订阅的方法,所述方法包括接收430来自至少一个第一客户110、130、140、150的至少一个视频流210、230、对0、250 ;接收440来自至少一个第二客户110、130、140、150的视频订阅请求305、340 ; 确定450从至少一个第一客户110、130、140、150接收的至少一个视频流210、230、对0、 250是否与来自至少一个第二客户110、130、140、150的视频订阅请求305、;340匹配;以及响应于确定450从至少一个第一客户110、130、140、150接收的至少一个视频流210、 230,240,250与来自至少一个第二客户110、130、140、150的视频订阅请求305、340匹配,将从至少一个第一客户110、130、140、150接收的至少一个视频流210、230、240、250发送460 至至少一个第二客户110、130、140、150。
2.如权利要求1所述的方法,其特征在于,还包括响应于确定450从至少一个第一客户110、130、140、150接收的至少一个视频流210、 230,240,250与来自至少一个第二客户110、130、140、150的视频订阅请求305、340不匹配, 发送指令到至少一个第一客户110、130、140、150以停止编码和发送至少一个视频流210、 230、240、250。
3.如权利要求1所述的方法,其特征在于,还包括 注册 420 多个客户 110、130、140、150 ;接收430来自多个客户110、130、140、150中每一个的至少一个视频流210、230、对0、250 ;接收440来自注册客户110、130、140、150中每一个的至少一个视频订阅请求305、340 ;确定450来自注册客户110、130、140、150中每一个的至少一个视频订阅请求305、340 是否与从多个客户110、130、140、150接收的至少一个视频流210、230、240、250匹配;以及响应于确定450来自注册客户110、130、140、150中每一个的至少一个视频订阅请求 305,340与从多个客户110、130、140、150接收的至少一个视频流210、230、M0、250匹配,将匹配的至少一个接收到的视频流210、230、240、250发送460至多个客户110、130、140、150 中的每一个。
4.如权利要求3所述的方法,其特征在于,所述确定450来自注册客户110、130、140、 150中每一个的至少一个视频订阅请求305、340是否与从多个客户110、130、140、150接收的至少一个视频流210、230、240、250匹配包括确定至少一个接收到的视频流210、230、 240,250是否包括以下的至少一个来自注册客户110、130、140、150中每一个的订阅请求 305,340的被请求的源客户110、130、140、150、所请求的分辨率、以及所请求的帧率。
5.如权利要求3所述的方法,其特征在于,还包括响应于确定从多个客户110、130、140、150接收的至少一个视频流210、230、240、250 不能满足来自至少一个注册客户110、130、140、150的至少一个视频订阅请求305、340,确定是否可以修改至少一个接收到的视频流210、230、M0、250以与至少一个视频订阅请求 305,340 匹配;响应于确定可以修改至少一个接收到的视频流210、230、M0、250以与至少一个视频订阅请求305、340匹配,修改接收到的视频流210、230、M0、250 ;以及将已修改的视频流210、230、240、250发送460至请求的至少一个注册客户110、130、 140,150ο
6.如权利要求3所述的方法,其特征在于,还包括响应于确定从多个客户110、130、140、150接收的至少一个视频流210、230、对0、250不能满足来自至少一个注册客户110、130、140、150的至少一个视频订阅请求305、340,确定与订阅请求305、340相关的视频流210、230、Μ0、250的源客户110、130、140、150是否能够编码匹配的视频流210、230、240、250 ;响应于确定与订阅请求305、340相关的视频流210、230、240、250的源客户110、130、 140、150能够编码匹配的视频流210、230、对0、250,发送指令到视频流210、230、Μ0、250的源客户110、130、140、150以编码匹配的视频流210、230、Μ0、250 ;以及将匹配的视频流210、230、Μ0、250发送460至请求的至少一个注册客户110、130、140、150。
7.如权利要求3所述的方法,其特征在于,还包括响应于确定从多个客户110、130、140、150接收的至少一个视频流210、230、对0、250不能满足来自至少一个注册客户110、130、140、150的至少一个视频订阅请求305、340,计算视频流210、230、Μ0、250中哪一个与至少一个视频订阅请求305、340最接近地匹配;以及将与至少一个视频订阅请求305、340最接近地匹配的视频流210、230、240、250发送 460至请求的至少一个注册客户110、130、140、150。
8.如权利要求7所述的方法,其特征在于,所述计算视频流210、230、Μ0、250中哪一个与至少一个视频订阅请求305、340最接近地匹配,包括确定至少一个视频流210、230、Μ0、250是否与和订阅请求305、340相关的视频流210、 230,240,250 的源客户 110、130、140、150 匹配;响应于确定至少一个视频流210、230、240、250与和订阅请求305、340相关的视频流 210、230、Μ0、250的源客户110、130、140、150匹配,确定与和订阅请求305、340相关的视频流 210、230、240、250 的源客户 110、130、140、150 匹配的至少一个视频流 210、230、240、250 是否与和订阅请求305、340相关的分辨率匹配;响应于确定至少一个视频流210、230、240、250与视频流210、230、Μ0、250的源客户 110、130、140、150匹配以及与和订阅请求305、340相关的分辨率匹配,确定与视频流210、 230,240,250的源客户110、130、140、150以及和订阅请求305、340相关的分辨率匹配的至少一个视频流210、230、240、250是否与和订阅请求305、340相关的帧率匹配;以及响应于确定至少一个视频流210、230、240、250与视频流210、230、Μ0、250的源客户 110、130、140、150以和订阅请求305、340相关的及分辨率匹配、但是与和订阅请求305、340 相关的帧率不匹配,将至少一个视频流210、230、240、250发送460至请求的客户110、130、 140,150ο
9.如权利要求8所述的方法,其特征在于,还包括响应于确定至少一个视频流210、230、240、250与和订阅请求305、340相关的视频流 210、230、240、250 的源客户 110、130、140、150 不匹配从多个客户110、130、140、150中选择和与订阅请求305、340相关的视频流210、230、 240,250的源客户110、130、140、150不同的第二视频流210、230、240、250的源客户110、.130、140、150 ;以及将从选定的第二视频流210、230、M0、250的源客户110、130、140、150接收的至少一个视频流 210、230、240、250 发送 460 至请求的客户 110、130、140、150。
10.一种存储指令集的计算机可读介质,所述指令集在被执行时执行用于提供视频流 210,230,240,250的订阅的方法,由指令集执行的所述方法包括注册多个视频会议客户110、130、140、150 ;接收来自多个视频会议客户110、130、140、150中每一个的至少一个源视频流210、 230,240,250 ;接收来自多个视频会议客户110、130、140、150中至少一个的至少一个视频流210、 230,240,250 的订阅请求 305,340 ;确定从多个视频会议客户110、130、140、150中每一个接收的源视频流210、230、对0、 250的至少一个第一视频流210、230、240、250是否与至少一个视频流210、.230、240、250的订阅请求305、340匹配;以及响应于确定从多个视频会议客户110、130、140、150中每一个接收的源视频流210、 230,240,250的至少一个第一视频流210、230、240、250与至少一个视频流210、.230、对0、 250的订阅请求305、340匹配,将匹配的源视频流210、230、M0、250的至少一个第一视频流 210、230、240、250发送460至请求的多个视频会议客户.110、130、140、150中的至少一个。
11.如权利要求10所述的计算机可读介质,其特征在于,还包括接收来自多个视频会议客户110、130、140、150中至少一个的至少一个第二视频流 210、230、240、250 的订阅请求 305,340 ;确定从多个视频会议客户110、130、140、150中每一个接收的源视频流210、230、对0、 250的至少一个第二视频流210、230、240、250是否与至少一个第二视频流.210、.230、对0、 250的订阅请求305、340匹配;以及响应于确定从多个视频会议客户110、130、140、150中每一个接收的源视频流210、 230,240,250的至少一个第二视频流210、230、240、250与至少一个第二视频流210、.230、 240、250的订阅请求305、340匹配,将匹配的源视频流210、230、M0、250的至少一个第二视频流210、230、240、250发送460至请求的多个视频会议客户.110、130、140、150中的至少一个。
12.如权利要求11所述的计算机可读介质,其特征在于,将匹配的源视频流210、230、 240,250的至少一个第二视频流210、230、240、250发送460至请求的多个视频会议客户 110、130、140、150中的至少一个包括创建匹配的源视频流210、230、M0、250的至少一个第一视频流210、230、240、250与匹配的源视频流210、230、M0、250的至少一个第二视频流210、230、M0、250的合成视频流 210、230、240、250 ;以及将合成的视频流210、230、MO、250发送460至请求的多个视频会议客户110、130、140、 150中的至少一个。
13.如权利要求10所述的计算机可读介质,其特征在于,还包括接收来自至少一个第一视频会议客户110、130、140、150的至少一个第一视频源流 210,230,240,250和至少一个第二视频源流210、230、对0、250,所述至少一个第二视频源流210、230、240、250包括至少一个第一视频源流210、230、M0、250的较低分辨率的版本 310、320、350。接收来自至少一个第二视频会议客户110、130、140、150的至少一个第一视频源流 210,230,240,250和至少一个第二视频源流210、230、对0、250,所述至少一个第二视频源流210、230、240、250包括至少一个第一视频源流210、230、M0、250的较低分辨率的版本 310、320、350。接收来自至少一个第三视频会议客户110、130、140、150的对来自至少一个第一视频会议客户110、130、140、150和至少一个第二视频会议客户110、130、140、150的源视频流 210、230、240、250 的订阅请求 305,340 ;创建来自至少一个第一视频会议客户110、130、140、150的至少一个第二视频源流 210,230,240,250与来自至少一个第二视频会议客户110、130、140、150的至少一个第二视频源流210、230、240、250的合成视频流210、230、240、250 ;以及将合成视频流210、230、M0、250发送460至至少一个第三视频会议客户110、130、140、150。
14.如权利要求10所述的计算机可读介质,其特征在于,还包括接收来自至少一个第一视频会议客户110、130、140、150的至少一个第一视频源流 210、230、240、250 ;接收来自至少一个第二视频会议客户110、130、140、150的至少一个第二视频源流 210、230、240、250 ;接收来自至少一个第三视频会议客户110、130、140、150的对来自至少一个第一视频会议客户110、130、140、150和至少一个第二视频会议客户110、130、140、150的源视频流 210、230、240、250 的订阅请求 305,340 ;创建至少一个第一视频源流210、230、240、250与至少一个第二视频源流210、230、 240,250的合成视频流210、230、M0、250,所述创建合成视频流210、230、240、250包括 修改至少一个第一视频源流210、230、240、250的帧率, 修改至少一个第二视频源流210、230、240、250的帧率,以及将已修改的第一视频源流210、230、240、250和已修改的第二视频源流210、230、对0、 250合并成单个视频流210、230、M0、250 ;以及将合成视频流210、230、MO、250发送460至至少一个第三视频会议客户110、130、140、150。
15.一种用于在视频会议中提供订阅的系统,所述系统包括 存储器存储;以及被耦合至存储器存储的处理单元,所述处理单元被操作为接收430来自多个视频会议客户110、130、140、150的多个视频流210、230、MO、250,其中每个客户110、130、140、150发送多个视频流210、230、240、250中的至少一个;接收440来自多个视频会议客户110、130、140、150中至少一个的至少一个订阅请求 305、340,其中订阅请求305、340包括对多个视频流210、230、240、250中的至少一个、所请求的分辨率以及所请求的帧率的请求305、340 ;确定450是否正在以所请求的分辨率和所请求的帧率从所请求的多个视频流210、 230、M0、250中的至少一个的源客户110、130、140、150接收所请求的多个视频流210、230、·240,250中的至少一个;响应于确定450没有以所请求的分辨率和所请求的帧率从所请求的多个视频流210、 230,240,250中的至少一个的源客户110、130、140、150接收所请求的多个视频流210、230、 240、250中的至少一个,确定5 所请求的多个视频流210、230、M0、250中的至少一个的源客户110、130、140、150是否能够以所请求的分辨率和所请求的帧率发送所请求的多个视频流210、230、240、250中的至少一个;响应于确定525所请求的多个视频流210、230、M0、250中的至少一个的源客户110、 130,140,150能够以所请求的分辨率和所请求的帧率发送所请求的多个视频流210、230、 240、250中的至少一个,发送530指令到所请求的多个视频流210、230、M0、250中的至少一个的源客户110、130、140、150,来以所请求的分辨率和所请求的帧率编码所请求的多个视频流210、230、240、250中的至少一个并将其发送460至系统;以及以所请求的分辨率和所请求的帧率将所请求的多个视频流210、230、M0、250中的至少一个发送460至发送订阅请求305、340的多个视频会议客户110、130、140、150中的至少一个。
全文摘要
可以使用多个比特率流来提供视频会议中的订阅。视频会议服务器可以接收来自视频会议中每个客户的视频流,并且可以接收来自每个客户的订阅请求。订阅请求可以包括以给定的分辨率和/或帧率来观看来自特定的其它客户的视频流的请求。视频会议服务器可以将接收到的视频流与订阅请求相匹配,以便向订阅客户发送其所需的视频流。服务器还能够请求来自参与者的不同版本的视频流(例如不同的分辨率)和/或修改视频流,以便更好地符合订阅请求。
文档编号H04L12/56GK102246458SQ200980151608
公开日2011年11月16日 申请日期2009年11月9日 优先权日2008年12月15日
发明者M·韩, M-C·李, T·摩尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1