Web端与移动端接入萤石云平台的视频数据

前言

因为项目需要在Web和App上展示实时视频流信息,所以之前做项目时尝试了很多方法。有用vlc插件播放的(由于使用到了插件,所以安卓App、微信小程序都不能显示视频,最后也放弃了),也有使用海康威视Web开发包开发的。但是最简单的是直接在Web端或App上接入萤石云平台的视频流(不能看历史数据,只能看实时的视频,使用萤石云平台的云存储功能需要收费)。使用平台提供的服务的前提是要购买萤石云或者海康威视的设备。以下内容是我将萤石云平台官方文档和自己实践过程中遇到的问题的总结。官方文档地址:https://open.ys7.com/doc/zh/book/index/live_proto.html

1. 直播接入指南
直播地址是萤石开放平台为用户提供的最简易视频接入方式,不需要学习复杂的流媒体知识,不需要过硬的开发技术,只需要一个摄像头,一个开发者账号即可实现远程观看直播视频。

1.1. 直播地址获取
(1)注册成为开发者后登录开放平台官网(此账号还可以登录"萤石云视频"App),进入开发者服务-我的资源-我的设备中添加设备(需将设备连上网后进行添加),添加成功刷新页面可以看到设备信息,如下图:
 

 

2)可以下载一个"萤石云视频"App,注册账号后登录就可以添加设备了,一般买到的萤石云摄像头底座都有一个二维码,用App扫描添加就可以了。还有另一种方法是点击上一个图片中的"添加设备",填写相应的数据。App添加更为方便,而且在App上添加完设备后就可以直接查看到视频流了。

 

 

(3)添加完设备后,平台还不会提供服务,需要在"我的应用"中获取测试AccessToken以及填写相应信息后才能使用服务。

 

 

(4)完成上一步后,就可以在使用直播的服务了。App添加更为方便,而且在App上添加完设备后就可以直接查看到视频流了。此时要在App中将"视频加密"关闭,不然视频无法使用直播服务。设备添加完成后,可在"萤石云视频"App中进行设置。

 

(5)选择一个设备点击直播地址,进入直播地址设置页面,不用担心关闭加密会造成可能的危险,直播地址的安全可以设置有效期来控制,后面安全防盗方面会进行相应的介绍。关闭加密后就可以看到你的设备已经生成相应的直播地址了,如下图:

(6)进入直播地址后可以获取如下链接:

 

1.2. 简单区分
HLS适用于移动端使用,可用微信直接打开,也可集成H5页面嵌入到微信小程序或者微信公众号中。

RTMP适用于PC网页端使用,可用flash或者ckplayer等播放器嵌入网页的方式播放,较HLS延迟小,更稳定。

注意:使用前先进行HLS播放测试,确认视频可正常播放后再进行使用,无法播放的地址会展示错误提示,根据错误提示进行调整,若调整无法恢复可在工单系统中提问咨询。

 

1.3. H5使用方法——HLS
萤石云平台提供了可直接使用的H5页面,可快速生成设备HLS地址的H5直播页面,启用H5播放页进行简单配置即可使用,如下图:

该H5页面仅用于移动端展示,不能用于PC端网页使用,但可以在PC网页F12中看到源码,有需要可以参考源码实现自己的H5页面。

注意:集成H5页面的过程中请在真机(手机)上测试验证,不支持模拟器调试。

 

1.4. Web使用方法——RTMP
Web页面集成需要用户先准备一个服务器,搭建网页后将视频按照下面介绍的方法接入即可播放。

下载UIKit JavaScript上传服务器后解压,然后进行如下页面配置


简单的视频接入已经实现了,运行Web服务器即可体验。完整示例可查看UIKit JavaScript。

