一种视频流传输方法、设备和系统与流程

文档序号:12600581阅读:752来源:国知局
一种视频流传输方法、设备和系统与流程

本申请涉及计算机技术领域,特别涉及一种视频流传输方法、设备和系统。



背景技术:

随着Internet(互联网络,也称因特网)的发展,多媒体信息通过网络的传输技术日新月异,而其在网络应用中所扮演的角色也越来越重要,流式技术以其边下载边播放的特性,深受教育、娱乐等行业的喜爱。

现有技术中传统的播放视频流的方式,是把视频流传输到客户端进行解码,并进行播放的,如图1所示,为现有技术中的视频流传输场景的示意图。

而基于这样的视频流传输场景,相应的客户端接收到视频流后,现有的解码和播放方式大致包括如下几种:

方案一、在客户端程序中接收、解码、并播放视频流。

按照如此方案进行处理的客户端包括PC(Personal Computer,个人电脑)和移动端(包括手机、平板电脑等便携式可移动终端设备)。

方案二、使用浏览器播放。

这样的方案依赖Adobe Flash Palyer或其他第三方插件。

方案三、在浏览器端使用JavaScript版的FFmpeg库等处理程序对视频解码。

申请人在实现本申请的过程中发现,上述传统的视频流播放方案至少存在如下的问题:

对于方案一,相应的客户端程序需要进行多平台开发,例如,对于PC端,需要匹配的平台类型包括mac,windows,linux等,而对于移动端,其所使用的APP同样需要多平台开发,相应的平台类型包括IOS,Android,WinPhone等,这样多平台开发的成本非常高,而且需要安装相应的程序才能使用。

对于方案二,则存在对Adobe Flash Palyer等第三方插件依赖性强的问题,不仅如此,IOS系统已舍弃Adobe Flash Palyer(因为其安全性和可靠性不高,越来越多厂商将其抛弃),由此,不同客户端存在第三方插件适配缺失的问题,并且,对于移动端来讲,其硬件配置普遍不高,按照此方案播放视频时,移动端功耗剧增,发热情况严重。

对于方案三,跟前两种方案相比做到了支持所有设备,但由于浏览器效率问题,不支持高清视频,不支持同时观看多个视频。

同时,以上三种方式有一个共同缺点:解码视频(尤其是高清视频)非常消耗CPU和内存资源,客户端解码会造成压力较大。当有需要同时观看多路视频时(例如实时监控系统,家庭摄像头,需要同时监控多个),现有方式中移动端不支持,且解码过程负载很大。因此,需要一种支持全平台(One system,All user),客户端轻量级的实时高清视频播放策略。



技术实现要素:

本申请实施例提供一种视频流传输方法、设备和系统,以实现在不需要额外插件的情况下,通过不同的平台和设备播放高清实时视频流的目的。

为了达到上述技术目的,本申请提供了一种视频流传输方法,应用于包含视频源、云端服务器和客户端的系统中,所述方法具体包括:

所述云端服务器接收所述视频源所发送的视频流;

所述云端服务器根据与所述客户端的播放质量需求相匹配的转换规则,将所述视频流转换为图片集合;

所述云端服务器将所述图片集合发送给所述客户端,以使所述客户端通过浏览器进行滚动播放。

另外,本申请实施例还提供了一种云端服务器,应用于包含视频源、云端服务器和客户端的系统中,所述云端服务器具体包括:

接收模块,用于接收所述视频源所发送的视频流;

转换模块,用于根据与所述客户端的播放质量需求相匹配的转换规则,将所述接收模块所接收到的视频流转换为图片集合;

发送模块,用于将所述转换模块所转换的图片集合发送给所述客户端,以使所述客户端通过浏览器进行滚动播放。

另外,本申请实施例还提供了一种系统,包含视频源、云端服务器和客户端:

所述云端服务器,用于维护自身与所述视频源,以及自身与所述客户端之间的连接和信息合法性的验证,在接收到所述视频源所发送的视频流时,根据与所述客户端的播放质量需求相匹配的转换规则,将所述视频流转换为图片集合,并将所述图片集合发送给所述客户端;

所述视频源,用于根据所述云端服务器的指示,将视频流发送给所述云端服务器;

所述客户端,用于通过所述云端服务器向所述视频源请求相应的视频流,接收所述云端服务器顺序发送的由所述视频流所转换成的图片集合,并通过浏览器将所述图片集合中的图片进行滚动播放。

与现有技术相比,本申请实施例所提出的技术方案的有益技术效果包括:

本申请实施例公开了一种视频流传输方法、设备和系统,在视频源和客户端之间加入云端服务器,通过云端服务器维护视频源和客户端之间的通信连接,云端服务器根据与客户端的播放质量需求相匹配的转换规则,将视频源发送的视频流转换为图片集合,并将图片集合发送给客户端,以使客户端通过浏览器进行滚动播放,通过应用本申请实施例所提出的技术方案,可以将需要更高网络传输质量和复杂编解码插件,才能在匹配类型的设备上进行顺畅播放的视频流文件,转换为传输方便,无需插件即可在各种设备的浏览器中进行流畅滚动播放的图片集合,从而,提高了视频流的传输效率,降低了播放视频流的 软硬件需求,并且,通过通用的浏览器浏览,还可以有效的避免平台差异所导致的视频流适配设备类型的问题,简化了视频流传输和播放的处理过程,降低了视频流传输和播放对于客户端的硬件要求和资源占用率。

附图说明

为了更清楚地说明本申请的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中的视频流传输场景的示意图;

图2为本申请实施例所提出的一种视频流传输方法的流程示意图;

图3为本申请实施例所提出的一种视频流传输系统的结构示意图;

图4为本申请实施例所提出的一种具体应用场景下的视频流传输方法的流程示意图;

图5为本申请实施例所提出的一种云端服务器的结构示意图;

图6为本申请实施例所提出的一种视频流传输系统的结构示意图。

具体实施方式

正如本申请背景技术所陈述的,在现有技术中,传统的视频流传输和播放方案对于网络传输质量要求高,且存在需要适配不同平台,编解码过程需要插件,以及具体处理过程中占用系统资源量巨大等问题,对客户端以及中间网络提出了很高的软硬件要求,提高了操作成本,而为了适配不同平台,相关的软硬件研发也会大量增加研发过程的成本投入,不仅如此,在进行视频播放的客户端,由于传输、编解码和播放过程需求占用的资源量巨大,造成客户端自身高负荷运转,一方面会降低用户的使用体验,另一方面,也严重制约了客户端自身的业务执行效率,多线程视频流观看的实现过程则更加困难。

需要进一步说明的是,虽然现有技术中存在html5等技术方案可以解决在线传输视频的编解码资源占用和传输数据量庞大等问题,但是,这些技术方案都是针对预存储视频资源的在线传输,需要将完整的视频数据存储在服务器中,再从终端进行调用,因为html5等技术方案都要求完整的媒体路径信息,但这样的技术方案无法解决实时视频的在线浏览问题,因为视频资源是实时获取的,因此,无法预先获知其存储路径等信息,而且,这样的实时视频对时效性要求更高,本身就具有实时浏览的需求,因此,也无法在生成完整视频文件后,在进行在线传输,更甚者,对实时视频合成完整视频文件的渲染等处理过程也会导致大量资源占用和消耗,相比之下,如何对实时视频的在线传输和浏览问题进行解决,成为了现有技术方案所需要解决的一个难题。

而本申请的发明人发现,对于不同平台的终端设备,其在浏览器这一基础软件应用的配置上,具有高度的通用性,相比于多种多样的视频播放软件,浏览器的基本核心功能则是通用的,并且,图片播放,对于浏览器来讲,更是必备的基础功能,而图片传输相对于视频流传输则具有体积小,速度快,处理资源占用少的优势。

