视频流数据采集方法以及装置、电子设备、存储介质与流程

文档序号:31719330发布日期:2022-10-04 22:50阅读:115来源:国知局
视频流数据采集方法以及装置、电子设备、存储介质与流程

1.本技术涉及视频数据采集领域,具体而言,涉及一种视频流数据采集方法以及装置、电子设备、存储介质。


背景技术:

2.在现在h5开发过程有很多产景都运用到了录制视频功能。比如,在视频认证、人脸数字认证、眨眼视频认证、唇语视频认证等。目前都是使用调用原生手机摄像头录制视频上传完成认证。
3.在开发过程中通常会调用原生视频录制。这样的话会导致不同手机,不同品牌录制的视频,根据自身相机的分辨率设置、文件、大小都不一样,有些视频因为手机分辨率高的原因导致视频太大,上传时间多达30秒甚至1分钟以上,体验很差。
4.针对相关技术中视频流数据处理效果不佳的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本技术的主要目的在于提供一种视频流数据采集方法以及装置、电子设备、存储介质,以解决视频流数据处理效果不佳的问题。
6.为了实现上述目的,根据本技术的一个方面,提供了一种视频流数据采集方法应用于移动端。
7.根据本技术的视频流数据采集方法包括:配置所述移动端上web浏览器的预设采集参数,其中所述预设采集参数包括目标视频流分辨率以及视频流编解码参数;启动所述web浏览器中的录制程序按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集。
8.进一步地,所述方法还包括:将采集到的视频流数据通过websocket协议上传至web后台服务器之后,再通过udp协议上传至视频识别服务器。
9.进一步地,所述采集到的视频流数据包括不同型号的所述移动端采集到的相同分辨率的视频流数据,所述分辨率可自定义调节。
10.进一步地,所述视频流编解码参数包括:对不同类型的web浏览器的设置成对应的视频解码参数。
11.进一步地,所述配置所述移动端上web浏览器的预设采集参数,其中所述预设采集参数包括目标视频流分辨率以及视频流编解码参数,包括:判断当前web浏览器的兼容性,并对所述当前web浏览器进行兼容性处理,以使所述当前web浏览器支持getusermedia的调用;设置所述目标视频流分辨率,以使所述当前web浏览器满足对应视频流分辨率的要求;根据浏览器视频容器属性设置所述视频流编解码参数,以使所述当前web浏览器具有对应的视频解码参数。
12.进一步地,所述设置所述目标视频流分辨率,以使所述当前web浏览器满足对应视
频流分辨率的要求,包括:在当前web浏览器无法满足所述目标视频流分辨率的情况下,则返回所述当前浏览器可满足的最大视频流分辨率;如果所述当前浏览器可满足的最大视频流分辨率无法与所述目标视频流分辨率匹配,则不进行回调操作。
13.进一步地,所述启动所述web浏览器中的录制程序按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集,还包括:启动所述web浏览器中的录制程序,录制完成视频流数据采集并设置捕获数据回调参数,所述回调参数包括含有视频数据流的blob对象。
14.为了实现上述目的,根据本技术的另一方面,提供了一种视频流数据采集装置应用于移动端。
15.根据本技术的视频流数据采集装置包括:配置模块,用于配置所述移动端上web浏览器的预设采集参数,其中所述预设采集参数包括目标视频流分辨率以及视频流编解码参数;采集模块,用于启动所述web浏览器中的录制程序按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集。
16.在本技术实施例中,采用配置所述移动端上web浏览器的预设采集参数的方式,通过启动所述web浏览器中的录制程序按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集,达到了不同类型移动终端录制的视频大小基本一致的目的,从而实现了缩减视频数据同步时间的技术效果,进而解决了视频流数据处理效果不佳的技术问题。
附图说明
17.构成本技术的一部分的附图用来提供对本技术的进一步理解,使得本技术的其它特征、目的和优点变得更明显。本技术的示意性实施例附图及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
18.图1是根据本技术实施例的视频流数据采集方法的流程示意图;
19.图2是根据本技术实施例的视频流数据采集装置的结构示意图;
20.图3是根据本技术实施例的视频流数据采集方法的系统架构示意图。
具体实施方式
21.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
22.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
23.在本技术中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本技术及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
24.并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本技术中的具体含义。
25.此外,术语“安装”、“设置”、“设有”、“连接”、“相连”、“套接”应做广义理解。例如,可以是固定连接,可拆卸连接,或整体式构造;可以是机械连接,或电连接;可以是直接相连,或者是通过中间媒介间接相连,又或者是两个装置、元件或组成部分之间内部的连通。对于本领域普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。
26.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
27.本技术的实施例中,在前端搭建一个java的h5应用,采用mediarecorder录制视频以后,通过websocket的方式,将视频流传递到java的web应用后台,实现视频流数据的高效传输,提高用户体验。特别地,能够使不同手机不同品牌视频质量统一,缩短上传时间。
28.如图1所示,该方法包括如下的步骤s110至步骤s120:
29.步骤s110,配置所述移动端上web浏览器的预设采集参数,其中所述预设采集参数包括目标视频流分辨率以及视频流编解码参数。
30.移动端包括但不限于智能手机等移动端。需要先配置所述移动端上web浏览器的预设采集参数,对于所述设采集参数包括目标视频流分辨率以及视频流编解码参数。也就是说,需要将目标视频流分辨率设置为符合要求的视频流编解码参数。
31.步骤s120,启动所述web浏览器中的录制程序按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集。
32.在所述移动端启动所述web浏览器中的录制程序,通过录制程序在所述移动端完成录制,获得视频流数据。视频流数据是按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集的。
33.从以上的描述中,可以看出,本技术实现了如下技术效果:
34.采用配置所述移动端上web浏览器的预设采集参数的方式,通过启动所述web浏览器中的录制程序按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集,达到了不同类型移动终端录制的视频大小基本一致的目的,从而实现了缩减视频数据同步时间的技术效果,进而解决了视频流数据处理效果不佳的技术问题。
35.作为本实施例中的优选,所述方法还包括:将采集到的视频流数据通过websocket协议上传至web后台服务器之后,再通过udp协议上传至视频识别服务器。
36.具体实施时,采集得到所述视频流数据之后,将将采集到的视频流数据通过websocket协议上传至web后台服务器。再通过udp协议上传至视频识别服务器进行后续身份判别核验。
37.作为本实施例中的优选,所述采集到的视频流数据包括不同型号的所述移动端采集到的相同分辨率的视频流数据,所述分辨率可自定义调节。
38.具体实施时,对于不同型号的移动端,采集得到相同分辨率的视频流数据。
39.需要注意的是,所述分辨率是可自定义进行调节的。
40.设置对应需要的视频分辨率时,当由于隐私保护的原因,无法访问用户的摄像头和麦克风信息时,应用可以使用额外的constraints参数请求它所需要或者想要的摄像头和麦克风能力。比如录制程序想要使用1280x720的摄像头分辨率
[0041][0042]
在web浏览器会试着满足这个请求参数,但是如果无法准确满足此请求中参数要求或者用户选择覆盖了请求中的参数时,有可能返回其它的分辨率。
[0043]
强制要求获取特定的尺寸时,可以使用关键字min,max,或者exact(就是min==max),比如以下参数表示要求获取最低为1280x720的分辨率:
[0044][0045]
如果摄像头不支持请求的或者更高的分辨率,返回的promise会处于rejected状态,notfounderror作为rejected回调的参数,而且用户将不会得到要求授权的提示。
[0046]
可以理解,造成不同表现的原因是,相对于简单的请求值和ideal关键字而言,关键字min,max,和exact有着内在关联的强制性,比如如下的例子:
[0047]
[0048][0049]
当请求包含一个ideal(录制程序最理想的)值时,这个值有着更高的权重,意味着浏览器会先尝试找到最接近指定的理想值的设定或者摄像头(假设设备拥有不止一个摄像头)。
[0050]
比如,navigator.mediadevices.getusermedia(constraints)
[0051]
根据客户需求,如果客户需要高质量的视频需要把分辨率设置高一些。如果只是简单的识别,可以把分辨率设置的低一下满足基本需求即可。这样的话视频的大小会变得小很多,速度快、体验会非常好。
[0052]
作为本实施例中的优选,所述视频流编解码参数包括:对不同类型的web浏览器的设置成对应的视频解码参数。
[0053]
具体实施时,设置视频编码参数,不同浏览器的解码参数不同,判断浏览器视频容器属性,设置成对应的视频解码参数。
[0054]
比如,//这里涉及到视频的容器以及编解码参数,这个与浏览器有密切的关系浏览器对webm的支持情况
[0055]
根据video/webm;codecs参数去判断当前浏览器与webm的关系
[0056]
当参数等于vp9和h264的时候
[0057]
var options={mimetype:'video/webm;codecs=h264'};
[0058]
等参数等于vp8的时候
[0059]
var options={mimetype:'video/webm;codecs=vp8'};
[0060]
最后new一个mediarecorder,设置好之前的所有参数。
[0061]
作为本实施例中的优选,所述配置所述移动端上web浏览器的预设采集参数,其中所述预设采集参数包括目标视频流分辨率以及视频流编解码参数,包括:判断当前web浏览器的兼容性,并对所述当前web浏览器进行兼容性处理,以使所述当前web浏览器支持getusermedia的调用;设置所述目标视频流分辨率,以使所述当前web浏览器满足对应视频流分辨率的要求;根据浏览器视频容器属性设置所述视频流编解码参数,以使所述当前web浏览器具有对应的视频解码参数。
[0062]
具体实施时,因为存在兼容性问题,对浏览器需要做兼容处理,首先针对不同浏览器看不同浏览器是否支持getusermedia方法,。比如,谷歌chrome/苹果safari内核内核浏览器navigator.webkitgetusermedia,火狐firefox浏器navigator.mozgetusermedia,ie浏览器
[0063]
通过执行navigator.msgetusermedia,判断当前浏览器是否支持该方法,
[0064]
作为本实施例中的优选,所述设置所述目标视频流分辨率,以使所述当前web浏览器满足对应视频流分辨率的要求,包括:在当前web浏览器无法满足所述目标视频流分辨率的情况下,则返回所述当前浏览器可满足的最大视频流分辨率;如果所述当前浏览器可满足的最大视频流分辨率无法与所述目标视频流分辨率匹配,则不进行回调操作。
[0065]
具体实施时,如果判断在当前web浏览器是否满足所述目标视频流分辨率,如果判断为不满足,则返回所述当前浏览器可满足的最大视频流分辨率。进一步地,如果判断所述当前浏览器可满足的最大视频流分辨率无法与所述目标视频流分辨率匹配,则不进行回调操作。
[0066]
作为本实施例中的优选,所述启动所述web浏览器中的录制程序按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集,还包括:启动所述web浏览器中的录制程序,录制完成视频流数据采集并设置捕获数据回调参数,所述回调参数包括含有视频数据流的blob对象。
[0067]
具体实施时,开启视频采集mediarecorder.start(),录制完成设置捕获数据回调,在回调数据中,会获得一个含有视频数据流的blob对象,拿到blod对象后采用websocket的方式将视频流传递到java的web应用后台。
[0068]
需要注意的是,在做录制视频的时候,通常会用到js中的存储数据方法,最常用的就是blob,最终是生成一个ul或者一个文件时使用blob。
[0069]
blob相当于一块非常高效的存储区域,其他的类型的bufr可以放到这个bob,那它有什么好处,它可以将整个缓冲区写到文。通过javascript一般在写文件之前把它放到blob里,它的底层实际上就是字节的array一个无类型的数据缓冲。
[0070]
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0071]
根据本技术实施例,还提供了一种用于实施上述方法的视频流数据采集装置200,如图2所示,该装置包括:
[0072]
配置模块210,用于配置所述移动端上web浏览器的预设采集参数,其中所述预设采集参数包括目标视频流分辨率以及视频流编解码参数;
[0073]
采集模块220,用于启动所述web浏览器中的录制程序按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集。
[0074]
本技术实施例中的所述配置模块210中移动端包括但不限于智能手机等移动端。需要先配置所述移动端上web浏览器的预设采集参数,对于所述设采集参数包括目标视频流分辨率以及视频流编解码参数。也就是说,需要将目标视频流分辨率设置为符合要求的视频流编解码参数。
[0075]
本技术实施例中的所述采集模块220中在所述移动端启动所述web浏览器中的录制程序,通过录制程序在所述移动端完成录制,获得视频流数据。视频流数据是按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集的。
[0076]
显然,本领域的技术人员应该明白,上述的本技术的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成
的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术不限制于任何特定的硬件和软件结合。
[0077]
如图3所示,是根据本技术实施例的视频流数据采集方法的系统架构示意图。在前端搭建一个java的h5应用,采用mediarecorder录制视频以后,通过websocket的方式,将视频流传递到java的web应用后台,实现视频流数据的高效传输,提高用户体验。特别地,能够使不同手机不同品牌视频质量统一,缩短上传时间。
[0078]
步骤一,建立一个mediastream或者htmlmediaelement(《video》元素的形式)来充当媒体数据的源.《video autoplay width="100%"height="auto"》《/video》
[0079]
步骤二,浏览器兼容性处理及设置分辨率参数等
[0080]
首先针对不同浏览器看不同浏览器是否支持然后设置对应需要的视频分辨率。因为存在兼容性问题,对浏览器需要做兼容处理。
[0081]
然后,设置对应需要的视频分辨率。当由于隐私保护的原因,无法访问用户的摄像头和麦克风信息时,应用可以使用额外的constraints参数请求它所需要或者想要的摄像头和麦克风能力。此外可以根据客户需求,如果客户需要高质量的视频需要把分辨率设置高一些,如果只是简单的识别,可以把分辨率设置的低一下满足基本需求即可。这样的话视频的大小会变得小很多、速度快、体验会非常好。
[0082]
最后,设置视频编码参数,不同浏览器的解码参数不同,判断浏览器视频容器属性,设置成对应的视频解码参数
[0083]
步骤三,开启视频采集mediarecorder.start(),录制完成设置捕获数据回调。
[0084]
在回调数据中,会获得一个含有视频数据流的blob对象,拿到blod对象后采用websocket的方式将视频流传递到java的web应用后台。
[0085]
本技术的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0086]
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0087]
s1,配置所述移动端上web浏览器的预设采集参数,其中所述预设采集参数包括目标视频流分辨率以及视频流编解码参数;
[0088]
s2,启动所述web浏览器中的录制程序按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集。
[0089]
可选地,存储介质还被设置为存储用于执行以下步骤的计算机程序:
[0090]
s1,将采集到的视频流数据通过websocket协议上传至web后台服务器之后,再通过udp协议上传至视频识别服务器。
[0091]
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0092]
本技术的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步
骤。
[0093]
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
[0094]
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0095]
s1,配置所述移动端上web浏览器的预设采集参数,其中所述预设采集参数包括目标视频流分辨率以及视频流编解码参数;
[0096]
s2,启动所述web浏览器中的录制程序按照所述目标视频流分辨率、所述视频流编解码参数完成视频流数据采集。
[0097]
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0098]
以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1