播放器更多操作可以深入学习ckplayer配置(http://www.ckplayer.com/manualx/13.html)

若需要集成多个视频创建多个播放器即可实现,但需要注意的是集成多个播放器需要注意单个播放器的长宽比例限制最小为{width: 400px;height: 300px;}(chrome浏览器限制),小于这个大小时自动播放会失效。
 

1.5. 微信公众号使用方法——HLS

在微信公众号中嵌入H5页面的方式来播放视频,参考H5使用方法生成H5页面后,拷贝地址到微信公众号的跳转页面地址即可,具体操作如下:

 

 

可关注萤石开放平台公众号(微信号ez_open)进行体验。

1.6. 微信小程序使用方法——HLS

小程序中的视频只支持以小程序的原生组件接入,所以H5页面的代码并不适用于小程序,小程序只能使用video组件播放。

 

 

完整示例可见Video组件介绍(https://developers.weixin.qq.com/miniprogram/dev/component/video.html)

注意:集成小程序的过程中请在真机(手机)上测试验证,不支持模拟器调试。

 

1.7. 安全防盗
直播地址的特点是易于分享,但由于是标准协议,无法用于加密设备。所以萤石云平台提供了针对HLS直播地址的防盗方法(RTMP暂不支持)。这个方法需要用户在服务器上生产带有效期的直播地址,定时刷新供前端页面使用。使用该接口可以让用户只获取到指定5分钟、10分钟、1小时等有效的直播地址,过期后该地址将无法打开视频,需要向商家获取新的地址。接口调用逻辑:开通直播功能(新设备需开通直播)——获取指定有效期的直播地址(https://open.ys7.com/doc/zh/book/index/address.html)

FAQ:
1. 直播地址是否可以进行录像回放?

答:目前只能用于设备画面的直播,回放技术正在预研中,敬请期待。

2. 播放测试报451不支持的码流类型?

答:有如下两种情况可能报该错误;1)部分海康摄像头没有子码流,所以无法播放流畅的视频,详情可在海康官网查看指定型号的介绍。2)海康NVR的通道关联失败,无法通过NVR取到指定通道的视频数据,一般为IPC与NVR断开连接导致。

3. 播放测试报452、454、501、503、544错误?

答:这类错误码为网络错误,建议刷新重试,检查设备与播放端网络情况。

4. 直播报非H264编码类型或有视频但没有声音?

答:直播的视频编码类型仅支持H264,音频编码类型只支持AAC,可以修改设备配置来实现直播。编码格式可以在萤石工作室-设备管理-局域网搜索到的设备-高级设置-图像-视音频编码类型中修改-保存。注意:主码流/子码流/对应通道下的编码类型都需要修改。
 

 

 

在项目中添加如下代码代码:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1382141.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

萤石春季发布会:4+N产品体系再升级EZVIZ Connect连接智能生活

3月18日,以“智家新生,萤领未来”为主题的萤石智能家居2022春季发布会在线上召开。本次发布会除了带来全无线电池摄像机、智能门铃、视频锁、玲珑面板、Wi-Fi6全屋覆盖方案等突破性创新产品外,还发布了新一代智能中控屏SP4,并通过…

html控制萤石云摄像头转动,怎么控制云台转动 ?

您好,目前萤石摄像机中只有C6系列(除C6P)、XP1、CP1、C8系列支持控制云台转动。您可以通过如下三种方式来控制设备云台转动: ◆ 方法一(萤石云视频APP): 1、登录萤石云视频手机APP,在“萤石”页签,点击摄像机的视频封面…

软工导论知识框架(七)面向对象设计

一.设计准则 分析:提取、整理用户需求,建立问题域精确模型。设计:转变需求为系统实现方案,建立求解域模型。 在实际的软件开发过程中分析和设计的界限是模糊的,分析和设计活动是一个多次反复迭代的过程。分析的结果可…

C++模板,STL(Standard Template Library)

这篇文章的主要内容是C中的函数模板、类模板、STL的介绍。 希望对C爱好者有所帮助,内容充实且干货,点赞收藏防止找不到! 再次感谢每个读者和正在学习编程的朋友莅临! 更多优质内容请点击移驾: C收录库:重生…

[Excel]Excel函数和用法(4)——查找字符串,SEARCH和FIND函数

区别:SEARCH大小写不敏感,FIND大小写敏感 作用:都是从左到右返回搜索到的字符串的起始位置 SEARCH语法:SEARCH(find_text, within_text, [start_num]) FIND语法:FIND(find_text, within_text, [start_num]) 如果指…

binary_search函数用法

STL之二分查找 (Binary search in STL) Section I 正确区分不同的查找算法count,find,binary_search,lower_bound,upper_bound,equal_range 本文是对Effective STL第45条的一个总结,阐述了各种查找算法的异同以及使用他们的时机。 首先可供查找的算法大致有count,f…

FIND函数嵌入INDEX和MATCH函数,简直就是万金油查找!!!

FIND函数大家通常是用来截取内容, 但是当你搭配到INDEX和MATCH,你会发现这个搭配非常巧妙,也非常强大. 这是一份销售表: 中间的品类繁多.名称都是细节型号. 需求: 现在这些品牌需要打折,折扣表如下: 难点: 上方是产品的型号详细描述,而我们需要给品牌打折. 例如: 第一行…

VBA里的文本函数 find() search() substitute() replace() match() large() 在EXCEL工作表使用和VBA中使用差别的对比

1 find() 1.1 worksheetfunction.find() 工作表函数FIND(find_text, within_text, [start_num])FINDB(find_text, within_text, [start_num]) 中文字符等会识别为2位返回的是 要查找的内容在字符串内的位数。 局限性区分大小写,不允许通配符 如果在VBA中使用&a…

Excel的查找和引用函数:VLOOKUP、OFFSET、MATCH、INDEX、INDIRECT

文章目录 一.函数清单二.详解函数1.VLOOKUP()2.OFFSET()3.MATCH()4.INDEX()5.INDIRECT()6.综合练习 一.函数清单 函数介绍VLOOKUP()垂直方向查找OFFSET()计算偏移量MATCH()查找位置INDEX()查找数据ROW()引用行的数据COLUMN()引用列的数据INDIRECT()文本字符串指定的引用HLOOKU…

Python-re中search()函数的用法-----查找ip(超详细)

1.首先来看一下search()和find()的区别 import re s1 "2221155" #search 字符串第一次出现的位置 print(re.search("1",s1)) print(s1.find("1"))它们的输出分别是: search()&#x…

index+match函数/一对多查找匹配,可以代替Vlookup函数的使用。

在表格的列的顺序混乱的时候,vlookup函数choose,vlookup函数match,vlookupcolumn函数并不好用,可以试一下indexmatch函数的组合。 . 首先介绍一下index函数, 语法INDEX(数组或区域, 行号, 列号)…

二分查找法(函数binary_search)

目录 定义 复杂度 解析 函数binary_search 代码实现 运行结果 总结 定义 二分查找也叫折半查找,是一种高效率的查找方法,但是折半查找方法要求顺序存储结构,按关键字大小有序排列。 复杂度 时间复杂度即是while循环的次数。 二分查找的…

数据结构:查找(Search)【详解】

友情链接:数据结构专栏 目录 查找【知识框架】 查找概论一、查找的基本概念 顺序表查找一、定义二、算法 有序表查找一、折半查找二、插值查找三、斐波那契查找 线性索引查找一、稠密索引二、分块索引三、倒排索引 二叉树排序与平衡二叉树一、二叉排序树1、定义2、…

一文搞懂VLOOKUP、INDEX、MATCH函数

最近,在学习数据分析方向的东西,众所周知,Excel是数据分析所不可或缺的工具,由于过往并没有对Excel进行过深入研究,因此当首次接触到Excel中的函数时,不可避免地被其中一些函数的逻辑绕得有些晕&#xff0c…

查找匹配函数FIND和SEARCH的基本用法

一、Excel中FIND函数和SEARCH函数的用法 FIND函数区分大小写,不支持通配符 **SEARCH ** 函数不区分大小写,支持通配符 有这样一个产品: 注:文本 “KitchenAId 和 Stockwell”内有空格 现在我们看这两个函数的用法: 1.FIND(find_text,within_text, [start_num]) 注意:…

Excel字符函数(3):字符查找函数Find、Search

工作中,有时候编号与时间、短信回复内容、评论内容等常有混在一起需要拆分的情况,还有一些从数据库Oracle、Mysql等导出的数据字段内容需要拆分,那么除了MID、LEN、SUBSTITUTE等字符函数外,用的最多的就是Find、Search函数了。 &a…

简单使用Search()函数

给出两个范围&#xff0c;返回一个ForwardIterator&#xff0c; 查找成功指向第一个范围内第一次出现子序列 (第二个范围)的位置&#xff0c;查找失败指向last1。重载版本使用自定义的比较操作。 std::vector<int> vec { 1,2,3,4,5,4,4,4,4,2,3 }; std::vector<int&…

Excel中SEARCH函数的使用方法

SEARCH函数是Excel中常用的文本查找函数&#xff0c;它可以返回查找指定的文本字符在某个字符串中的位置。它的语法结构是SEARCH(find_text,within_text,[start_num]) 如下图A列是随机生成的一些数值&#xff0c;现在想要查找出数值4在这些数值中的位置。 在C2单元格录入公式SE…

C++ search()函数用法详解(深入了解,一文学会)

find_end() 函数用于在序列 A 中查找序列 B 最后一次出现的位置。那么&#xff0c;如果想知道序列 B 在序列 A 中第一次出现的位置&#xff0c;该如何实现呢&#xff1f;可以借助 search() 函数。 search() 函数定义在<algorithm>头文件中&#xff0c;其功能恰好和 find…