基于以上的分析,为了解决现有技术中所存在的技术问题,本申请实施例公开了一种基于图片传输和播放的视频流传输方法,这样的方法可以广泛的应用于各种终端设备中,打破了平台类型的限制,只要是具备基本浏览器功能的终端都可以使用本技术方案,终端类型的变化并不会影响本申请的保护范围。

如图2所示,为本申请实施例所提出的一种视频流传输方法的流程示意图,该方法应用于包含视频源、云端服务器和客户端的系统中,该方法具体包括:

步骤S201、所述云端服务器接收所述视频源所发送的视频流。

在本步骤之前,还包括以下两部分的处理:

1、连接维护。

首先,所述云端服务器接收所述视频源所发送的连接请求,在验证通过所述连接请求后,维护自身与所述视频源之间的连接信息。

通过以上处理,视频源与云端服务器之间的连接建立完成,后续的维护工作由云端服务器处理,无需客户端与视频源之间进行连接维护,避免了额外的系统资源的占用。

2、安全性验证。

在连接维护部分,提及了连接请求的验证过程,这是云端服务器所承担的视频源侧的安全性验证操作,而在客户端侧,云端服务器同样承担了安全性验证职责,当所述云端服务器接收到所述客户端发送的视频流播放请求时,所述云端服务器对所述客户端进行合法性验证,只有在验证通过时,所述云端服务器才会向所述视频源发送视频流观看指示,指示所述视频源返回所述客户端所请求的视频流。

通过以上两部分的安全性验证,保证了视频流观看权限以及视频流本身的安全性,提高了系统可靠性和客户端用户的安全保证。

步骤S202、所述云端服务器根据与所述客户端的播放质量需求相匹配的转换规则,将所述视频流转换为图片集合。

在执行本步骤之前,首先需要确定相应的转换规则,考虑到转换规则对后续应用效果的巨大影响,即视频流所转换图片的数量与客户端视频流播放质量成正比(单位时间的视频流所转换的图片越多,客户端视频流播放流畅性越好),而与网络传输效率成反比(单位时间的视频流所转换的图片越多,单位时间内网络需要传输给客户端的图片数量就越多,网络负担就越大),则可以根据具体的应用场景的差异,采用以下三种方式进行转换规则的确定。

方式一、直接预设转换规则。

经过充分的科技实践之后,可以确定:当画面达到一秒钟24帧时,人眼看到的是连续的画面,基于这样的事实,本申请实施例所提出的技术方案可以直接将转换规则确定为按照每秒24帧的频率将视频流的画面转换为图片,即将1秒钟的视频流画面按照时间顺序转换为24张图片这样就可以保证用户看到的客户端所连续播放的图片成为连续的画面,达到关联流畅视频流的效果。

当然,也可以将转换规则的具体帧数设置为其他数值,例如为了更好的视频流畅性,可以设置更高的帧数,或者,也可以为了更好的传输效率,设置更低的帧数,这样的变化并不会影响本申请的保护范围。

方式二、依据客户端需求确定转换规则。

首先,客户端本身上报播放质量需求,云端服务器根据客户端发送的播放质量需求信息,获取所述客户端的播放质量需求,并确定与所述客户端的播放质量需求相匹配的转换规则。

这样的方式可以充分满足用户的需求,按照用户本身所提的标准确定转换规则,保证向客户端发送的后续文件可以满足用户的需求。

方式三、根据网络质量确定转换规则。

首先,云端服务器监测自身与客户端之间的网络传输质量,从而确定当前网络系统的通信质量。

然后,云端服务器将当前网络传输质量所能达到的最高播放质量作为所述客户端的播放质量需求,并确定与所述客户端的播放质量需求相匹配的转换规则。

通过这样的处理,云端服务器根据网络质量确定后续处理的转换规则,从而,可以控制转换后的图片集合中所包含的图片数量,进而调整在单位时间内需要传输的图片量(数据量),以保证网络传输的顺畅进行,以及客户端播放的流畅性。

