首页 / 专利库 / 软件 / 软件解决方案 / 软件组件 / 插件 / 一种基于分布式的WEB无插件视频直播方法

一种基于分布式的WEB无插件视频直播方法

阅读:526发布:2020-05-08

专利汇可以提供一种基于分布式的WEB无插件视频直播方法专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种基于分布式的WEB无 插件 视频直播方法,其包括如下步骤:第一步、创建分布式管理服务,该分布式管理服务与Zookeeper应用程序协调服务配合使用,根据流媒体上报的资源使用情况,采用加权轮询方法实现负载均衡,第二步、创建流媒体服务,获取各种实时直播视频源,根据媒体资源负载情况,创建该流媒体服务,实时接收媒体源推送的媒体资源或者实时向媒体资源拉取媒体资源,第三步、创建H5视频播放器,该H5视频播放器创建两个通道的websocket服务连接,其中,一个用于信令交互形成信令通道,另外一个用于RTP媒体数据交互形成媒体通道,该信令通道用于控制令及心跳管理,该媒体通道用于RTP媒体数据的传输。,下面是一种基于分布式的WEB无插件视频直播方法专利的具体信息内容。

1.一种基于分布式的WEB无插件视频直播方法,其特征在于:包括如下步骤:
第一步、创建分布式管理服务,
该分布式管理服务与Zookeeper应用程序协调服务配合使用,根据流媒体上报的资源使用情况,采用加权轮询方法实现负载均衡,
实现负载均衡的具体方式为,
首先,每个节点有三个权重变量,分别为约定权重、有效权重以及节点当前权重,其中,约定权重为在配置文件或初始化时约定好的每个节点的权重,
有效权重的初始化为约定权重,在通讯过程中发现节点异常,则-1;之后再次选取本节点,调用成功一次则+1,直达恢复到约定权重,有效权重的作用是节点异常时,降低其权重,节点当前权重的初始化为0,
实现负载均衡的算法逻辑为,
首先,轮询所有节点,计算当前状态下所有节点的有效权重之和为全部权重,而后,计算节点当前权重=节点当前权重+有效权重,选出所有节点中节点当前权重中最大的一个节点作为选中节点,
最后,选中节点的节点当前权重=节点当前权重-全部权重,
第二步、创建流媒体服务,获取各种实时直播视频源,
根据媒体资源负载情况,创建该流媒体服务,实时接收媒体源推送的媒体资源或者实时向媒体资源拉取媒体资源,该流媒体服务启动后,创建指定端口的websocket服务,实时监听前端浏览器媒体请求,流媒体主动向分布式集群系统注册,上报当前媒体资源的负载及使用资源情况,流媒体支持视频转码,当拉取的视频源为非标准RTP视频源时,直接转码封装为标准RTP码流,再转发至播放器,
第三步、创建H5视频播放器,
该H5视频播放器创建两个通道的websocket服务连接,其中,一个用于信令交互形成信令通道,另外一个用于RTP媒体数据交互形成媒体通道,该信令通道用于控制令及心跳管理,该媒体通道用于RTP媒体数据的传输,
浏览器与该H5视频播放器相连接,该浏览器为支持兼容 MSE 的媒体容器,MSE 同时还提供了一个 API,用于运行时检测容器和编解码是否受支持,播放器启动并建立通道后,根据接收到的码流数据,先调用API检测媒体容器以及编解码器是否支持,若支持,则启用MSE标准实现视频解码播放,若不支持,则启用WebAssembly解码,实时解码接收到的RTP媒体流为YUV数据,并使用webgl渲染YUV实现播放视频解码播放。
2.如权利要求1所述的一种基于分布式的WEB无插件视频直播方法,其特征在于:在第三步中,MSE支持framented mp4,该H5视频播放器接收到RTP码流后,解封装为NALU数据,实时封装为物理分离的多段framented mp4内存文件,使得每段的meta都较小,缓冲延时小,并通过sourceBuffer的API塞数据给HTML5的video标签实现视频播放。
3.如权利要求1所述的一种基于分布式的WEB无插件视频直播方法,其特征在于:在第三步中WebAssembly 是一份字节码标准,以字节码的形式依赖虚拟机在浏览器中运行。
4.如权利要求3所述的一种基于分布式的WEB无插件视频直播方法,其特征在于:
WebAssembly依赖编译器将强类型语言编译成为 WebAssembly 字节码。
5.如权利要求1所述的一种基于分布式的WEB无插件视频直播方法,其特征在于:第一步中该分布式管理服务为分布式集群管理服务。
6.如权利要求1所述的一种基于分布式的WEB无插件视频直播方法,其特征在于:第二步中流媒体服务支持RTSP/GB28181/ONVIF/HLS/RTMP/FLV协议或者SDK方式的媒体资源获取。
7.如权利要求1所述的一种基于分布式的WEB无插件视频直播方法,其特征在于:第三步中该媒体容器采用 H.264 视频编码或AAC 音频编码或 MP4 容器的格式。

