一种在视频直播和录像之间切换的方法及系统与流程

文档序号:16632887发布日期:2019-01-16 06:44阅读:1388来源:国知局
一种在视频直播和录像之间切换的方法及系统与流程

本发明涉及涉及互联网视频技术领域,尤其涉及一种视频直播和观看录像之间切换的方法和系统。



背景技术:

目前广泛使用的视频直播技术在保证用户体验的同时,消耗大量的带宽和服务器,以一个1000人同时观看的视频为例,假设视频的码率是1mbps,则所需的总带宽为1000mbps,如果一台服务器能负担100个用户并提供100mbps的带宽的话,也至少需要10个服务器,这样的带宽和配置还只是支持一个视频,如果同时播放100个视频的话,对视频网站来说,每个月的网费就是一笔相当大的开销。

针对实时音视频互动的视频直播对网络的要求更高,一个延迟大于500毫秒的网络连接对于实时音视频互动的影响非常明显,对话双方能明显感觉的对方的音视频的滞后和延迟,用户的体验效果大打折扣。业界对这种应用的技术指标是介于100毫秒到300毫秒之间,如果延迟大于这个上限,就没有应用的价值了。

此外,这种实时音视频互动的视频直播有一个特点:通常用户可以分为活跃用户和非活跃的用户两类。前者的人数占的比例很小而且一般总是固定的某些人,不发言的用户占的比例很大。让大量的不活跃的用户占用直播间的带宽显然是一个非常沉重的负担,但如果把不活跃的用户从直播间踢走,那么这些用户就永远没有机会参与直播,也看不到视频直播了,这种做法显然也不是一个最优的解决方案。



技术实现要素:

有鉴于此,本发明要解决的技术问题是:如何让需要进行音视频互动的用户可以尽快进入直播间,同时保证那些不打算发言的用户也能观看视频直播,并且尽可能少占用直播间的带宽。

为了解决上述技术问题,本发明提出了一种在视频直播和录像之间切换的方法及系统,通过使用p2p网络分发正在视频直播的录像的方式来缓解有限带宽的视频直播的压力,让不活跃的用户可以看到视频直播的录像,同时也保留这些用户进入直播间的能力。

具体地说,这种方法包括:

1.所述的视频直播服务器根据自己的状态和所述的排队服务器的状态决定是否允许要求加入直播间的新用户进入直播间:

如果允许,则该用户就进入直播间,和直播间内的其他用户进行实时音视频互动;

如果不允许,就根据该用户是否有用于排队的流水号决定是否给该用户发送流水号和进入所述p2p网络的令牌。

此外,所述的视频直播服务器根据用户的活跃程度决定是否把直播间内的用户踢走。

2.所述的客户端凭所述流水号定期向所述视频直播服务器查询自己的状态,如果被允许进入直播间,就根据客户端的设置决定是否退出观看录像的p2p网络,如果不退出所述的p2p网络,则所述客户端依然保持和其他观看录像者或和p2p资源服务器交换录像片断,只是不播放录像片断;

3.所述的客户端凭所述p2p网络的令牌连接所述的控制服务器,索取p2p网络的其他对等设备标识;

4.所述的控制服务器为所述的客户端提供m个其他观看录像者和n个p2p资源服务器。所述的客户端通过向这些节点发送测试帧,并监测往返时延选择最优秀的网络路径;

5.所述的客户端从p2p资源服务器获取分片资源序列号标识与分片重组信息,并根据这些标识与信息向其他观看录像者索取录像片断并播放;

6.所述的客户端和其他的录像观看者交换录像片断,如果其他的录像观看者没有所需的录像片断,则向所述p2p资源服务器索取;

7.所述的录像服务器负责对直播间的音视频进行后处理,然后录像并切片,同时生成分片资源序列号标识和重组信息,并一起发送给p2p资源服务器;

8.所述的客户端在观看录像时可以随时申请加入直播间,所述的视频直播服务器根据自己的状态和所述的排队服务器的状态决定是否允许所述的客户端进入直播间,用户除了需要点击有关的按钮申请加入直播间和输入账号与密码之外,无需其他操作,客户端就可以在视频直播和录像这两种状态之间自动切换,或者同时处于这两种状态;

9.所述的客户端支持和其他用户的实时音视频互动;

10.加入p2p网络的所有节点均定时向所述的控制服务器报告自己的状态。