需要进一步说明的是,上述的三种方式可以单独应用,从而确定具体的转换规则,也可以相互结合,基于更具综合性的参考信息,确定最终的转换规则内容,例如:

示例一、根据方式一,确定了转换规则为每秒24帧,但是,进一步结合方式二,确定客户端需要看到更加高质量的视频流,因此,调整转换规则为每秒36帧。

示例二、根据方式二,按照客户端的视频流播放质量需求,确定了转换规 则为每秒36帧,但是,进一步结合方式三,当前网络质量无法保证每秒36张图片的顺畅传输,因此,调整转换规则为每秒24帧。

以上只是本申请实施例所给出的具体示例,在实际应用场景中,上述三种方式还可以进行其他方式的组合,这样的变化并不会影响本申请的保护范围。

步骤S203、所述云端服务器将所述图片集合发送给所述客户端,以使所述客户端通过浏览器进行滚动播放。

在具体的应用场景中,本步骤的处理具体包括:

所述云端服务器识别所述客户端的浏览器信息;

所述云端服务器选择与所述客户端的浏览器信息相匹配的传输方式,将所述图片集合中的图片顺序发送给所述客户端,以使所述客户端通过浏览器进行滚动播放。

浏览器是各类型终端设备的通用应用,基于浏览器的图片播放过程无需第三方插件,也不需要根据终端设备的类型差异进行配置调整,因此,本申请的技术方案可以有效的减少配置支持等问题,降低了研发和配置调试的成本。

需要进一步指出的是,由于浏览器本身可以支持多窗口打开,所以,可以通过调整多窗口的桌面分布,用不同的窗口播放不同的图片集合,从而,实现对多个视频流的同时浏览。

与现有技术相比,本申请实施例所提出的技术方案的有益技术效果包括:

本申请实施例公开了一种视频流传输方法、设备和系统,在视频源和客户端之间加入云端服务器,通过云端服务器维护视频源和客户端之间的通信连接,云端服务器根据与客户端的播放质量需求相匹配的转换规则,将视频源发送的视频流转换为图片集合,并将图片集合发送给客户端,以使客户端通过浏览器进行滚动播放,通过应用本申请实施例所提出的技术方案,可以将需要更高网络传输质量和复杂编解码插件,才能在匹配类型的设备上进行顺畅播放的视频流文件,转换为传输方便,无需插件即可在各种设备的浏览器中进行流畅滚动播放的图片集合,从而,提高了视频流的传输效率,降低了播放视频流的 软硬件需求,并且,通过通用的浏览器浏览,还可以有效的避免平台差异所导致的视频流适配设备类型的问题,简化了视频流传输和播放的处理过程,降低了视频流传输和播放对于客户端的硬件要求和资源占用率。

下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

如图3所示,为本申请实施例所提出的一种视频流传输系统的结构示意图。在该系统中,视频源所获取的视频流不是直接传输到客户端,而是先传输到云端服务器,在云端服务器中,需要对视频流进行解码,按照一定的频率将单位时间的视频流转换为一定帧数的图片集合,例如,将一秒钟的视频转换成24帧图片(当画面达到一秒钟24帧时人眼看到的是连续的画面),然后,云端服务器推送图片到客户端,客户端通过自身的浏览器对图片进行滚动播放,模拟视频,在此过程中,云端服务器负责解码视频和维护客户端和视频源的链接。

进一步的,基于上述的系统结构,本申请实施例所提出的技术方案的实现流程的示意图如图4所示,具体的操作流程如下:

步骤S401、视频源(例如摄像头、监控摄像机、视频采集端子等)接入网络,与云端服务器之间建立链接。

云端服务器负责维护自身与视频源之间的链接和权限验证,在本地缓存相应的链接列表。

步骤S402、用户通过客户端浏览器登陆网站,点击观看视频,向云端服务器发送相应的视频流请求。