说明书全文

一种基于分布式的WEB无插件视频直播方法

技术领域

[0001] 本发明涉及一种视频直播方法,特别是指一种基于分布式的WEB无插件视频直播方法。

背景技术

[0002] 目前,视频直播行业发展的比较迅速,当前浏览器上主流的视频直播方案主要有 HLS 和 RTMP,移动 WEB 端目前以 HLS 为主,其为一个基于 HTTP 的视频流协议,由 Apple 公司实现,其缺点是延时较大,PC端则以 RTMP 为主,实时性较好,但是这套方案需要搭建专的 RTMP 流媒体服务如 Adobe Media Server,并且在浏览器中只能使用 Flash 实现播放器,然而Adobe公司已经宣布停止Flash更新,所以该方案在视频直播方面已经不是优选方案。
[0003] 现有视频直播架构过于简单,流媒体直到现在还在使用 Flash 进行服务,以及通过 RTMP 协议进行视频串流的 Flash 媒体服务器。HTML5媒体源扩展(Media Source Extension,以下简称MSE)实现后,情况发生了改变。MSE 使使用者可以把通常的单个媒体文件的 src值替换成引用MediaSource对象(一个包含即将播放的媒体文件的准备状态等信息的容器),以及引用多个SourceBuffer 对象(代表多个组成整个串流的不同媒体)的元素。MSE让使用者能够根据内容获取的大小和频率,或是内存占用详情(例如什么时候缓存被回收),进行更加精准地控制。它是基于其可扩展的 API 建立自适应比特率流客户端的基础。因此,在兼容MSE的浏览器上,使用者可以使用MSE技术,将流媒体实时转发过来的媒体流按MSE技术标准串流实现视频播放。
[0004] 然而,实践中出现另一个问题,在不支持MSE的老旧或者兼容性的浏览器如何实现实时的视频播放呢。webAssembly出现了,webAssembly是一种新的字节码格式,主流的浏览器已经支持webAssembly。和JS需要解释执行不同的是,webAssembly字节码和底层机器码很相似可快速装载运行,因此性能相对于JS解释执行大大提升。也就是说webAssembly并不是一门编程语言,而是一份字节码标准,需要用高级语言编译出字节码放到webAssembly虚拟机中才能运行,浏览器厂商需要做的是根据webAssembly规范实现虚拟机。使用webAssemble规范,将流媒体实时转发过来的媒体流解码为YUV数据,推送给webgl实时渲染

发明内容