为了解决上述技术问题,根据本发明的另一实施例,提供一种视频直播服务器,部署在云端的独立服务器中,包括:

前端网页服务模块:提供登陆和验证的功能,其中的验证功能通过从排队服务器获取相关的排队流水号,发放或者验证用户的排队流水号;

码流交换模块:这个是核心模块,负责在不同的用户之间传递感兴趣的码流;

用户踢除模块:通过计算和评估用户的活跃程度,自动踢除不活跃的用户,同时也支持播主手动踢除其他用户;

统计模块:记录各种连接异常,带宽消耗和日志功能,同时提供单独的网络监控接口以便在线排查故障;

令牌模块:对没有加入直播间或者刚离开直播间的用户发送令牌,以便用户凭此令牌加入观看录像的p2p网络。

对于上述视频直播服务器,在一种可能的实现方式中,所述前端网页服务模块包括:

除了验证用户提供的排队流水号之外,还根据统计模块记录的直播间里用户人数,带宽消耗,码流和码率,cpu负载,内存消耗等情况决定是否允许新用户加入直播间。

对于上述视频直播服务器,在一种可能的实现方式中,所述用户踢除模块模块使用以下算法评估用户的活跃程度:

活跃度=用户在直播间的时长*k+用户的发言的时间的累计时长*l+用户的角色*j

其中,k,l,j为固定的系数,用户的角色可以分为:0表示播主,1表示游客。

为了解决上述技术问题,根据本发明的另一实施例,提供了一种录像服务器,包括:

码流接收模块:获取视频直播的各路音视频;

转码模块:分别对各类音视频进行转码,包括:改变编码的方式,画面大小,帧率,码率;

画中画模块:把画面叠加在一起,同时合成所有的音频;

osd模块:对画面添加文字,台标和水印;

滤镜模块:对画面的人物进行美颜,锐度增强,对比度增强等视频后处理;

计算机视觉模块:对视频里面的人物添加道具,例如帽子,胡子,眼镜,奖杯和小红花等;

变声模块:改变音频的音色、音高和音调,并添加声音特效;

切片模块:按固定的时长或者固定的文件长度输出经过上述处理后的音视频码流,结合分片资源序列号标识和分片重组信息,切片后的录像片断可以从任何一个片断开始播放;

发送模块:把录像切片,分片资源序列号标识和分片重组信息,一并发送给p2p资源服务器;

需要说明的是,上述的大部分模块:转码模块,画中画模块,osd模块,滤镜模块,计算机视觉模块和变声模块并不一定同时使用,需要根据具体的应用场景而定。

为了解决上述技术问题,根据本发明的另一实施例,提供了一种控制服务器,包括:

客户端接口模块:负责验证最新加入的用户的令牌,接收观看录像的所有用户的请求或者状态更新信息,发送命令或者回复给用户和p2p资源提供者;

状态表:记录所有在线的用户和p2p资源提供者状态,如资源拥有的情况,所在的城市,nat网络类型,带宽估计,上传和下载的速度;

状态机模块:分析观看录像者和p2p资源提供者的请求,根据既定的规则进行回复;

接收所有的p2p节点(观看录像者和资源服务器)定期状态报告,据此更新状态表,如果没有收到某个节点的定期状态报告,则把此节点标注为断线;

接收新加入的用户的连接请求,根据用户的特征:包括用户的地理位置,所使用的网络的供应商/运营商,nat的拓扑状态,以及用户的录像片断拥有程度和用户的带宽使用情况从状态表中匹配m个观看录像者和n个p2p资源服务器。

为了解决上述技术问题,根据本发明的另一实施例,提供了一种客户端,包括:

下载模块,使用http/https协议从传统cdn或者文件服务器下载文件;

通讯模块,用于和控制服务器通讯,并定期向控制服务器报告自己的状态:录像分片拥有的情况,估计的带宽,上传/下载的速度,自己连接的其他p2p节点的对等设备标识;

p2p模块,使用p2p协议进行录像片断的上传和下载,记录了目前的下载进度,分片资源序列号标识和重组信息;

音频和视频模块,用于和其他的用户进行实时的音视频互动,此模块可以和上述p2p模块同时运行;

播放模块,执行网页的脚本,播放运行网页元素或者录像片断;

上述模块的运行均由客户端自动执行,不需要人为干预。

对于上述客户端,在一种可能的实现方式中,所述p2p模块还包括:

p2p模块根据收到的对等设备标识列表,使用p2p通信协议连接对应的录像观看者和p2p资源服务器,并向这些录像观看者和p2p资源服务器索取录像;

所有的观看录像的用户互相交换自己拥有的录像片断,如果任何一个观看录像的用户没法从其他用户处获取所需的录像片断,则会向p2p资源服务器索取该录像片断。

对于上述客户端,在一种可能的实现方式中,还包括:

所有的观看录像的用户的客户端根据p2p资源服务器所提供的分片资源序列号标识和分片重组信息,重组下载到的录像片断,并自动播放;

此外,还定期记录播放进度,所有的分片资源序列号标识和分片重组信息,p2p网络标识和控制服务器的地址,使用的令牌等信息,下次重新进入这个p2p网络时,自动跳过已经播放了的录像片断。

为了解决上述技术问题,根据本发明的另一实施例,提供一种在视频直播和录像之间切换的系统,包括:

视频直播服务器支持在直播间内的用户的实时音视频互动,此外,还通过查询排队服务器的状态决定是否允许要求进入直播间的用户进入直播间,踢除直播间内的用户,发送进入观看录像的p2p网络的令牌和排队等候进入直播间的流水号;此外,所述的视频直播服务器还负责生成有关的网页,并发送到所述客户端;

排队服务器负责生成排队等候进入直播间的流水号,并提供查询流水号的功能;

录像服务器负责对直播间的音视频进行后处理,然后录像并切片,同时生成分片资源序列号标识和重组信息,并一起发送给p2p资源服务器;

控制服务器记录了所有的正在观看录像的用户和所述的p2p资源服务器的状态,通过对新加入的用户进行身份验证后,为所述的新用户分配m个已有的观看录像者和n个p2p资源服务器,以便新用户连接这些观看录像者和资源服务器,下载并观看录像;

p2p资源服务器为观看录像者提供分片资源序列号标识和重组信息和所有的分片录像片断;

客户端支持用户间的实时音视频互动,此外还使用p2p协议与所述p2p网络里面的其他用户交换录像片断并播放,这两种状态可以同时运行或者单独运行。

有益效果

在本发明实施例中,配备了自动踢除用户功能的直播服务器能最大限度地减少带宽消耗,配套的录像服务器和p2p分发网络则保证了视频直播以极低的代价在网络上传播,排队服务器和专门设计的客户端可以让用户在观看录像的同时,有机会进入直播间,参与音视频互动。

根据下面参考附图对示例性实施例的详细说明,本发明的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。

图1示出了一种在视频直播和录像之间切换的系统的结构框图;

图2示出了整个流程的示意图;

图3示出了客户端在退出直播间后的工作流程。

具体实施方式

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本发明的主旨。

实施例1

图1示出根据本发明一实施例的结构框图。如图1所示,该系统包括:

视频直播服务器支持在直播间内的用户的实时音视频互动,此外,还通过查询排队服务器的状态决定是否允许要求进入直播间的用户进入直播间,踢除直播间内的用户,发送进入观看录像的p2p网络的令牌和排队等候进入直播间的流水号;此外,所述的视频直播服务器还负责生成有关的网页,并发送到所述客户端;

排队服务器负责生成排队等候进入直播间的流水号,并提供查询流水号的功能;

录像服务器负责对直播间的音视频进行后处理,然后录像并切片,同时生成分片资源序列号标识和重组信息,并一起发送给p2p资源服务器;

控制服务器记录了所有的正在观看录像的用户和所述的p2p资源服务器的状态,通过对新加入的用户进行身份验证后,为所述的新用户分配m个已有的观看录像者和n个p2p资源服务器,以便新用户连接这些观看录像者和资源服务器,下载并观看录像;

p2p资源服务器为观看录像者提供分片资源序列号标识和重组信息和所有的分片录像片断;

客户端支持用户间的实时音视频互动,此外还使用p2p协议与所述p2p网络里面的其他用户交换录像片断并播放,这两种状态可以同时运行或者单独运行。图中把使用相同的客户端的用户分成三类:客户端1表示第一类用户,仅加入了直播间;客户端2表示第二类用户,既加入了直播间,又加入了观看录像的p2p网络;客户端3表示第三类用户,仅加入了观看录像的p2p网络。