步骤S403、云端服务器通过本地缓存的链接列表找到客户端所请求的视频流所对应的视频源,并把该视频流请求转发给相应的视频源。

当然,在实际的应用场景中,本步骤过程中,云端服务器还可以进一步的 验证客户端的接入权限,对于没有权限的视频流请求,可以进行过滤,保证视频的隐私和安全。

步骤S404、视频源收到视频流请求后,开始把视频流通过RTP协议向云端服务器传输。

需要说明的是,RTP协议是本实施例所给出的一种具体的协议示例,在实际应用中,凡是可以实现视频流传输的协议都可以应用在本申请所提出的技术方案中,这样的变化并不会影响本申请的保护范围。

步骤S405、云端服务端接收视频流,并进行解析,分析视频编码(例如,支持Motion JPEG格式和H264),按照相应的转换规则,把视频流解码成图片集合(例如,JPEG格式图片所组成的集合)。

步骤S406、云端服务器分析客户端浏览器的版本信息,选择合适的方法向客户端浏览器推送所转换的图片集合。

例如,若客户端的浏览器版本支持WebScoket(Chrome 14.0,IE9,Safari 5.1及以上版本),则使用WebScoket方式向浏览器推送。若客户端版本不支持WebScoket,则使用Comet(基于HTTP长连接的“服务器推”技术)方式向浏览器推送图片。

当然,除了上述示例中所提及的传输方式,其他能够实现图片数据传输的方式,同样可以应用在本申请实施例所提出的技术方案中,这样的变化并不会影响本申请的保护范围。

步骤S407、客户端接收到图片集合后,通过浏览器进行滚动播放。

例如,浏览器使用HTML5的<canvas>标签渲染图片,并使用JavaScript控制图片流畅滚动。此处的考虑主要是<canvas>标签对图片渲染做了很多优化,可以加速图片渲染。

当然,在具体的应用场景中,凡是可以达到图片滚动播放效果的方式都可以应用到本申请的技术方案中,这样的变化并不会影响本申请的保护范围。

需要进一步说明的是,从视频源发出的视频流是顺序到达云端服务器的, 相应的,云端服务器进行顺序解码,转成图片后立即推送到客户端,客户端侧没有解码过程,只是渲染一张张图片,因此,可以做到观看高码率、多视频的情况下,客户端依然保持在负载很低的水平。

综上所述,通过使用本申请实施例所提出的技术方案,客户端仅需要浏览器(且无需额外插件),就可以在线观看实时视频流,方便简单。

同时,该方案解决了客户端负载大的问题,尤其是在线视频监控系统需要同时观看多个高清视频的场景中,客户端减轻压力明显。

与现有技术相比,本申请实施例所提出的技术方案的有益技术效果包括:

本申请实施例公开了一种视频流传输方法、设备和系统,在视频源和客户端之间加入云端服务器,通过云端服务器维护视频源和客户端之间的通信连接,云端服务器根据与客户端的播放质量需求相匹配的转换规则,将视频源发送的视频流转换为图片集合,并将图片集合发送给客户端,以使客户端通过浏览器进行滚动播放,通过应用本申请实施例所提出的技术方案,可以将需要更高网络传输质量和复杂编解码插件,才能在匹配类型的设备上进行顺畅播放的视频流文件,转换为传输方便,无需插件即可在各种设备的浏览器中进行流畅滚动播放的图片集合,从而,提高了视频流的传输效率,降低了播放视频流的软硬件需求,并且,通过通用的浏览器浏览,还可以有效的避免平台差异所导致的视频流适配设备类型的问题,简化了视频流传输和播放的处理过程,降低了视频流传输和播放对于客户端的硬件要求和资源占用率。

为更清楚地说明本申请前述实施例提供的方案,基于与上述方法同样的发明构思,本申请实施例还提出了一种云端服务器,应用于包含视频源、云端服务器和客户端的系统中,其结构示意图如图5所示,具体包括:

接收模块51,用于接收所述视频源所发送的视频流;