[0005] 本发明所采用的技术方案为:一种基于分布式的WEB无插件视频直播方法,其特征在于:包括如下步骤。
[0006] 第一步、创建分布式管理服务。
[0007] 该分布式管理服务与Zookeeper应用程序协调服务配合使用,根据流媒体上报的资源使用情况,采用加权轮询方法实现负载均衡。
[0008] 实现负载均衡的具体方式为。
[0009] 首先,每个节点有三个权重变量,分别为约定权重、有效权重以及节点当前权重,其中,约定权重为在配置文件或初始化时约定好的每个节点的权重。
[0010] 有效权重的初始化为约定权重,在通讯过程中发现节点异常,则-1;之后再次选取本节点,调用成功一次则+1,直达恢复到约定权重,有效权重的作用是节点异常时,降低其权重,节点当前权重的初始化为0。
[0011] 实现负载均衡的算法逻辑为。
[0012] 首先,轮询所有节点,计算当前状态下所有节点的有效权重之和为全部权重,而后,计算节点当前权重=节点当前权重+有效权重,选出所有节点中节点当前权重中最大的一个节点作为选中节点,最后,选中节点的节点当前权重=节点当前权重-全部权重。
[0013] 第二步、创建流媒体服务,获取各种实时直播视频源。
[0014] 根据媒体资源负载情况,创建该流媒体服务,实时接收媒体源推送的媒体资源或者实时向媒体资源拉取媒体资源,该流媒体服务启动后,创建指定端口的websocket服务,实时监听前端浏览器媒体请求,流媒体主动向分布式集群系统注册,上报当前媒体资源的负载及使用资源情况,流媒体支持视频转码,当拉取的视频源为非标准RTP视频源时,直接转码封装为标准RTP码流,再转发至播放器。
[0015] 第三步、创建H5视频播放器。
[0016] 该H5视频播放器创建两个通道的websocket服务连接,其中,一个用于信令交互形成信令通道,另外一个用于RTP媒体数据交互形成媒体通道,该信令通道用于控制令及心跳管理,该媒体通道用于RTP媒体数据的传输。
[0017] 浏览器与该H5视频播放器相连接,该浏览器为支持兼容 MSE 的媒体容器。
[0018] MSE 同时还提供了一个 API,用于运行时检测容器和编解码是否受支持。
[0019] 播放器启动并建立通道后,根据接收到的码流数据,先调用API检测媒体容器以及编解码器是否支持,若支持,则启用MSE标准实现视频解码播放,若不支持,则启用WebAssembly解码,实时解码接收到的RTP媒体流为YUV数据,并使用webgl渲染YUV实现播放视频解码播放。
[0020] 本发明的有益效果为: 本发明的作用是针对各种终端浏览器,根据其兼容性不同,分别使用MSE或者WebAssembly技术实现视频播放功能,从而实现流媒体到web浏览器的实时视频处理。本发明的核心思想是通过各种标准协议(RTSP/GB28181/ONVIF等)拉取各种格式媒体资源,经过媒体处理标准化后,在流媒体中通过WebSocket实时转发至前端浏览器,浏览器通过MSE或者WebAssembly等相关技术,快速在浏览器中实现无插件视频。附图说明
[0021] 图1为本发明的实现流程示意图。
[0022] 图2为本发明的H5视频播放器实现流程示意图。

具体实施方式