如图所示,客户端1和客户端2处于直播间内,客户端2和客户端3处于观看录像的p2p网络中。此外,客户端1和客户端3的角色可以互相转变;或者客户端3获取进入直播间后,同时呆在p2p网络,变成和客户端2一样。这种角色的转变并不需要用户的干预,通过图2所示的流程图可以清楚这个变化:

步骤201,用户使用本发明的客户端访问视频直播服务器,这里假设用户是初次访问,没有排队流水号,也没有用于进入观看录像的p2p网络的令牌。

步骤202,视频直播服务首先根据统计模块记录的直播间里用户人数,带宽消耗,码流和码率,cpu负载,内存消耗等情况决定是否允许新用户加入直播间,如果没有办法容纳更多的用户并且用户要求排队等候,就向排队服务器申请一个新的排队流水号,发放给该用户;如果可以容纳新用户,就检查用户的排队流水号,如果用户没有排队流水号并且要求排队等候,就向排队服务器申请一个新的排队流水号,发放给该用户;如果用户提供了排队流水号,就向排队服务器查询该排队流水号,如果该排队流水号已经失效,就向排队服务器申请一个新的排队流水号,发放给该用户;如果查询的结果是还没有轮到该用户进入直播间,就拒绝该用户进入;最后,如果用户申请观看录像,就发放一个进入观看录像的p2p网络的令牌。

步骤203,假设用户被拒进入直播间或者离开直播间,并且得到了一个进入观看录像的p2p网络的令牌,则加入p2p网络观看录像,即成为图1所示的客户端3。这个过程在实施例2有详细解释,此处从略。

步骤204,客户端3有两种可能:没有排队流水号,则一直保持目前的状态;没有排队流水号但通过点击客户端的按钮申请到了一个流水号或者此前就已经有了流水号,则根据获得的流水号定期向视频直播服务器查询自己的准入状态,如果被拒,就继续查询;如果获准进入直播间,就进入步骤205。

步骤205,假设用户获准进入直播间,那么用户就可以和直播间内的其他用户进行音视频互动。这时候,如果用户此前已经加入了观看录像的p2p网络,那么就会根据客户端事先的设置:退出p2p网络成为图1所示的客户端1或者不退出p2p网络成为图1所示的客户端2;反之,如果用户此前没有加入p2p网络,则用户加入直播间后,就成为图1所示的客户端1。

步骤206,一旦客户端1或者客户端2主动离开直播间或者被踢出直播间,就会获得一个进入观看录像的p2p网络的令牌,进入步骤203。

本发明实施例体现了这种视频直播和录像之间切换的方法及系统的两个关键特征:

1。存在着两个不同的网络:以所述的视频直播服务器为核心的音视频互动网络---直播间,以所述的控制服务器为核心的p2p网络---用于分享直播间的录像片断。

2。所述的客户端可以随时在这两个网络之间切换,也可以同时存在这两个网络中。

这两个重要的特性使得原本不打算发言的用户可以观看录像并排队等待进入直播间,活跃的用户则可以一直在直播间内进行音视频的互动,并且视频直播服务器也有踢出用户以减少带宽/负载的能力,从而在带宽消耗和用户体验两者之间取得良好的平衡。

实施例2

图3示出了客户端加入观看录像的p2p网络的工作流程。

步骤301,用户主动退出直播间或者被踢出直播间或者要求进入直播间但需要排队等候时,获得一个进入观看录像的p2p网络的令牌。

步骤302,用户根据获得的令牌连接控制服务器,加入观看录像的p2p网络。一旦控制服务器验证了用户提供的令牌,就会给用户分配m个其他的观看录像者和n个p2p资源服务器;此用户根据收到的对等设备标识,使用p2p通信协议连接这些观看录像者和p2p资源服务器,下载并观看录像。

步骤303,假如用户没有进入直播间的排队流水号,用户可以点击客户端的按钮要求进入直播间。如果用户不点击这个按钮,就永远保持这个状态,直至用户主动退出p2p网络。

步骤304,客户端向视频直播服务器发出相应的请求,并因此获得排队流水号。

步骤305,客户端定期向视频直播服务器查询自己的准入状态,如果被拒,就继续查询;如果获准进入直播间,就进入上面的实施例1的步骤205。

本实施例讲述处于观看录像的p2p网络的用户进入直播间的具体步骤,利用客户端的p2p模块和音频视频模块能同时工作的特征,客户端可以在直播间和p2p网络之间无缝地切换,无需用户手工操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1