转换模块52,用于根据与所述客户端的播放质量需求相匹配的转换规则,将所述接收模块51所接收到的视频流转换为图片集合;

发送模块53,用于将所述转换模块52所转换的图片集合发送给所述客户端,以使所述客户端通过浏览器进行滚动播放。

进一步的,上述的云端服务器,还包括维护模块54和验证模块55:

所述接收模块51,还用于接收所述视频源所发送的连接请求,和/或所述客户端发送的视频流请求;

所述验证模块54,用于验证所述接收模块51所接收到的所述视频源所发送的连接请求,以及所述客户端发送的视频流请求的合法性;

所述维护模块55,用于在所述验证模块54对所述连接请求验证通过后,维护所述云端服务器与所述视频源之间的连接信息;

所述发送模块53,还用于在所述验证模块54对所述视频流请求验证通过后,向所述视频源发送视频流观看指示,指示所述视频源返回所述客户端所请求的视频流。

进一步的,所述转换模块52,还用于:

获取预设的转换规则,确定为与所述客户端的播放质量需求相匹配的转换规则;

和/或,

根据所述客户端发送的播放质量需求信息,获取所述客户端的播放质量需求,并确定与所述客户端的播放质量需求相匹配的转换规则;

和/或,

监测所述云端服务器与所述客户端之间的网络传输质量,将当前网络传输质量所能达到的最高播放质量作为所述客户端的播放质量需求,并确定与所述客户端的播放质量需求相匹配的转换规则。

在具体的应用场景中,所述发送模块53,具体用于:

识别所述客户端的浏览器信息;

选择与所述客户端的浏览器信息相匹配的传输方式,将所述转换模块52所转换的图片集合中的图片顺序发送给所述客户端,以使所述客户端通过浏览器进行滚动播放。

另一方面,本申请实施例还提出了一种系统,其结构示意图如图6所示,包含视频源61、云端服务器62和客户端63,具体说明如下:

所述云端服务器62,用于维护自身与所述视频源61,以及自身与所述客户端63之间的连接和信息合法性的验证,在接收到所述视频源61所发送的视频流时,根据与所述客户端63的播放质量需求相匹配的转换规则,将所述视频流转换为图片集合,并将所述图片集合发送给所述客户端63;

所述视频源61,用于根据所述云端服务器62的指示,将视频流发送给所述云端服务器62;

所述客户端63,用于通过所述云端服务器62向所述视频源61请求相应的视频流,接收所述云端服务器62顺序发送的由所述视频流所转换成的图片集合,并通过浏览器将所述图片集合中的图片进行滚动播放。

与现有技术相比,本申请实施例所提出的技术方案至少具有以下优点:

本申请实施例公开了一种视频流传输方法、设备和系统,在视频源和客户端之间加入云端服务器,通过云端服务器维护视频源和客户端之间的通信连接,云端服务器根据与客户端的播放质量需求相匹配的转换规则,将视频源发送的视频流转换为图片集合,并将图片集合发送给客户端,以使客户端通过浏览器进行滚动播放,通过应用本申请实施例所提出的技术方案,可以将需要更高网络传输质量和复杂编解码插件,才能在匹配类型的设备上进行顺畅播放的视频流文件,转换为传输方便,无需插件即可在各种设备的浏览器中进行流畅滚动播放的图片集合,从而,提高了视频流的传输效率,降低了播放视频流的软硬件需求,并且,通过通用的浏览器浏览,还可以有效的避免平台差异所导 致的视频流适配设备类型的问题,简化了视频流传输和播放的处理过程,降低了视频流传输和播放对于客户端的硬件要求和资源占用率。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或网络侧设备等)执行本发明实施例各个实施场景所述的方法。

本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明实施例所必须的。

本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明实施例序号仅仅为了描述,不代表实施场景的优劣。

以上公开的仅为本发明实施例的几个具体实施场景,但是,本发明实施例并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明实施例的业务限制范围。

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