[0023] 如图1至2所示,一种基于分布式的WEB无插件视频直播方法,本发明的目的是针对各种终端浏览器,根据其兼容性不同,分别使用MSE或者WebAssembly技术实现视频播放功能,从而实现流媒体到web浏览器的实时视频处理。本发明的核心思想是通过各种标准协议(RTSP/GB28181/ONVIF等)拉取各种格式媒体资源,经过媒体处理标准化后,在流媒体中通过WebSocket实时转发至前端浏览器,浏览器通过MSE或者WebAssembly等相关技术,快速在浏览器中实现无插件视频。
[0024] 一种基于分布式的WEB无插件视频直播方法,其包括如下步骤。
[0025] 如图1所示,第一步、创建分布式管理服务。
[0026] 该分布式管理服务为分布式集群管理服务。
[0027] 该分布式管理服务与Zookeeper应用程序协调服务配合使用,根据流媒体上报的资源使用情况,采用加权轮询方法实现负载均衡。
[0028] 实现负载均衡的具体方式为。
[0029] 1、每个节点有三个权重变量,分别为。
[0030] (1) weight: 约定权重,即在配置文件或初始化时约定好的每个节点的权重。
[0031] (2) effectiveWeight: 有效权重,初始化为weight。
[0032] 在通讯过程中发现节点异常,则-1。
[0033] 之后再次选取本节点,调用成功一次则+1,直达恢复到weight。
[0034] 此变量的作用主要是节点异常,降低其权重。
[0035] (3) currentWeight: 节点当前权重,初始化为0。
[0036] 2、算法逻辑。
[0037] (1)  轮询所有节点,计算当前状态下所有节点的effectiveWeight之和totalWeight。
[0038] (2) currentWeight = currentWeight + effectiveWeight; 选出所有节点中currentWeight中最大的一个节点作为选中节点。
[0039] (3) 选中节点的currentWeight = currentWeight – totalWeight。
[0040] 第二步、创建流媒体服务 S = {S1,S2,S3,…,Sn},获取各种实时直播视频源。
[0041] 根据媒体资源负载情况,使用LB策略,创建该流媒体服务,实时接收媒体源推送的媒体资源或者实时向媒体资源拉取媒体资源。
[0042] 流媒体服务支持RTSP/GB28181/ONVIF/HLS/RTMP/FLV等协议或者SDK方式的媒体资源获取。
[0043] 该流媒体服务启动后,创建指定端口的websocket服务,实时监听前端浏览器媒体请求。
[0044] 流媒体主动向分布式集群系统注册,上报当前媒体资源的负载及使用资源情况。
[0045] 流媒体支持视频转码,当拉取的视频源为非标准RTP视频源时,直接转码封装为标准RTP码流,再转发至播放器。
[0046] 如图2所示,第三步、创建H5视频播放器P= {P1,P2,P3,…,Pn}。
[0047] 该H5视频播放器创建两个通道的websocket服务连接,其中,一个用于信令交互形成信令通道,另外一个用于RTP媒体数据交互形成媒体通道。
[0048] 该信令通道用于控制令及心跳管理。该媒体通道用于RTP媒体数据的传输。
[0049] 浏览器与该H5视频播放器相连接,该浏览器为支持兼容 MSE 的媒体容器。
[0050] 该媒体容器采用 H.264 视频编码、AAC 音频编码和 MP4 容器的格式是非常常见的,且一定兼容。
[0051] MSE 同时还提供了一个 API,用于运行时检测容器和编解码是否受支持。
[0052] 播放器启动并建立通道后,根据接收到的码流数据,先调用API检测容器以及编解码器是否支持,若支持,则启用MSE标准实现视频解码播放,若不支持,则启用WebAssembly技术,实时解码接收到的RTP媒体流为YUV数据,并使用webgl渲染YUV实现播放视频解码播放。
[0053] MSE支持framented mp4,该H5视频播放器接收到RTP码流后,解封装为NALU数据(裸码流),实时封装为物理分离的多段framented mp4内存文件,使得每段的meta都较小,缓冲延时小,并通过sourceBuffer的API塞数据给HTML5的video标签实现视频播放。
[0054] WebAssembly 是一份字节码标准,以字节码的形式依赖虚拟机在浏览器中运行,其可以依赖 Emscripten 等编译器将 C++/Golang/Rust/Kotlin 等强类型语言编译成为 WebAssembly 字节码(.wasm 文件)。所以 WebAssembly 并不是 Assembly(汇编),它只是看起来像汇编而已。在不支持容器及编解码器的浏览器,就是将高效的视频解码模块(C/C++代码)编译成WebAssembly,将RTP媒体流实时解码为YUV数据。
[0055] 在实践中,本发明能够支持多终端的主流浏览器包括移动终端设备,实现视频直播功能。同时,无插件,纯javascript实现,轻量,实时性高。另外,本发明支持分布式集群,负载均衡算法加持,高并发。本发明兼容性好,流媒体支持多种视频输入,标准化输出。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