1.首先打开EasyCVR,找到【平台接入】的功能,找到之后点击【平台接入】在左侧列表会出现选择 GB28181和EHOME两种接入方式,这里选择GB28181的协议进行接入:
2.根据上图我们可以看见我们的GB28181的配置参数信息,这些信息稍等我们填写到硬盘录像机里面 的【网络】>【高级配置】>【平台接入】选择28181这个接入方式并且将我们的CVR平台里面的信息填写进去, 填写方式如下图:
3.在配置完成后我们需要点击视频通道编码ID填写每一个通道的ID填写完成之后点击【启用】如下图所示:
点击保存之后,在我们的EasyCVR中可以看到设备接入上来(可以ctrl + f5进行刷新)
在使用EasyCVR的时候使用GB28181平台接入的方式会出现通道内的视频和硬盘录像机内的视频不匹配, 有的是A的硬盘录像机的视频,有的是B的硬盘录像机内的视频
1.首先我们发现视频可以播放这就排除了我们的EasyCVR本身的端口问题,和平台无法接入的问题
2.排除了EasyCVR的问题那么我们就去硬盘录像机来查找原因,我们可以看到两台的硬盘录像机的 GB28181的参数配置都是一样的,大致看来没有问题:
3.但是后来想到了一个可能性那就是两个硬盘录像机内的参数不可以完全一模一样!SIP用户认证ID 一定不可以一样,这就解释了为何两个硬盘录像机内的视频会混合了,因为有的通道播放的是A硬盘 录像机内的视频,有的通道播放的是B硬盘录像机内的视频,所以我们需要将SIP用户ID更改为不一样 的参数,这里就更改为002如下图
4.在更改完成之后我们进行保存,然后在CVR内我们可以看到第二个硬盘录像机的通道也出来了如下图:
我们在EasyCVR的平台Web页面无法进行播放视频,并且在播放器内有一个X,无法播放视频
1.首先我们接入自己的摄像头通过国标协议接入,发现也不可以进行播放:
2.我们首先先进行抓包来进行判断问题是否是因为端口问题导致的:
(如上图所示,我们可以看到抓包的数据都是INVITE(平台给摄像头发送消息)但是没有回复)
上图就是说明我们可以给摄像头发送数据,但是摄像头这边无法正确的将数据返回到我们的EasyCVR 平台大概含义如下:
3.这个问题主要出现在EasyCVR,因为对方可以进行注册到我们的EasyCVR的平台内,只是无法进行播放, 端口也是开放的正常,在此时我们需要查看配置文件是否填写正确(因为我们的EasyCVR配置文件内是有多处配置 IP地址的参数的地方)
4.我们打开easycvr.ini配置文件在SIP的模块下可以看到填写的IP地址不正确:
在这个参数我们需要更改为内网的IP地址(此问题针对于通过公网服务器或路由器将内网ip映射到公网)
注意,如果是直接在公网固定IP服务器部署不会出现此问题
5.更改的格式如下:
6.更改完成后我们需要重启服务来进行重新读取我们的配置文件,使其生效,重启后我们的服务可以进行正 常的播放。
此问题主要是因为返回的数据无法进行正确的传输到我们的EasyCVR内,只是传输到了公网地址,但是公网地 址并不是我们的服务器,我们服务器只是通过这个公网地址来进行映射,所以导致服务不能正确的找到我们的内网地址 ip,所以导致无法播放
再给用户处理现场遇到了下图的问题,导致EasyDSS一直无法进行启动一直报错:
Failed to connect database try again 3s later
出现此问题发现竟然报错database,最开始以为是数据库问题,但是经过尝试之后发 现服务根本就没有启动,就算把原有的数据库迁移出db/目录之外也不会创建新的数据库文件
因为根本什么东西都没有启动所以导致根本没有日志输出,就算不用前台窗口启动也 会一直报这个错误如下图:
1.虽然没有可以参考的方法,所以经过每个配置文件排查发现了一个问题:
2.我们如上图可以看见easydss.ini竟然没有数据,所以这就解释了我们的日 志无法输出,而且服务还一直在报错无法启动
3.解决此方法需要将自己备份的2.2.1版本的ini文件替换进去,使用同版本的 ini文件进行启动是可以的(如果修改过端口,https就需要重新配置)
第二个解决办法就是将我们的数据库文件拷贝出来放到新的2.2.1版本的目录下, 但是如果有录像的话拷贝就比较麻烦
客户需要迁移数据,但是只凭迁移数据的软件会出现页面无法进行加载出来‘视频点播’,内的视频, 会一直加载转换成功的图标但是实际并不能进行查看
原因分析:出现这个问题的原因主要就是因为数据库进行sqllite转换到MySQL的时候数据库的表结 构发生了变化,需要手动进行修改表结构才可以,如下图所示:
处理方法:
点击对象信息
再选择需要修改结构的表,再点击【设计表】进行修改表结构(完美的表结构需要只创建mysql库的 名称,在开启服务自动生成)
在此修改表的结构:
Ps:需要注意的是,不单单需要修改一张表的结构,只要是有问题的表全部都需要进行修改。 在此问题主要修改VOD表,因为在DSS页面上的【视频点播】里面的视频都在vod表里里面。
在修改完成数据库的表结构之后,我们需要进行重启服务,登录DSS网页来进行查看【视频点播】是否 会加载出来。
在进行数据库迁移的时候,【视频点播】可以正常加载出来,但是会出现一个问题,就是【视频广场】 里面的数据无法进行加载,会一直卡在转换成功的页面,却发现不了视频,无法进行查看。
原因分析:这个问题的发生,主要是有两个原因,第一个是因为数据库的表的结构不对,还有一个就是 因为vods表里面的‘shared’类型的值不对,shared值不对的原因是客户的版本比较老,新的版本的 shared值发生了变化,所以无法进行自动加载
处理方法:在无法加载的情况下,我们需要修改shared的值,如下图所示:
在进行修改之后,我们发现,在进行登录页面的时候还是无法进行查看,这时候是因为shared的表结构发 生了变化,我们同样需要进行手动修改表结构,如下图所示修改为tinyint类型:
在进行此步骤的时候,一定要将默认值NULL修改为0,上图中的‘长度 1’只是使用在shared值的位数
在进行修改完成数据库之后,我们需要重新启动服务,登录DSS页面,来查看【视频广场】是否可以加载成 功(重启服务后默认会自动加载出来)
在2.X系列的EasyDSS升级到3.X系列的EasyDSS会存在一个重要的问题,这个问题就是我们的数据无法进行迁移, 因为我们的最新版本加入了新的表和一些数据。(Mysql数据库类型)
1.首先我们先来看一下更新完成后如何报错的:
2.根据上图我们发现服务可以启动但是web页面却无法正常的显示,将此报错输出复制出来搜索一下发现这 个报错的主要原因是因为Mysql数据库的编码格式有问题,所以我们需要进行将Mysql数据库的编码格式和表的编码 格式更改一下(下图是使用的Navicat软件)表的编码格式主要进行更改t_sys_menu这个表
3.如上图所示,我们可以看见字符集的编码格式为latin1,这个格式是不支持中文的,所以我们需要手动 的将此编码格式更改为utf8的格式(因为我们的这个表内是包含中文的,如果不支持中文那么这个表就没有办法打 开完整所以就会导致服务出问题)
4.在更改完成保存后我们在看服务就是正常了
如何将EasyDSS的录像文件存储在其他的空闲磁盘内
1.首先我们先进行在准备迁移到的磁盘内创建一个recoed目录如下图所示
在此目录下生成录像文件即为成功
2.在创建完成后我们打开EasyDSS目录下的easydss.ini配置文件,在里面 找到‘;直播录像存储路径’这一行将下一行的参数修改为我们新磁盘下方创建的目录 内如下图所示(绝对路径):
在此目录下生成录像文件即为成功
3.在修改完成后,我们进行重新重启EasyDSS服务来读取配置文件使其生效 如下图:
在此目录下生成录像文件即为成功
4.在进行重启后,我们在【直播管理】下面的【直播资源】【视频回看】进 行查看我们的录像是否修改路径后可以正录像如下图:
在此目录下生成录像文件即为成功
5.查看我们的录像是否生成在我们进行修改的磁盘下:
在此目录下生成录像文件即为成功
EasyDSS上传点播文件接口总是调用不成功,出现这个问题的原因是因为我们的调用方法是有错误的如下图 的错误信息,首先看下第一个报错:
这个返回404的问题是因为我们的请求方式为POST,但是我们在postman的请求方式为GET所以才会返回404, 但是我们使用POST还是会返回空:
1.首先我们可以看到返回的空是因为我们没有将字段值传入进去,所以这个file的值我们应该怎么传呢?
(1)首先我们选择POST的请求方式,然后输入请求地址:
(2)进行填写Headers,如下图:
(3)继续宁填写body,首先我们先选择form-data,然后选择格式为file,最后在进行选择我们需要上传的文 件如下图:
2.配置完成并且选择需要上传的文件后我们点击Send,这个时候我们会发现返回了一个值,这个值会返回DSS的 点播文件ID值在我们的EasyDSS可以找到此ID的点播视频即为成功如下图:
EasyDSS更新到3.2.2及以上版本会原来的版本可以进行正常的推流,回放,但是更新之后的版本出现更新完成推 流无法进行推流,并且录像回放也无法进行回看的问题。
这个问题是我们的版本更新更换了默认配置文件内的端口,所以如果我们公网的推流地址如果端口全部都是默认 开放还好,如果是指定开放的原来的端口,那么这个时候我们的服务就会出现无法进行推流上来的问题,并且视 频回看也不能查看。
1.首先我们先打开easydss.ini配置文件,我们找到下列两行参数,并将其修改为老版本的端口号
2.修改完成后我们还需要进入到kernel目录下找到conf目录,在里面进行修改easydss.conf这个配 置文件,在里面我们需要修改下列参数
在我们的EasyDSS配置了域名/公网ip后,我们发现在登录的时候发生了问题一直会提示服务不存在, 而且一直在登录页面重复登录
1.首先我们可以看到配置是没有问题的如下图:
2.配置没有问题但是一访问域名就是提示服务不存在:
3.我们使用F12发现对方打开的只是登录的页面,因为对方并未开放10086端口访问的 只是域名的80端口如下图:
但是配置的却是10086,所以对方的登录web页面的url地址就是有问题的
4.对方的配置是没问题的,所以需要开放10086的web页面的登录端口,开放之后10086端 口我们只需要‘域名:端口’登录即可
5.登录即可登录成功:
在我们的EasyDSS时长会进行更新,但是老客户的EasyDSS为2.X系列的版本,数据和我 们最新的3.X版本无法同步,在这种情况下我们如何进行迁移数据库的数据?
这里以2.2.7版本为例,进行将数据迁移到3.2.2版本
1.首先我们将2.2.7版本的data目录整个迁移到3.2.2版本(如果有录像可以不用迁移, 但是需要修改地址到原2.2.7版本目录下地址)
2.迁移完成data目录后我们需要将vod目录下的源视频迁移到3.2.2版本的vodsrc内如下图:
3.在进行复制成功后我们启动服务发现数据已经同步过去了如下图:
在我们进行启动服务的时候会出现NO DSS SERVICE此弹窗一直报错
1.首先出现了此问题我们需要去看一下前台运行的服务问题是否有什么不正常的输出如下图:
(在此输出我们可以看到服务在去调取10010服务没有成功导致服务无法启动返回值500)
2.在看到了10010报错我们需要去查看kernel \ logs这个文件,我们来看下log文件内是否有报 错信息输出如下图:
3.如上图所示,我们发现我们的输出信息内包含了一个中文路径,我们来进行查看本地的路径是 否包含中文:
(我们可以看到,我们的部署路径是包含了中文的,我们服务部署的路径是不允许中文路径)
4.我们首先现将部署的服务复制到英文目录下如下图
5.复制完成后我们进入/kernel/conf/目录内进行修改easydss.conf配置文件,将里面刚刚的中文 路径修改为当前目录下的英文路径(请手动‘复制’)
6.在修改完成后我们进行重新启动服务来查看是否解决此问题如下图已解决:
在我们进行启动服务的时候会出现NO DSS SERVICE此弹窗一直报错
1.这个问题的原因是因为我们的easydss.conf文件里面的数据被清空,所以导致我们 的服务找不到系统配置的文件参数,所以导致服务无法正常的启动:
2.我们遇到此问题需要将同版本的安装包进行解压,将其下面的/kernel/conf/easydss .conf的配置文件进行拷贝到我们被清空的easydss.conf这个目录将老的easydss.conf这个配置 文件进行替换操作,这样我们在重新启动服务就可以正常使用了
今天再给客户处理现场的时候,发现了easygbs无法启动的问题,在任务管理器中显 示服务停止如下图所示:
造成这个原因的问题有许多,首先我们先进行查看是否有杀毒软件将服务的文件删除 查看是否用户手动停止了服务,查看重启服务是否可以生效
在EasyNVR中,这个问题的大部分导致原因是杀毒软件的开启杀毒,导致nginx被删, 但是在EastNTS中,发现用户并没有杀毒软件,但是还是会导致服务的停止运行,我们只能一步 一步的查找,在经过查找之后,来查看用户的端口是否被占用,NTS开启之后打不开网页,我们 就进行查找用户默认的NTS页面端口10090查看是否被占用,如下图所示:
经过排查发现,果然是端口已经被占用了,所以我们来更换一个端口,在重启服务查 看是否生效,如下图所示
在更改完成之后,我们来进行重启服务来查看服务是否正常
如上图所示,再更改完成之后竟然还是无法进行加载在经过排查,发现竟然还是端口占 用的问题,所以我们下次在进行更改端口之前就用netstat命令来查看是否被占用,尽量更改一个 不常见的端口号然后重启服务,就正常了:
如上图所示,在提前查找10084这个端口是没有被使用的所以我们可以更改为10084,然后 启动服务发现服务可以正常启动
PS:有的用户的服务器上面的服务非常多,所以建议大家下次再更改端口的时候先进行查看 端口是否被占用在更改端口
在客户的现场发现都是内网的配置,不涉及端口问题,但是海康摄像机却不能在我们的 EasyGBS上面进行播放视频。
1.如上图所示,我们会发现摄像头虽然已经在线了,但是却不能进行正常的播放而且一直 处于加载的状态,由于是同一个网段的网络不涉及到端口的问题我们这个时候查看配置是否都正确:
2.根据上图来查看,如果不细心的话我们是不能发现这个问题的,在摄像头的配置内SIP的 用户名有问题,而且这个有的并不是用户修改的,而是摄像头自带的SIP用户名,所以会出现可以级联 但是不能播放的问题,所以我们将此ID修改一下,将132修改为111发现就就能播放视频了
再给客户进行安装EasyGBS的时候,我发现竟然无法进行启动EasyGBS,在启动EasyGBS的时候 会出现卡住的问题,并且无法进行访问界面。
如上图所示,GBS会一直卡在上图界面(窗口启动),在服务启动之后无法打开页面
在进行查看我们需要安装EasyGBS需要的库和一些其他的配置文件,来进行将服务启动起来,如 下图所示,首先我们需要将这些配置文件安装在GBS的目录内:
之后我们在进行安装环境库,如下图所示
在安装完成环境库之后,我们在来启动服务发现就会正常的启动的
在客户现场发现国标级联的通道,刷新不出来的问题,这个问题可能导致用户无法查看当前的摄像头, 只能看到在线的状态。如下图所示:
原因分析:这个问题经过各方面的排查,发现问题发生的原因是客户的级联在线状态下被删除,如下图所示:
处理方法:这个问题如果进行了不正当操作会导致,被删除摄像头下一次连接级联的时候就会出现没有‘查看通 道’的链接,就无法进行查看,所以需要进行清除DB文件内的数据,如下图所示:
本地服务器数据库表:
被级联服务器:
在进行清理完DB数据后,需要在被接的级联服务器重启,并将原有记录删除,如下图所示:
在进行删除之后,我们需要在本地平台重新建立级联,并且需要将摄像头上传成功重新进行建立级 联,建立完毕后,需要将摄像头重新上传
Ps:重新上传这里有一个小BUG,我们需要按以下方法进行上传
点击【国标级联】,再点击【选择通道】,点击全选如下图所示
2.在点击【提交】后,会出现没有选中的现象,这个时候我们需要点击【全选】再点击【全选】这时 候这样的状态就是取消全选的状态,这时候会发现【提交】按钮可以进行点击,我们在取消全选的状态下点击 【提交】如下图所示:
3.点击完【提交】之后,我们需要重新点击【选择通道】,然后在进行【全选】点击提交,知道左侧 对勾可以全部保留即可实现查看通道的功能;如下图所示:
4.在提交成功之后,我们需要进行在被接的GBS平台上查看是否有【查看通道按钮】如果没有可以点击 【更新通道】来及进行查看,查看是否出现【查看通道】如下图所示:
今天在客户的现场遇到了一个这样的问题,客户的EasyNVR不可以进行后台启动,除了前台窗口启动其 他并不可以,就连Uninstall都不能进行运行。
原因分析:经过排查,发现是启动脚本的问题,所以,我们需要另一套后台启动的方法。
首先,我们需要在EasyNVR服务目录下启动cmd窗口,如下图所示:
在启动了cmd窗口之后,我们先查看后台运行的服务是否确定全部关闭了,因为有的时候后 台杀死程序杀不干净,如下图所示:
如上图所示,没有找到进程代表这个程序现在没有在运行
在确定没有任务进程的情况下,我们需要在cmd窗口开启服务如下图所示:
下图第一次没起来的原因是因为重复安装了EasyNVR
在进行重新安装EasyNVR软件之后,我们需要进行start运行一下,这样就可以进入后台运行的模式了。如下图所示:
1.首先进入华为云平台里面找到应用配置一栏,然后点到对接管理里面选择大连网, 这里就是需要添加我们SIP信息的地方
2.点击添加,然后配置我们的EasyGBS的平台信息
这里外域名称可以自己配置,互联协议选择GB28181协议;用户名配置我们的SIPID; 用户密码写入设备接入密码 注意华为云的密码要至少一个大写和一个数字,不能用我们的默 认的12345678,外域IP填平台的SIPHOST,端口填写SIP端口这里要注意 在配置好上述的信息 之后,下拉滚动条,一定要在是否启用NAT上面选择是,默认是否,不然无法获取平台的网关, 信息传不上来
3.一切顺利后可以看到我们EasyGBS上面平台在线了
4.然后在华为的云平台上面打开他们客户端,共享通道到EasyGBS就可以了
我们在使用EasyNTS上云网关进行拉转推功能的时候会出现报错如下图:
1.首先我们先去查看日志文件,如下图:
2.如上图我们可以看到,我们的上云网关在去源地址进行拉流的时候返回了【failed】,所以这个就说明 我们在进行拉流的时候导致了拉流失败,为了确定是否为视频源的问题我们首先先将视频源拿到播放器来播放一下, 看看是否可以正常的播放,如下图
3.如上图我们可以看到,这个rtmp的流放到VLC播放器里面也是不可以进行播放的,所以这边判断为是视频 源的问题,因为视频源没有输出,没有办法被我们进行拉到(网络正常的情况下,不排除防火墙等交换机路由器策略拦截)
4.为了排除是EasyNTS上云网关的问题我们默认在公网的EasyDSS平台去拉取一个rtmp的流来进行测试,看看是 否可以拉流成功并且成功转推到直播平台:
用户在使用EasyNTS上云网关管理平台的时候会出现正在使用的过程中突然就断掉了,无法进行登录页面, 并且重启服务也是一样
1.首先我们进行查看log日志输出,因为一般问题发生的原因会写入log日志内:
2.日志如上图我们发现我们的服务在写入C盘下的时候导致报错磁盘空间不足,所以我们来进行查看一下磁 盘的占用率:
我们可以看到C盘的占用率已经满了
3.根据此情况我们先进行清理我们已经满掉的磁盘,然后再进行启动服务:
(在清理完成后,我们的服务就可以正常地进行启动了)
什么是设备管理?
设备管理就是我们进行对我们的EasyNTS上云网关进行绑定到我们的EasyNTS管理平台页面上,绑定成功后我们就可以 实现穿透服务的使用
如何进行配置设备管理?
在我们的EasyNTS管理平台内的组网服务配置成功后,我们点击左侧列表的【运维服务】中的【设备管 理】功能,我们在此地方点击【添加设备】会出来一个配置参数窗口如下图:
在弹出的‘添加端口’页面填入所需的信息后点击【确定】如下图所示:
在完成配置后,我们将我们探测出来的EasyNTS上云网关的Web页面将EasyNTS上云网关管理平台提供的信 息参数填写进入EasyNTS上云网关的【平台接入】具体参数接入如下图:
在配置完成后我们的EasyNTS上云网关管理平台上面会发现我们的设备已经绑定成功了我们的EasyNTS上云 网关管理平台并且在EasyNVR上云网关管理平台里面的【设备管理】内的设备已经上线了
接下来我们需要将我们内网的服务穿透到公网上面去,我们点击【端口透传】,然后我们填写我们自己内网 的服务ip,端口然后会得到一个公网的ip+端口,通过这个地址我们就可以在公网访问我们的服务了:
在配置完成后我们的EasyNTS上云网关管理平台上面会发现我们的设备已经绑定成功了我们的EasyNTS上云 网关管理平台并且在EasyNVR上云网关管理平台里面的【设备管理】内的设备已经上线了
如何实现EasyNTS的拉转推功能的使用与配置?
1.首先,我们在成功将硬件的EasyNTS上云网关设备绑定到我们的EasyNTS上云网关管理平台之后我们点击右侧的 ‘远程设备管理器按钮’如下图:
2.点击‘远程设备管理器按钮’之后我们会出现下列的窗口界面:
3.如上图所示,我们点击【推流配置】窗口后会出现新增、上传、下载的按钮,我们在此窗口点击【新增】按钮, 来进行我们的视频拉转推的功能,具体的配置方法如下图:
4.在配置完成之后我们点击【确定】然后我们在我们的被推流网站进行查看,查看我们的流有没有被推到我们的平 台(这里以EasyDSS为例)
如上图所示,我们的EasyNTS上云网关拉转推功能成功实现。
用户在使用EasyNTS上云网关管理平台的时候会出现正在使用的过程中突然就断掉了,无法进行登录页面, 并且重启服务也是一样
1.首先我们进行查看log日志输出,因为一般问题发生的原因会写入log日志内:
2.日志如上图我们发现我们的服务在写入C盘下的时候导致报错磁盘空间不足,所以我们来进行查看一下磁 盘的占用率:
我们可以看到C盘的占用率已经满了
3.根据此情况我们先进行清理我们已经满掉的磁盘,然后再进行启动服务:
(在清理完成后,我们的服务就可以正常地进行启动了)
在客户现场出现密码忘记导致无法登录EasyNTS上云网关管理平台的一个问题
1.首先我们在忘记密码的情况下是无法进行登录Web页面的,所以我们需要在后台进行修改EasyNTS上云网关管理 平台的用户名密码,我们先找到管理平台根目录下的data目录,这个目录主要是进行存储上云网关管理平台的数据:
2.进入到这个目录后我们将easynts.db这个数据库文件使用数据库管理工具进行打开,并且找到user表如下图:
3.找到了nts_user表之后我们可以看见我们的用户名和密码,我们就可以直接在这个 表里面进行修改数据,请注 意,我们的密码是进行md5格式加密后的,所以我们需要在百度上将我们需要设置的密码进行md5加密然后在这个表格替换原 有的密码如下图:
将密码更改完成后我们保存退出,并且需要重新启动服务来进行重新读取一下数据库,然后我们就可以进行正常的 登录了
在客户现场出现了无法进行启动EasyNTS上云网关管理平台的问题
1.我们在发现EasyNTS上云网关管理平台无法启动之后我们第一时间要去先看一下log日志:
2.我们可以发现在今天启动的时候并没有生成日志文件,服务不生成日志文件是因为服务根本就 没有启动,我们点击uninstall卸载服务来将我们刚刚启动失败的服务彻底在清理一遍,然后我们打开Ea syNTS.exe进行查看,看看是否可以前台窗口启动:
3.我们点击前台窗口运行却发现在输出到此行的时候突然就自动关闭了窗口,多次尝试都是如此, 所以我们使用CMD命令行窗口来进行启动EasyNTS.exe来进行查看是否可以正常启动:
4.我们可以发现在使用CMD窗口进行打开的时候竟然可以正常的运行,并且Web端口也可以正常的 展示,所以我们可以得出有可能是因为权限的问题导致无法启动EasyNTS.exe,因为CMD是使用超级管理员 运行的服务,但是如果在图形化的EasyNTS.exe并不是超级管理员进行运行的,所以这两者是有权限上的差 距,所以我们来进行查看EasyNTS.exe的权限是否都已经开启了如下图:
5.如上图所示,我们可以发现,EasyNTS.exe的权限被禁掉了,所以才导致无法正常的启动,所以 我们需要将这个权限手动的进行打开将拒绝全部取消就可以了,保存退出,然后我们在使用服务方式启动来 查看是否正常的运行:
如上图所示,使用服务方式启动已经可以正常的运行了,我们在看一下Web是否正常:
如上图所示已经可以正常的运行了
客户在使用NTS的时候自行修改了密码,但是密码遗忘,无法登录
首先,我们先将特定软件传给用户,来准备给用户恢复原始密码
将软件传给客户之后,我们来进行将NTS的数据库文件导入到改软件之中(一定要先进行数据库的备份, 否则失败会导致数据丢失)如下图所示:
如上图所示,在打开之后,我们需要找到users的表,来进行密码的恢复
在找到数据库的表之后,我们需要将passwd这一栏的数据进行清空,来重新刷新NTS的密码如下图所示:
接下来我们需要进行在MD5加密网站进行密码的加密(因为数据库只识别加密后的密码)
加密网站地址:https://md5jiami.51240.com/
在进行加密之后,我们需要将加密后的密码来进行填写到数据库的password这一栏内,如下图所示:
填写完成之后,保存退出软件,来进行重启服务,查看密码是否生效
入图所示,修改完成重启服务之后可以进行正常的登录访问
此时EasyNTS服务配置已完成。如果要接入EasyNTS终端,需要在“设备管理”中点击“添加设备”按钮, 在弹出的“添加端口”页面填入所需信息后,点击确定。
在进行设定完成之后,我们需要进入到NTD终端的Web页面来将设备上线,如下图所示,我们先使用Ea syTool工具来探测终端的ip地址
可以双击设备来进行Web页面的登录,也可以使用ip:端口的方式进行登录默认端口为8
默认的账号密码为admin,登录之后的页面如下图所示:
在进行配置完成后我们进入NTS页面就会发现设备已经是在线的状态
用户在进行启动EasyNTS的时候无法进行正常启动服务,但是服务却可以显示ok,启动也是ok,但是在进行查找进程 的时候发现无法查找到EasyNTS正在运行
1.首先,我们先将服务停止,来确保服务为未开启状态
2.在进行停止之后我们来修改easynts.ini配置文件,使服务可以进行打印错误的报错信息,默认是不开启的, 在下方我会介绍如何使用打印的方式启动服务
3.打开easynts.ini配置文件将sys_debug的值修改为true
4.保存文件退出,然后我们在当前目录运行cmd命令窗口来进行查看打印出来的问题报错
5.在上图我们发现1883的端口已经被占用所以我们在配置文件将1883端口改掉即可
PS:本次注意的一点是修改让服务打印输出报错的方法,没有此方法无法查看到服务的打印报错!
客户在使用我们的EasyNTS穿透服务的过程中会因为测试创建设备,但是测试完毕后在进行删除设备后却无 法进行彻底删除
1.我们先来看一下具体问题:
如上图所示,用户在进行删除的操作之后,创建的设备虽然被移除当前页面但是并没有彻底的删除, 如下图:
在【已删除】界面我们会看到此设备,这个页面主要是为了防止用户等人误删操作导致设备下线, 但是也是无法进行彻底删除,并且下次在创建同样的名称的时候也无法进行创建,只能每次都要修改新名称, 如下图所示:
2.如果用户需要完全的删除,我们需要进行将数据库里面的指定的表进行一个删除操作
(1)打开navicat数据库将我们的NTS目录下面的/data/easynts.db数据库进行一下备份(即使 修改错了也可以进行恢复,导致数据不丢失)
(2)将数据库备份后我们将easynts.db数据库导入navicat软件内如下图所示:
(3)在进行导入数据库后,我们将其打开找到nts_device表,并将我们不需要的设备进行一个选中 删除,如下图所示:
删除之后我们在页面刷新一下就会发现设备已经被删除了
组网服务的功能可以理解它为一个VPN的服务,通过连接指定的IP地址来进行通信。
使用账号密码登陆后,在左侧列表中,点击“组网服务”选项
点击右侧的【添加本机服务】来进行添加一个新的组网服务
在点击之后会出现一个弹窗来进行填写指定的信息,如何进行填写信息的格式我已写入在图片内,如下图所示:
在进行添加完成后,我们就已经配置完成
在给客户进行远程的时候发现客户的NTS服务器无法进行启动,无法进行开启服务,对用户进行查看发现用 户更改了端口,但是并不影响
首先我认为是用户进行修改配置导致无法进行开启服务,但是进行查看发现并没有修改错误 其次我认为是用户的操作方式有问题,并且查看是否有端口被占用导致服务无法进行启动
首先来查看一下用户的配置如下图所示:
再进行查看的时候发现客户只更改了穿透服务的端口和Mqtt的端口和redis的端口,并且在 内网进行访问无法访问网页,通过127.0.0.1:port也无法进行查看NTS的服务页面
在进行访问的时候如上图所示,无法打开网页,更换浏览器也是一样,由于暂时没有排查出问 题,只能以试一试的心态,给客户更换了新的ini文件,但是更换之后服务竟然可以进行正常使用
让客户重新更改完之后进行重启服务发现,竟然又无法打开页面
经过排查发现,在本地修改是可以进行正常启动服务的,在客户现场无法启动,所以更改一下 字体的编码来测试一下,如下图所示
将编码格式更改为ANSI格式来进行查看是否可以进行启动
在经过测试发现确实可以进行查看,但是却出现了字体乱码的现象
所以判定问题为客户的使用记事本输出的字体与服务能识别的字体编码不兼容解决办法就是在 客户电脑安装第三方软件来进行ini文件的修改,或者使用写字板打开修改完成后服务可以正常启动
再给客户进行处理现场的时候遇到了NTS无法进行端口穿透的问题,只要一端口穿透就会提示【端口不存在】 【端口已被占用】等之类信息
由于第一次遇到此类问题,所以只能大致进行推断,查看是否是填写了重复的端口等问题
首先我们先进行查看服务的运行是否正常,然后进行查看端口是否被占用,但是经过查看发现端口并没有被占 用如下图所示:
但是页面却显示端口被占用等错误,如下图所示
如下图所示,虽然不能穿透但是服务都是正常的,设备也是正常在线,如下图所示:
如上图示,如果是配置错误的话,设备在线时间不会超过30秒,在30秒左右在线就断线了才是硬件或者服务 的配置文件有问题。
经过排查发现,主要的原因是因为用户的端口索引进行了更改,在使用手册中我说过,端口索引不要轻易的修 改,如下图所示:
客户将端口索引更改为了30000,默认的是10000,在底层的代码中,没有写入那么多的端口所以导致穿透服务失败。
遇到这个情况我们需要将配置删除,只能进行重新的配置,如下图所示
配置完成后再进行端口穿透即可发现服务穿透成功
在给客户处理现场的时候发现EasyNVR_Sevice已停止,无法进行登录EasyNVR登录页面,这个问题导致的 问题有很多下面是其中之一
这个原因导致的问题有很多,比如服务目录的权限被去除,比如手动被误关闭服务
首先先进行查看目录的权限是否有权限,如下图所示
如上图所示,权限都已经被赋予了,所以排除了是权限的问题
所以我们进行查看是否有杀毒软件来将我们的服务拦截,但是经过查看没有看见有杀毒软件,所以没发现 是杀毒软件进行拦截
但是经过排查发现,nginx目录下的nginx.exe被删除了,因为nginx.exe无法启动,所以就导致EasyNVR_Se vice服务停止,服务启动是能启动,但是EasyNVR_Sevice是停止的,在进行EasyNVR.exe的启动时候,我们发现无法 启动,这就是代表有问题,排查完毕后是nginx.exe被删除,我们只能在同版本的安装包内在进行拷贝出来一份,放到 nginx目录下查看是否可以进行启动服务
上图为nginx.exe被删除导致EasyNVR_Sevice不能启动
不过将nginx.exe恢复之后,EasyNVR_Sevice服务竟然还是在停止,我们再来查看,发现conf目录下面的ea sydss.conf也同样被删除,在询问过用户是否修改过数据后,我们同样进行将安装包下面的easydss.conf拷贝到conf目 录下,在进行查看是服务还在停止
如上图所示,我们发现,EasyNVR_Sevice停止原因是因为nginx.exe和easydss.conf被删除导致无法进行启动服务经过恢 复后服务已经可以正常启动
最近有用户反馈发现用户的海康硬盘录像机无法进行通过rtsp进行连接到我们的EasyNVR的Web页面上面
首先我们先来判断是否为用户的rtsp的配置问题,因为有的用户的硬盘录像机版本比较新,所以有一些老 的rtsp规则是不生效的,所以我们来进行rtsp规则的替换来测试是否为rtsp规则地址配置错误
2.如上图所示,在进行了rtsp地址的替换之后,视频页面刷新也是不在线,所以我们来接入正常的摄像头 来查看是否2为服务的问题:
如上图所示,我们可以看到,其他的通道可以正常的进行播放,但是我们的海康硬盘录像机同样也是不在 线的,而且最奇怪的一点是海康的rtsp的任何规则都无法播放,放到VLC播放器里面也是无法播放,但是在硬盘录 像机的预览页面却是可以进行正常播放
4.所以经过测试我们排除为EasyNVR服务的问题,所以我们进入硬盘录像机,再考虑到硬盘录像机可以观 看视频,所以暂时排除为摄像头与硬盘录像机之间传输的关系,所以我们要在硬盘录像机内查看摄像头的配置
5.在经过调试之后我发现摄像头的下列配置无法进行传输rtsp流到NVR或者VLC上:
6.经过测试发现,使用下列配置可以进行rtsp流的输出到EasyNVR或者VLC播放器
经过分析大概认为第一视频类型的格式需要修改为视频流,而且分辨率不易过高,第二视频的帧率如果为全帧率输 出的帧过多,可能导致NVR拉不到流。
我们在运行EasyNVR的时候会发现我们无法进行查看hls的流
1.首先我们进入到nginx/www/hls/这个目录下,我们发下在这个路径下方没有生成ts的文件:
2.因为没有生成hls的流原因有很多,首先进行检查目录没有读写权限:
3.我们如上图可以看到,我们的权限都是有的,但是却没有生成hls流,但是我们在关闭nginx服 务后发现nginx.exe这个服务并没有停止,所以我们使用任务管理器将nginx.exe进行强制关闭如下图:
再强制杀死nginx之后我们在进行启动服务发现hls可以正常播放了,出现这个原因主要是因为以前 老版本的EasyNVR使用前台exe进行启动,但是进行停止的时候之间点了X关闭而不是crtl + c 所以导致老 版本的EasyNVR路径和新版本的EasyNVR路径不一致存放位置发生变化导致hls流无法进行生成ts文件,所 以导致无法播放hls流
在我们新发行的EasyNVR版本中(4.1.0),在进行级联到EasyGBS平台的时候会出现一个必现的问题,在我们进 行配置成功之后,我们EasyNVR的视频并不会直接被级联到EasyGBS上面
1.我们先来看一下如何进行配置
如上图所示,我们现打开【系统管理】下面新添加了一个【国标级联配置】功能,这个功能的开启代表了我们 可以将EasyNVR里面的所有视频连接到EasyGBS的平台内,我们点击【是】来进行启动该功能
2.在进行开启功能后我们需要EasyGBS的参数来和EasyNVR的参数进行配置,具体含义如 下图:
3.在我们进行正确的配置之后我们可以看到,我们下方的提示字符还是为Not Running,如下图所示:
如果遇到了此问题,我们在进行正确配置之后需要重启服务。
在重启了服务之后我们再来查看会发现状态已经刷新为了Running,如下图所示:
4.在状态为Running之后,我们需要登录EasyGBS平台来进行查看是否生效:
如上图所示,此界面为EasyNVR成功接入EasyGBS的界面
(此延迟只是对比摄像头输出的流与EasyNVR平台输出的流进行对比)
1.打开在线秒表或(手机秒表),将摄像头对准显示器或(手机)
2.打开EasyPlayer播放器,将摄像头的rtsp地址填入到EasyPlayer播放器左下角内
EasyPlayer下载地址:
https://github.com/tsingsee/EasyPlayer-RTSP-Win
3.获取EasyNVR的RTSP流
(1)打开EasyNVR页面,打开通道内的视频
(2)F12打开‘开发者模式’找到‘getchannels......’进行双击如下图所示
(3)在下图的界面我们将模式修改为RTSP(如果想要测试其他格式的流可以进行修改HLS,RTMP,FLV等)
(4)修改完成后我们将RTSP流进行拷贝到EasyPlayer进行播放
PS:这个流是平台拉取摄像头的流之后,进行输出的RTSP流
在同时获取了摄像机的RTSP流和平台输出的RTSP流进行一个比较延时,来查看延时时间。
(对比延迟时间在最后可以进行截图查看)
在有些客户在通过postman第一次调用与通道配置相关的接口的时候会出现 未经许可的结果:
而在浏览器中第一次调用则能显示通道内容
这是因为在浏览器中会有缓存,再次访问的时候,软件会调用session缓存,然后将我们的账号 信息直接调用了 但是在postman中并没有缓存 所以在调用通道接口的时候会提示未认证,这时候要在 postman中调用登录接口登录一下 再调用通道接口就可以了
在我们4.1.3的EasyNVR的版本我们发现无法调用了登录接口,调用登录接口返回为‘密码加解密错误’
1.如下图所示我们在进行调用登录接口的时候返回‘密码加解密错误’
2.如上图所示,我们在调用了登录接口的时候出现了‘密码加解密错误’由于这个是前端调用接口的返回 值不输出到log日志内,但是此问题出现的原因有两点,第一点就是我们的密码输入不正确,第二点就是我们调 用登录接口的时候,验证的密码为md5加密的格式,但是由于4.1.3的版本传输密码的安全性提高,所以我们在将 密码进行md5加密后,默认进行二次RSA格式的加密,所以导致调用我们的登录接口实际识别的为RSA加密后的md5 格式的密码,所以才会出现‘密码加解密错误’
3.我们需要进入到EasyNVR的目录下找到easynvr.ini配置文件,将里面的RSA改为关闭如下图所示(如 果自己的版本为4.1.3加密后的密码md5值正确后使用下方解决方案):
4.在修改完成配置文件之后,我们进行重启服务重新加载一下配置文件,然后再进行正常的调用登录接 口,我们发现调用就可以成功了
多种方式获得直播页面的方式:
在我们EasyNVR可以通过多种方式获得播放地址
比如说通过接口来得到视频流的播放地址,例如:在本地开启个easynvr的服务,在地址栏里面输入: http://127.0.0.1:10800/api/v1/getchannelstream?channel=1(注:channel是指通道号) 然后回车
这里url就是播放地址,默认是RTMP格式的,如果要是客户需要获取其他格式的可以在地址栏后面输入
http://127.0.0.1:10800/api/v1/getchannelstream?channel=1&&protocol=HLS(这里拿HLS格式举例)
注:目前支持RTMP,HLS,FLV三种格式 ,三种格式都可以在protocol配置
第二种方法 在播放页面中按F12然后点开播放选项条获取到播放地址
注:要把后面的时间戳去掉才可以播放(从@_将后面删除)
前两种方法获取到的播放地址在页面里面不能直接播放 要在播放器中才能播放,第三种方法是能够在浏览器中直 接播放的
打开播放的页面:
其中在这里的ifame地址是可以在浏览器中直接播放但是需要前端的页面集成 不能拿来直接用
在客户现场更新到了4.1.3版本,导致EasyNVR无法被加密机进行授权成功。
1.出现这个问题是因为我们更新到了4.1.3的版本,在这个版本里面添加了RSA算法的模块所以导致我们的 授权无法被正确加载:
2.为了可以让我们的加密机正常的授权我们可以将RSA关闭,修改easynvr.ini如下图:
在修改完成后我们的加密机就可以正常的授权了
我们在进行EasyNVR重启之后发现我们的登录平台一直循环的卡在登录页面无法进入首页页面(密码账号正确无误)
此问题导致的原因是因为我们的磁盘空间比较小,不足以容纳7天的录像,但是我们的EasyNVR里面开启的录像天数为7 天,所以导致没有触发删除机制,导致我们的磁盘空间爆满,所以无法循环卡在登录界面
1.首先我们在linux使用df -h . 来进行查看磁盘空间是否已经爆满
2.在发现满的情况下这个时候我们需要进行手动的清理出来磁盘空间,但是我们现在可以让其自动的进行清理空间( 仅对于最新版本4.1.3)
我们打开easynvr.ini配置文件进行修改下方的阈值,来达到磁盘空间占用到某一个值的时候自动删除最老的录像数 据,来进行释放空间:
3.设置完成后我们重启服务,来使配置文件生效,在下次我们就会发现录像占用的空间到80%的时候就会默认删除最老 的录像,并且不会再出现在登录页面循环的问题。
我们发现我们已经开启了录像,但是在录像回看的发现没有数据,导致没有办法看到录像。
1.首先我们先查看录像存储路径的位置,然后根据位置查找相对应目录进行查看下面可有录像:
2.我们在找到相对应的目录之后我们发现没有权限进入该目录
3.虽然我们不能进去但是不一定代表没有读写权限,所以我们来看一下/nginx/logs/error.log我 们来查看此文件来看看报错
4.经过查看我们发现确实没有读写权限,所以我们需要设置权限来让我们的服务可以进行正常的读 写录像数据:
5.我们鼠标右键打开属性来将权限进行更改
在将权限更改成功后我们在EasyNVR就可以看到录像的文件了
在用户现场需要将3.3.1版本的EasyNVR升级为4.1.0版本的EasyNVR,但是我们的数据库格式发生了改变, 这个如何解决呢?
1.首先我们先查看录像存储路径的位置,然后根据位置查找相对应目录进行查看下面可有录像:
2.将数据库下载之后我们停止3.3.1的EasyNVR服务,然后安装3.4.7的EasyNVR的软件包,一定要安装3.4. 7版本的EasyNVR的软件包然后运行服务,进入Web页面的【通道管理】进行上传如下图:
如上图,我们将下载下来的xlsx文件拖拽到3.4.7的版本下进行数据上传。
3.在上传完成后我们发现这时候数据已经同步到了3.4.7的版本上,我们接下来需要在此将数据文件进行下 载(3.4.7版本NVR相当于一个转换数据库的工具)
4.我们将3.4.7的数据库下载到我们电脑上之后,我们重复上述操作,将数据库导入到4.0以上的版本如下图:
这时候我们会发现数据已经同步到了4.1.0的版本上
在客户现场9路的视频,突然有一路不能进行播放,没有数据流生成,但是快照显示在线
1.首先我们先查看录像存储路径的位置,然后根据位置查找相对应目录进行查看下面可有录像:
这个就说明nginx的运行是正常的并不是因为nginx挂掉导致视频流无法播放。
2.通过使用VLC播放器播放正常的视频流我们可以和不能播放的通道进行一个对比来进行查看摄像 头参数的配置是否正确
3.在看到编码格式不同后我们进行更改视频参数内的编码格式和视音频格式,将其调整为可以播放的 IPC的编码格式,然后我们来进行查看效果(视音频格式需要调整为AAC格式或者只输出视频流)
可以正常的进行播放了
在使用EasyNVR硬件的时候,有的时候我们的硬件会被用户的环境非正常关闭,比如说正在使用的过程中, 机房突然断电等问题,会导致我们重新启动EasyNVR硬件并不能进入到图形化界面,而是进入到了initramfs界面, 导致系统无法正常启动。
1.首先我们会发现不管我们如何重启EasyNVR的硬件,进入的页面都不是正常的系统界面,而是进入到了 intramfs磁盘修复页面如下图:
2.在多次重启未果后,我们需要解决此问题,首先我们先输入下列命令来将磁盘进行修复: fsck -t ext4 /dev/sda1 (/dev/sda1是根据自己的系统报哪个磁盘坏了就输入哪个磁盘名称)
3.如上图所示,会出现很多问题这里我们全部输入yes或者y即可如下图:
4.在进行全部输入完成y之后,我们需要对系统进行一个重启的操作,命令如下: reboot
5.在进行重启之后我们就会发现系统已经正常了,已经可以进行登陆到图形化桌面了,如下图:
6.我们可以进入到系统界面之后,就可以正常的进行验证EasyNVR视频是否可以正常地播放了:
EasyNVR硬件由于用户网络、环境等问题,导致无法进行dhcp分配ip,并且无法进行与服务器的通信,导致无法使用设备, 无法访问页面
这个问题发生的原因是因为对方的网络环境导致无法分配DHCP,所以我们需要将用户的ip修改为固定ip
首先我们在硬件EasyNVR连接电脑显示屏,键盘等
在安装完成后,我们选择easynvr用户登录,登陆的密码为: EasyNVR@6418^#!123
首先我们线看一下是否没有被DHCP分配: ip add
查看到网卡信息之后如果跟下面图片一样我们要输入: sudo su (这时候会出现输入密码,跟密码一样就可以)
在进入到管理员权限之后我们输入下入命令: cd /etc/network
这条命令就是进入到/etc/network
vim interfaces
接下来我们需要修改interfaces,将里面的数据修改为下列格式
auto enp3s0
iface enp3s0 inet static
address 192.168.2.201
netmask 255.255.255.0
gateway 192.168.2.1
dns-nameservers 127.0.1.1
含义解释如下:
address 是ip地址
netmask 是子网掩码
geteway 是网关
其他的参数不要变
如上图配置完成之后我们进行刷新网卡:/etc/init.d/network-manager restart
如上图一样在出现绿色的OK之后我们进行重启硬件
在登陆上来执行ip add即可看到网卡信息,就可以与服务器进行通信了
用户在收到硬件之后自行进行修改了网卡配置导致不在线,并且又配置了/etc/network/interfaces, 导致网卡配置混乱,图形化的配置网卡页面消失,网络除了同网段无法出去公网
1.首先我们先将图形化的配置网卡页面给调回来
由于图形界面使用的是 network-manager,所以需要修改重启
(1)输入 service network-manager stop将network-manager停止
(2)输入cd /var/lib/NetworkManager
mv NetworkManager.state NetworkManager.state_bak
此步骤是将此文件进行不启用,为了防止意外我们不进行删除,只进行更改名称让其失效
(3)输入 vim /etc/NetworkManager/NetworkManager.conf (把false改成true)
更改完成后同时摁shife + : 然后输入wq 在摁回车就保存了
(4)保存完成之后我们在命令行输入 cat /etc/NetworkManager/NetworkManager.conf 进行 查看我们配置的参数是否修改成功
(5)输入 touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
注意一下这一步千万不可以打错,要不然是不会生效的
(6)输入 service network-manager restart 运行这条命令之后我们在setting图形化配 置里面应该就会发现图形化的网卡配置页面已经出来了
(7)执行重启之后我们去看图形化界面的网卡配置是不是出来了如下图:
2.当图形化网卡配置页面出来之后我们需要将图形化网卡配置关闭让其不生效如下图:
点击Remove Connection Profile将我们以前配置的网卡进行删除并且关闭图形化网卡配置的页面
3.关闭之后我们重新配置/etc/network/interfaces,输入下方命令vim /etc/network/interfaces 进入到修改配置页面我们重新书写我们的网卡配置文件如下图:
(IP地址,子网掩码,网关根据自己的现场环境进行配置)
4.修改完成之后shift + :退出我们使用下列命令来查看是否配置成功:
cat /etc/network/interfaces
5.在修改完成网卡的配置文件之后我们将DNS参数写入到/etc/systemd/ resolved.conf配置文件内,命令如下: vim /etc/systemd/resolved.conf
将DNS前面的‘#’删除并且在‘=’后面填写自己的DNS服务器或者8.8.8.8或114.114.114.114
在配置完成后我们进行shift + :并且wq退出,退出之后我们使用下列命令来进行检查一遍,查看是 否配置成功: cat /etc/systemd/resolved.conf
6.在检查之后如果参数正确那么我们就可以重启EasyNVR硬件服务器,然后我们执行下列命令查看是否 可以连接到公网: ping www.baidu.com
如上图即为成功
客户的现场在使用我们的EasyNVR3.4.7的版本使用onvif进行探测,提示探测成功,但是却不在线, 奇怪的是探测出来的地址在VLC播放器也是无法进行播放
1.首先我们先进行重新探测查看是否无法播放:
2.如上图所示,我们已经探测成功,然后我们在来看一下【视频广场】下的视频在不在线如下图所示:
3.在上图我们可以看到,虽然已经探测成功了,但是却显示‘不在线’而且log日志也会提提示此报错:
4.用户的EasyNVR和摄像头之间是可以进行通信的,端口也是开放的,唯一就是不在线,所以我们登录摄 像头的Web页面,来进行查看是否配置的参数有问题:
5.如上图,我们如果不仔细查看会忽略Smart264为开启状态,如果开启了Smart264那么即使onvif成功 的探测出来,视频也是不在线,所以我们需要将此参数调整为【关闭】,调整完毕保存后,视频正常在线,播放
再我们进行级联完成EasyNVS后有的时候我们打开页面会报错‘请求服务不存在或已停止’如下图:
1.首先我们可以看到日志保存里面并没有关于此保存的问题如下图:
2.经过测试发现,出现我们上述的问题的原因是因为我们的EasyNVR进行级联到EasyNVS上后的ip地 址是多少,就必须使用此地址进行访问否则就会出现上述报错的问题,所以我们的机制就是级联的EasyNVS的 IP是多少我们就需要使用此IP进行访问EasyNVS上面的对应的通道视频:
在解决客户现场时,客户提出了一个要求,就是如何在EasyNVR4.0.0版本进行rtmp的播放,因为我们的 EasyNVR4.0.0存在BUG问题,就是http格式的页面无法进行查看RTMP格式,如下图所示
经过询问研发,发现是BUG问题,但是问题来了,客户需要通过我们的RTMP流进行输出,这个时候该怎么办?
经过我的测试,虽然http格式的没有RTMP地址F12也无法查看到,但是EasyNVR4.0.0版本的https的格式是 可以进行查看到RTMP的https的流如下图所示:
我们将RTMP的地址复制出来在VLC查看是否可以进行播放:
如上图所示在我们进行播放的时候无法进行播放
经过本地复现和测试发现是播放器的问题,目前如果客户使用4.0.0版本进行拉取RTMP流的话只能将摄像头 的编码设置为H264
如上图所示,将摄像头的编码设置为H264的时侯,RTMP的视频可以正常播放,并且其他平台也可以正常拉到RTMP的流
在给客户进行处理问题的时候发现windows的以服务启动无法启动和卸载(install,uninstall)
这种问题还真的是第一次遇到,只有一步一步的排查,没有经验可循
首先我们来进行install来进行启动查看是否可以进行启动服务如下图所示:
在我们进行启动服务的时候发现图标发生了变化,而且无法启动服务,显示此应用无法在你的电脑上运行
经过分析认为应该是电脑中病毒了,并且对文件进行了篡改,导致服务无法进行启动,所以我的解决办法就 是将同版本安装包内的install和uninstall程序来进行替换被篡改过的程序,启动服务查看是否正常
如上图所示服务已经正常启动
客户在使用其服务器查看直播版的EasyNVR的时候,会出现卡顿、重复、循环播放某一段视频的问题
针对于这个现象结合现场的环境,发现导致这一现象的原因是因为客户的磁盘读写能力不足,导致视频 无法进行流畅的播放
由于是磁盘能力不足我们可以使用虚拟磁盘来模拟磁盘提高磁盘读写能力
针对于此问题,我们可以下载一个RamDisk软件,如下图所示:
通过上图的RAMDISK工具可以将本机的内存转换为磁盘存储,这样做的优势就是磁盘的读写能力大幅度 提高,但是此类方法不适用于存储录像,因为作为内存创造出来的磁盘在关机重启之后是不会保存数据。
在RAMDISK磁盘被创造出来之后,我们需要将/htl进行迁移到新建的虚拟磁盘当中,我们需要修改/n ginx/conf/easydss文件如下图所示:
找到/www/htl将其路径修改为‘Z(虚拟磁盘):\htl’如下图所示:
保存文件,重启服务并验证,我们会发现磁盘视频的存储、读取更改为了Z(虚拟磁盘)下,从而解决 了视频的卡顿、不能流畅播放的问题。
客户在使用DSS直播的时候开了五路的直播,但是却占用了十路的通道
首先在不确定的情况下要先查看/easydss/kerne目录下的easydss.conf文件,
如上图所示,找到http端口。
在找到http端口后需要查找getlivesessions接口如下图所示:
在找到了getlivesessions后登录127.0.0.1:(http端口)/getlivesessions,会出现下图界面
根据图上所示会发现一个DSS直播却占用了两个通道,一个是直播所占用的通道,还有一个是因为直 播开启了录像保存,所以在老版本的软件中会占用一个通道,所以会导致,客户明明有十个通道却只能使用五 个通道
我们需要在官网下载最新的安装包(由于这个问题最主要的原因是版本的问题)
所以我们需要更新版本,如下图所示
将上图两个文件拷贝到最新版本的DSS服务目录下即可,启动服务查看是否正常。
今天在给客户解决无法探测到onvif的时候,用过了许多方法都无法进行探测到
造成此原因的方法有很多,我第一想法是查看摄像头配置内是否开启了onvif,或者是否支持onvif
下图是不支持onvif协议的设备
在进行查看摄像头内的onvif协议已经开启了之后,我使用Easytools工具进行查看是否可以探测到摄像头:
如上图所示我们并没有探测到192.168.99.111的摄像头
但是我们可以进行ping通
再进行本机ip的查看时候,发现本机的ip为1网段的ip,但是摄像机的ip为99网段的ip,虽然通过交换机可以 进行ping通但是onvif却不能被探测到.168.99.111的摄像头
我们需要将以太网的ip更改为99网段的ip来与摄像头进行同一网段即可探测
在3.4.7版本的EasyNVR进行级联NVS的时候,我们会发现无法进行级联成功并且会在Running和already之间进行刷新
1.首先我们在查看问题输出为【设备序列号】already,大概的意思就是设备序列号重复了,因为在EasyNVS里面设备序 列号是不可以重复上传的。 但是经过联系上级平台删除之后在重新上传发现还是报同样的错误
2.我们来排查一下本地的EasyNVR的问题,首先进行重启服务查看级联NVS是否成功:
3.在经过重启之后服务依然是进行报同样的already的错误,但是其他的功能全部都是正常为此,我们来进行一个本地的 测试,我们在本地启动一个NVS,或者在内网启动一个NVS
(注意3.4.7版本及以下版本的EasyNVR必须使用2.0版本的NVS才可以进行兼容)
4.在本地进行EasyNVR和本地的EasyNVR测试之后也是完全可以进行级联到NVS上面并且也没有进行反复的离线上线
5.本地测试完成,(如果有条件)在云服务器部署EasyNVS来测试是否能进行级联,在我云服务器上测试结果同样是完 全没有问题的
6.但是在进行重新级联到上级NVS还是反复上线下线,其他NVR级联上级NVS也并无此情况,所以可以得出结论并不是NVR 和NVS的问题,而是其中的传输出现了问题,但是端口等配置全部正确
7.在经过网络调查发现,我们的Easy'NVR如果是连接的移动的网络就会对联通的EasyNVS进行反复掉线,上线的问题, 所以我们下次遇到此问题,需要查看使用的公网运营商是否是移动,NVS是否是联通
PS:在此进行建议大家在部署EasyNVS的时候使用云服务器
打开视频,点击【其他设置】,F12打开开发者工具(如果没有请F5刷新)
我们打开网页如下图
得到上面的网页之后,我们进行修改http地址来获取rtsp流
在进行回车获取新的页面就有RTSP流了
1.首先,我们在获取到商务发送的授权之后,我们需要将此pem文件拷贝到EasyNVR的服务器上面, 拷贝完成之后我们需要打开EasyNVR的目录如下图:
2.在进入到此目录后我们将private.pem的文件删除然后将我们商务发送的新的授权文件放入到 EasyNVR的目录下并且更改名称为private.pem如下图
3.更改完成名称之后,我们需要进行重启服务来重新加载授权文件,如下图:
重新启动后我们登录EasyNVR的Web页面后点击版本信息,等待30S授权会加载上来
今天再给客户进行远程解决硬件的时候,进行更新到了3.4.7的版本,但是出现了一个问题就是,在easynvr登录界面无法 进行登录,账号,密码全部都为正确,但是却反复循环的出现登录的界面
最开始,我进行自我分析认为是前端的问题所以,我打开了F12进行开发者模式进行查看,但是并没有有用的信息,所以在 此进行分析,再考虑到应该不是压缩包的问题,但是出现这个问题很费解,我想到了数据库的问题,故而打开数据库进行查看,如 下图所示:
在网上进行easynvr字符进行加密如下图所示:
所以得出来结论是数据库并没有错,只有查看其他的配置文件
在经过查找配置文件的时候我发现了用户的原版本为3.3.0版本,其授权方式并不是进行pem文件授权,而是直接写入进了 easynvr.ini配置文件内
由于需要拷贝用户数据,所以直接进行拷贝,粘贴,但是3.4.7版本并不认3.3.0版本的授权文件,而是读pem文件,但是 easynvr.ini文件内有授权编码,但是服务却不认识,导致授权虽然过来了,但是登录之后进行循环出现登录界面的问题。
这个时候我们需要手动配置easynvr.ini文件,将错误的easynvr.ini文件进行替换即可
在最近有客户反应,在进行查看录像回看,发现没有数据,用户并没有进行删除录像的操作,但是录像却查找不到
首先我们先进行分析查找/nginx/conf/easydss.conf文件进行查看录像的路径在哪里(有些用户习惯单独放入单独 磁盘)如下图所示:
查看record录像目录的地址,进行查看用户自定义的地址是否存在。
在找到record目录之后,我们顺着查找到的地址去看看有没有record这个目录如下图所示:
在上图输入命令pwd 发现record目录是存在的,这个时候我们进入里面查看是否有录像如下图所示:
在这个时候发现里面是有数据的,但是只有一天的视频,接下来我们来查看是什么原因导致无法进行查看录像
在进行自我分析之后,我想到了一个可能,有可能权限被更改,所以输入ll命令来查看权限是否正常:
再上图我们可以发现,record目录的权限是由问题的,我们这个时候我们就进行修改权限(一定要是管理员登录) 如下图所示:
在进行权限更改之后我们在页面就可以正常查看录像了(但是权限没开启的那几天录像就没有被保存)如下图所示:
客户在查看EasyNVR的时候,出现了无法进行查看视频的问题,视频显示为黑屏,没有提示,状况跟265版本无法播放 的问题如初一辙,但是问题原因却不相同,如下图所示:
首先判断是摄像机的编码问题,因为一般有的用户使用265,当视频编码为265的时候4.0.0以下的版本无法进行播放, 但是用户的摄像头为264,并不是265,所以排除了视频编码不对的问题。
这个问题的原因非常难找,因为在VLC中竟然都无法播放这个视频,而且在VLC中没有任何数据,也没有任何输出,所 以,我们需要进入到服务器下进行查看参数是否正确,如下图所示:
上图为VLC播放,没有任何提示和报错
如上图所示,我们只看到用户修改了WEB页面的端口号,别的参数并未修改,我们进行/nginx/conf/easydss.conf的 文件查看,但是由于参数太多,无法快速查看用户是否修改我们使用
如上图所示,在linux中使用vimdiff命令进行两个文件的比对发现,用户修改了rtsp是否进行验证用户,用户修改为 了’on’但是配置文件默认为off,所以我们将其修改为off。或者进行网页上的rtsp的地址修改,将前面加上rtsp的验证用户名 密码也可以正常播放
如果用户需要验证就如上配置即可
再给客户解决问题的时候遇到了无法进行视频播放的问题,客户的版本是EasyNVR3.4.7版本
一般3.4.7无法进行播放主要的原因就是摄像头的编码为H265的格式
一般3.4.7无法进行播放次要的原因还有用户摄像头设置的码率太高带宽跟不上导致无法播放
首先查看用户的视频是否为H265的编码格式如下图所示:
通过上面的图片我们可以看到,客户的主码流为H265的格式,但是子码流为H264我们来进行查看 通道配置来看看用户的配置:
通过上图我们可以看到,客户使用的是大华摄像机的子码流,也就是H264格式,但是却无法进行播放:
用户使用的是子码流,而且通道都是按需播放,不存在带宽不足的问题,所以我们进行查看其他的配置:
在查看easynvr.ini文件之后,发现并不是强制开启了HLS的播放格式,而且在Web页面HLS格式也无法进行播放
经过查找发现是/conf/easydss.conf被修改,导致页面无法进行播放,用户将直播禁掉了
我们将off修改为on即可
再给客户进行升级版本的时候发现用户的数据并没有被迁移,而且上传数据也是无法进行上传
判断改原因为easynvr.ini配置文件的版本格式不同(此版本为3.4.7迁移4.0.3)
Ps:此版本只针对于3.4.7,Linux版本
首先我们再进行数据迁移之后查看easynvr.ini配置文件,如下图所示:
导致数据无法加载的原因是因为3.4.7的linux版本缺少一行数据,我们如果想让3.4.7的easynvr.ini配置文件正常生效可以进行如下操作, 如果原easynvr.ini配置文件无修改则可以不用迁移easynvr.ini
; root:123456@tcp(123.56.99.5:3306)/test_easygbs?charset=utf8&parseTime=true
default_user=easynvr
default_password=ec6206d95f5772323792621ad25ffedf
default_role_name=admin
default_guest_user=guest2020
default_guest_password=fadd717114ed704854b406ffc183f3d1
default__guest_role_name=guest
我们需要将上方的数据拷贝进easynvr.ini配置文件的最上方位置如下图所示:.4.7版本
修改成功退出后我们来进行‘cat’查看
如果一致就进行重启服务即可成功之后如下图
在进行配置EasyNVR硬件设备时,会出现可以ping通内网地址例如(192.168.99.199)但是却无法ping通外网地址例如 (无法进行wget下载)
可能出现这个问题的原因是因为DNS的解析出现了问题,如图所示:
可以在/etc/resolv.conf这个文件进行修改DNS的地址如图所示
在进入当前的配置文件内后将‘nameserver’后的参数修改为8.8.8.8如图所示:
当配置完成后,可以使用wget进行测试下载,看看是否下载成功,(成功如下图):
PS:以上方法只适用于不重启的状态下,如果开启自启也要的话建议干掉原配置文件, 自己写配置文件。(/etc/resolv.conf)
在进行配置EasyNVR硬件设备时,nts.easynvr.com:10090界面上显示设备离线如下图所示:
这个问题也是居于网络上的问题发生的,但是第一种方法并不能适用于此类问题(第一种发法无法解决可以尝试)
(1)在进行配置完毕后需要使用nmtui将里面配置的网卡删除如下图所示:
(2)删除完毕后,需要进行编写network的配置文件,如果没有需要自行创建,路径为/etc/network/interfases 将里面的数据清空,并进行编写,如下图所示:
(3)手动设置DNS地址,将原有的/etc/resolv.conf 更改名称为 /etc/resolv.conf_bak,更改完之后需要进行创 建/etc/resolv.conf并进行配置如下图所示:
(4)修改完之后需要进行reboot重启,然后进行ping查看是否能通:
只要开机可以ping通即可在线
近期有客户进行反应,我们4.0.0版本以上的EasyNVR进行级联NVS的时候可以进行级联上去显示Running但是在NVS上 面却显示该设备视频没有查看到通道,并且无法进行查看视频、
发生此问题的原因是因为我们的4.0.0版本及以上版本多了一个【用户管理】的功能,所以我们在对接NVS的时候会发生 需要填写用户的操作,会根据用户的权限进行上传到NVS,所以我们在用户名需要填写正确的用户名
Ps:用户名可以在【用户管理】内进行查看,如果上传全部通道默认填写easynvr
1.首先我们先登录EasyNVR的页面,进入到级联NVS第三方平台功能的页面,查看用户名填写的是否正确
2.经过上图我们可以看到,在我们的用户管理内并没有admin这个用户,所以服务默认为没有通道可以进 行查看,就导致NVS内无法查看到视频只能看到通道数量,所以我们需要修改用户名为正确的,我们就填写默认的 easynvr如下图
3.在经过查看后我们发现NVS上面的通道已经是可以进行正常观看了:
用户需要调用公网的流地址等接口信息,但是EasyNVR没有固定的公网IP地址,故而进行级联到EasyNVS平台, 那么如何通过EasyNVS平台调用我们的EasyNVR的接口呢?
1.首先我们先进行将EasyNVR级联到我们的EasyNVS上如下图:
2.在调用通过EasyNVS调用EasyNVR接口之前我们需要先进行调用EasyNVS的登录接口如下图所示:
3.在进行级联到EasyNVS后我们使用调用工具来通过EasyNVS调用EasyNVR的接口,规则如下图所示:
在进行配置硬件EasyNVR的1T录像版的时候会发生一系列的问题导致配置失败,故总结出文档如下
1.首先在进行安装界面进行安装
2.在此步选择系统自带的磁盘,不要选择1T因为1T的磁盘需要进行存储录像,一旦满了之后如果系统 安装在此磁盘内会导致无法启动,所以我们需要选择32G的磁盘作为系统盘。
3.选择完成之后我们进行强制格式化如下图
4.在进入系统后我们先sudo su进入管理员然后进行apt-get update来更新yum源的库
5.更新完成我们安装ssh来传输文件:apt-get -y install ssh
6.将EasyNVR等安装包传输进Ubantu系统,然后我们进行赋予权限: chmod +x install...... chmod 777 install
7.我们先使用fdisk -l命令来进行查看我们的1T磁盘叫什么名字如下图:
8.在获取到我们的1T磁盘名称后我们需要格式化1T磁盘mkfs.ext4 /dev/sda
9.如上图运行完成之后我们进入脚本修改一下,如下图打开注释
10.在倒数第二行我们也将注释去掉并且将其参数修改为我们的磁盘名称,如下图光标处:
11.在进行修改完成后,我们根据脚本在’/’下创建一个data目录并且进行查看如下图:
12.创建完成后,我们./install....进行运行脚本,等待重启,重启之后我们使用df -h命令来进行查看我们的磁盘 是否进行挂载成功....
在我们使用Chrome浏览器进行播放我们的EasyNVR的视频流的时候,我们会发现,在windows内的内存会占用的越来越高
首先chrome是用ppapi的flash,该类型的flash插件会将缓存存在内存中,所以进行观看视频时间越长,内存消耗越大, npapi类型的flash会将缓存存在硬盘上,降低内存占用
1.如果是使用谷歌浏览器的话我们可以进行添加一个重启的书签如下图进行配置
(1)首先打开书签编辑或者(crtl + D)
(2)在出来添加书签的界面之后我们点击【更多】如下图:
(3)在下图我们进行配置书签的名称、地址以及存放的书签目录如下图:
(4)添加完成后我们在标签页面可以找到我们创建的标签,点击运行就会释放内存如下图:
2.点击之后会释放内存我们来看下内存的释放情况如下图:
我们的用户在进行使用服务进行运行的时候会出现报错already,而且一直都不能进行install安装
1.首先我们运行时报错之后我们会看到输出一个路径我们可以看到并不是服务的问题而是提示了SYSTEM 所以判断为系统注册表被污染需要进行清除
2.我们使用win + r打开运行程序,输入regedit来进入到注册表下方如下图
进入如下图:
3.在进入之后我们找到LOCAL这个目录如下图:
4.在找到此目录后我们跟着提示的路径进行查找如下图:
5.一直找到此目录如下图:
再找到此目录后,我们鼠标右键将被污染的注册表【删除】即可,然后重新启动install的执行程序 就会发现可以进行正常的服务后台运行了,如下图:
在EasyDSS流媒体服务器平台直播页面中新建一个直播间test1,接着将推流地址复制下来(注意这里一定要是RTMP地址, 否则在摄像头中没有办法识别)
在摄像头中我们找到网络,然后点击高级配置,再选择RTMP协议,然后将复制的RTMP地址写入里面点击保存,再返回Easy DSS中发现test1中有了直播页面同时也是RTMP摄像头的直播页面
答:网络摄像机的码流可以根据实际调节,而且码流是一直在某个范围内变动的,动态画面的时候码流会比较大, 静态画面就会比较小。
TSINGSEE青犀视频RTMP推流摄像机720P、25帧的码流是800kbps-1mbps,普通的监控网络摄像机是2mbps-4mbps; 我们知道1KB/S=8kbps,所以TSINGSEE青犀视频RTMP协议视频直播摄像机720P、25帧每秒占用的带宽是100KB-125KB,普通的 监控网络摄像机每秒占用的带宽是250KB-500KB。
答:不受限制。了解流媒体视频直播系统的伙伴们都知道,推流直播摄像机需要先将视频发送到流媒体服务器,客户 端访问的是服务器,而不是直接访问摄像机,所以只要带宽充足,访问人数不受限,而且摄像机端占用的带宽不会随着访问人数 的增加而增大。
答:可以的。RTMP协议网络摄像机同时支持ONVIF协议,兼容主流的大部分NVR及其他存储设备,可以将视频接入到网 络视频监控平台。而且,使用TSINGSEE青犀视频的H.265编码摄像机接入监控平台可以节约大量的成本,因为TSINGSEE青犀视频 的H.265编码摄像机的码流要比普通视频监控摄像机的码流小一半,这样可以减少带宽成本、存储成本及其他设备成本。
答:TSINGSEE青犀视频RTMP推流摄像机支持7*24开机、断电重连;如果需要关机,则断开电源即可。
答:TSINGSEE青犀视频RTMP推流摄像机是与海康联合研发的,若要开启音频按钮,需要先登录摄像机的配置网页,在 码流类型点选开启复合流后,保存设置即可。
答:通过摄像机IP地址访问摄像机web管理页面,输入用户名和密码登录管理后台。点击顶部导航栏的“配置”选项,依次点击“网络 ”-“高级配置”-“集成协议”,勾选“启用ONVIF”复选框。
检查客户现场环境。RTMP推流摄像头在不改变出厂配置的情况下,确实是有可能无法推流。 造成该原因是由于出厂设置的摄像头无论是码流、帧率以及分辨率和编码格式是比较大的,尤其是帧率,出厂默认帧率是250,对于 一般的网络来说压力比较大。
RTMP推流摄像头编码格式是H265,但是有的系统或者播放器目前并不支持H265的格式播放, 这也会导致播放不了的问题。
综合以上情况,我们建议客户拿到摄像头之后,按照我们目前提供的参数表进行配置(如下图),这样能保证客户能正常测试。如果按 照以下配置仍然无法使用,请及时联系我们,我们可以远程为用户进行排查。
1、准备RTMP推流摄像头
2、一个备案后的域名
3、有阿里云账户
4、开通视频直播业务
要添加推流和播放域名,一般为二级域名,相应域名需要备案。
添加域名后, 去该域名DNS上配置CNAME记录。
配置完播放域名后,直播域名管理中对应的域名CNAME会变。推流域名阿里视频需要用自己的推流域名,同时要关联播放域名, 播放域名也需要先添加。
AppName为应用名称,按规则自定义,默认为live。
StramName为流名称,按规则生成即可。
过期时间:可以依据具体需求选择,建议和项目周期一样。
将生成后的地址复制到推流摄像头上,并显示播放地址。
登录摄像头配置界面-配置-网络-高级配置-RTMP。点击启用,填写服务器地址即可。
填写后,建议重启摄像头
在摄像头正常情况下,阿里云直播的流管理中会出现相应的视频流。
1、准备RTMP推流摄像头
2、一个备案后的域名
3、有腾讯云账户
4、开通视频直播业务
需要添加推流和播放域名,一般为二级域名,相应域名需要备案。
添加域名后,去该域名DNS上配置CNAME记录。
配置完播放域名后,直播域名管理中对应的域名CNAME会变成推流域名,腾讯云直播会免费送一个。如果需要用自己的 推流域名,自行添加一个类型为推流域名的二级自定义域名。同样需要在DNS中添加CNAME记录。
域名添加完成后,就可以通过直播工具箱的地址生成器进行生成地址。
AppName为应用名称,按规则自定义,默认为live
StramName为流名称,按规则生成即可。
过期时间:可以依据具体需求选择,建议和项目周期一样。
将生成后的地址复制到推流摄像头上。
登录摄像头配置界面-配置-网络-高级配置-RTMP。点击启用,填写服务器地址即可。
填写后,建议重启摄像头。
在摄像头正常情况下,腾讯云直播的流管理中会出现相应的视频流。
通过地址生成器,选择播放域名,填写相应信息,可以获取播放地址。
在EasyDSS流媒体服务器平台直播页面中新建一个直播间test1,接着将推流地址复制下来(注意这里一定要是RTMP地址, 否则在摄像头中没有办法识别)
在摄像头中我们找到网络,然后点击高级配置,再选择RTMP协议,然后将复制的RTMP地址写入里面点击保存,再返回Easy DSS中发现test1中有了直播页面同时也是RTMP摄像头的直播页面
答:网络摄像机的码流可以根据实际调节,而且码流是一直在某个范围内变动的,动态画面的时候码流会比较大, 静态画面就会比较小。
TSINGSEE青犀视频RTMP推流摄像机720P、25帧的码流是800kbps-1mbps,普通的监控网络摄像机是2mbps-4mbps; 我们知道1KB/S=8kbps,所以TSINGSEE青犀视频RTMP协议视频直播摄像机720P、25帧每秒占用的带宽是100KB-125KB,普通的 监控网络摄像机每秒占用的带宽是250KB-500KB。
答:不受限制。了解流媒体视频直播系统的伙伴们都知道,推流直播摄像机需要先将视频发送到流媒体服务器,客户 端访问的是服务器,而不是直接访问摄像机,所以只要带宽充足,访问人数不受限,而且摄像机端占用的带宽不会随着访问人数 的增加而增大。
答:可以的。RTMP协议网络摄像机同时支持ONVIF协议,兼容主流的大部分NVR及其他存储设备,可以将视频接入到网 络视频监控平台。而且,使用TSINGSEE青犀视频的H.265编码摄像机接入监控平台可以节约大量的成本,因为TSINGSEE青犀视频 的H.265编码摄像机的码流要比普通视频监控摄像机的码流小一半,这样可以减少带宽成本、存储成本及其他设备成本。
答:TSINGSEE青犀视频RTMP推流摄像机支持7*24开机、断电重连;如果需要关机,则断开电源即可。
答:TSINGSEE青犀视频RTMP推流摄像机是与海康联合研发的,若要开启音频按钮,需要先登录摄像机的配置网页,在 码流类型点选开启复合流后,保存设置即可。
答:通过摄像机IP地址访问摄像机web管理页面,输入用户名和密码登录管理后台。点击顶部导航栏的“配置”选项,依次点击“网络 ”-“高级配置”-“集成协议”,勾选“启用ONVIF”复选框。
检查客户现场环境。RTMP推流摄像头在不改变出厂配置的情况下,确实是有可能无法推流。 造成该原因是由于出厂设置的摄像头无论是码流、帧率以及分辨率和编码格式是比较大的,尤其是帧率,出厂默认帧率是250,对于 一般的网络来说压力比较大。
RTMP推流摄像头编码格式是H265,但是有的系统或者播放器目前并不支持H265的格式播放, 这也会导致播放不了的问题。
综合以上情况,我们建议客户拿到摄像头之后,按照我们目前提供的参数表进行配置(如下图),这样能保证客户能正常测试。如果按 照以下配置仍然无法使用,请及时联系我们,我们可以远程为用户进行排查。
1、准备RTMP推流摄像头
2、一个备案后的域名
3、有阿里云账户
4、开通视频直播业务
要添加推流和播放域名,一般为二级域名,相应域名需要备案。
添加域名后, 去该域名DNS上配置CNAME记录。
配置完播放域名后,直播域名管理中对应的域名CNAME会变。推流域名阿里视频需要用自己的推流域名,同时要关联播放域名, 播放域名也需要先添加。
AppName为应用名称,按规则自定义,默认为live。
StramName为流名称,按规则生成即可。
过期时间:可以依据具体需求选择,建议和项目周期一样。
将生成后的地址复制到推流摄像头上,并显示播放地址。
登录摄像头配置界面-配置-网络-高级配置-RTMP。点击启用,填写服务器地址即可。
填写后,建议重启摄像头
在摄像头正常情况下,阿里云直播的流管理中会出现相应的视频流。
1、准备RTMP推流摄像头
2、一个备案后的域名
3、有腾讯云账户
4、开通视频直播业务
需要添加推流和播放域名,一般为二级域名,相应域名需要备案。
添加域名后,去该域名DNS上配置CNAME记录。
配置完播放域名后,直播域名管理中对应的域名CNAME会变成推流域名,腾讯云直播会免费送一个。如果需要用自己的 推流域名,自行添加一个类型为推流域名的二级自定义域名。同样需要在DNS中添加CNAME记录。
域名添加完成后,就可以通过直播工具箱的地址生成器进行生成地址。
AppName为应用名称,按规则自定义,默认为live
StramName为流名称,按规则生成即可。
过期时间:可以依据具体需求选择,建议和项目周期一样。
将生成后的地址复制到推流摄像头上。
登录摄像头配置界面-配置-网络-高级配置-RTMP。点击启用,填写服务器地址即可。
填写后,建议重启摄像头。
在摄像头正常情况下,腾讯云直播的流管理中会出现相应的视频流。
通过地址生成器,选择播放域名,填写相应信息,可以获取播放地址。
EasyNVS 为 EasyNVR 的管理平台,在有一个现场为离线环境,客户需要对原先的Docker 进行迁移, 因此按照以下三个大步骤进行迁移工作。
docker ps -a
查看正在运行的镜像
docker ps
1.首先将对应的容器转换成镜像
docker commit 容器id 镜像名称:tag
2.查询 images
docker images
3.将新的镜像转换成 tar 包
docker save tsing/linuxgo:1.0.0_tran > /a/sds.tar
docker load < sds.tar
运行所有的docker 镜像即可。
在我们进行级联完成EasyNVS后,我们打开页面有时候会报错‘请求服务不存在或已停止’,如下图:
1.首先我们可以看到日志保存里面并没有关于此保存的问题,如下图:
2.经过测试发现,出现我们上述的问题的原因是因为我们的EasyNVR进行级联到EasyNVS上后的IP地址是多少, 就必须使用此地址进行访问否则就会出现上述报错的问题,所以我们的机制就是级联的EasyNVS的IP是多少我们就需要使 用此IP进行访问EasyNVS上面的对应的通道视频:
在客户现场发现EasyNVS无法进行播放某一台EasyNVR内的通道HLS流。
1.首先我们先来确定问题发生的地点在哪里,所以我们要进入到EasyNVR服务器来进行观看是否可以播放HLS的流。
2.进入到EasyNVR的页面后,发现在EasyNVR里面所有的流都不可以进行播放,如下图:
3.如上图,我们发现流都不可以播放但是显示在线。
我们在这里可以发现所有的流都没有被勾选,但是手动勾选了之后竟然也无法进行保存:
4.我们进行排查发现,出现这个问题的原因是easynvr.ini配置文件内的数据被删除,所以导致我们的流无法正常进行播放:
5.我们需要下载同版本的easynvr并且将里面的ini配置文件拷贝放到我们当前使用的EasyNVR的目录下,来进行保证服务项目 的畅通,数据不丢失:
6.这个时候我们再看一下EasyNVS,会发现可以正常播放视频流了:
在3.4.7版本的EasyNVR进行级联EasyNVS的时候,我们会发现无法进行级联成功并且会在Running和already之间进行刷新,如下图:
1.首先我们在查看问题输出为【设备序列号】already,大概的意思就是设备序列号重复了,因为在EasyNVS里面设备序列号是不可以 重复上传的。但是经过联系上级平台删除之后在重新上传发现还是报同样的错误。
2.我们来排查一下本地的EasyNVR的问题,首先进行重启服务查看级联NVS是否成功:
3.在经过重启之后服务依然是进行报同样的already的错误,但是其他的功能全部都是正常为此,我们来进行一个本地的测试,我们在 本地启动一个EasyNVS,或者在内网启动一个EasyNVS。 (注意3.4.7版本及以下版本的EasyNVR必须使用2.0版本的EasyNVS才可以进行兼容)
4.在本地进行EasyNVR和本地的EasyNVR测试之后也是完全可以进行级联到EasyNVS上面并且也没有进行反复的离线上线。
5.本地测试完成,(如果有条件)在云服务器部署EasyNVS来测试是否能进行级联,在我云服务器上测试结果同样是完全没有问题的。
6.但是在进行重新级联到上级EasyNVS还是反复上线下线,其他EasyNVR级联上级EasyNVS也并无此情况,所以可以得出结论并不是 EasyNVR和EasyNVS的问题,而是其中的传输出现了问题,但是端口等配置全部正确。
在经过网络调查发现,我们的EasyNVR如果是连接的移动的网络就会对联通的EasyNVS进行反复掉线,上线的问题,所以我们下次遇到 4此问题,需要查看使用的公网运营商是否是移动,EasyNVS是否是联通。
近期有客户进行反应,我们4.0.0版本以上的EasyNVR进行级联EasyNVS的时候可以进行级联上去显示Running,但是在EasyNVS 上面却显示该设备视频没有查看到通道,并且无法进行查看视频:
发生此问题的原因是因为我们的4.0.0版本及以上版本多了一个【用户管理】的功能,所以我们在对接EasyNVS的时候会发生需要 填写用户的操作,会根据用户的权限进行上传到EasyNVS,所以我们在用户名需要填写正确的用户名。
Ps:用户名可以在【用户管理】内进行查看,如果上传全部通道默认填写easynvr
1.首先我们先登录EasyNVR的页面,进入到级联EasyNVS第三方平台功能的页面,查看用户名填写的是否正确
2.经过上图我们可以看到,在我们的用户管理内并没有admin这个用户,所以服务默认为没有通道可以进行查看, 就导致EasyNVS内无法查看到视频只能看到通道数量,所以我们需要修改用户名为正确的,我们就填写默认的easynvr如下图:
3.在经过查看后我们发现EasyNVS上面的通道已经是可以进行正常观看了:
EasyNVR接入EasyNVS中,在EasyNVR和EasyNVS中都可以播放,但是用户在本地调用时却播放不出来。
客户的EasyNVS在公网,于是这边访问客户的公网EasyNVS。
在EasyNVS中播放都是可以播放的,但是用户通过我们在EasyDSS中的播放器进行播放,就是播放不出来。
用户反馈说只有通道6可以在这个界面播放,通道1-5都不可以播放。
因为在EasyNVS上都是可以播放的,说明流没有问题,但是通道EasyDSS的播放器页面去播放却无法播放。通过对比发现, EasyNVS中是使用的是新版播放器,EasyDSS中使用的是旧版播放器,于是猜想是不是流格式为H.265所以导致播放不出来。通过 查看返回流地址这个接口,如下图:
1、通过修改摄像头配置,将流格式从H.265改为H.264,然后在EasyNVR或者在EasyNVS中开关下通道,然后EasyDSS的 播放器界面就可以播放了。
2、不修改摄像头配置,继续保持流格式为H.265,使用新版播放器播放,也可以播放。
用户需要调用公网的流地址等接口信息,但是EasyNVR没有固定的公网IP地址,故而进行级联到EasyNVS平台, 那么如何通过EasyNVS平台调用我们的EasyNVR的接口呢?
1.首先我们先进行将EasyNVR级联到我们的EasyNVS上,如下图:
2.在调用通过EasyNVS调用EasyNVR接口之前,我们需要先进行调用EasyNVS的登录接口,如下图所示:
3.在进行级联到EasyNVS后,我们使用调用工具来通过EasyNVS调用EasyNVR的接口,规则如下图所示:
EasyPlayer播放器项目是TSINGSEE青犀视频开发的一个很庞大的播放器项目,涵盖了网页播放、iOS播放、Android播放等播放格式,并且已经支持H265播放。
当然,EasyPlayer.js也是支持测试的,有的是用户提出EasyPlayer.js在播放某些flv时,发现播放存在累计时延的问题,查看flv相关代码,发现flv.js的版本是1.4.2,而flv.js最新版本是1.5.0。
Console控制台打印version,确实是1.4.2,因此需要将flv.js升级到最新的1.5.0来解决前文讲到的累计时延的问题。
为了确认目前使用的1.4.2版本的flv.js,和官方的flv.js对比有没有修改,需要先下载官方1.4.2版本的flv.js。经过对比,没有修改,然后覆盖1.5.0版本的flv.js,测试无误即可重新发包。
此外,EasyPlayer.JS播放器已经实现了VR视频播放的功能,后续将加紧合并,发布到EasyPlayer.js的主分支上,EasyPlayer.JS对WebVR的支持是我们产业进化的一部分。在未来的发展中,EasyPlayer.JS不仅可以让用户不用下载和安装就能体验线上的VR内容,还能够一直保持着我们熟知的互联网的特性:开放、易用。
在部分采用H265播放器EasyPlayer.js播放HLS视频流的用户中,有位用户反馈HLS使用了H265编码格式,收到了请求的TS文件,控制台未见报错,但是画面一直黑屏,无法正常播放视频,让我们协助排查。
跟踪代码,发现是frameType=0导致无法继续解码,代码内容如下:
if (mediaType == 1 && !self.wasmInitVideoDecoder && frameType) {
//open video decoder..
var ret = Module._WasmDecoder_OpenVideoDecoder(self.wasmDecoderId, codecId, 0, 0, outputFormat);
if (ret == 0) self.wasmInitVideoDecoder = true;
}
断点中接收到的数据是这样的:
bitPerSample: 0
channelNum: 0
cmd: 3
codecId: 173
dat: Uint8Array(51069) [0, 0, 1, 64, 1, 12, 1, 255, 255, 33, 96, 0, 0, 3, 0, 0, 3, 0, 0, 3, 0, 0, 3, 0,
150, 172, 9, 0, 0, 0, 1, 66, 1, 1, 33, 96, 0, 0, 3, 0, 0, 3, 0, 0, 3, 0, 0, 3, 0, 150, 160, 2, 0, 128,
16, 7, 251, 173, 59, 201, 46, 230, 224, 32, 32, 32, 128, 13, 187, 160, 0, 205, 254, 96, 4, 0, 0, 0, 1, 68,
1, 192, 114, 240, 59, 36, 0, 0, 0, 1, 38, 1, 175, 25, 120, 98, 127, 255, 255, 163, …]
frameType: 0
mediaType: 1
playTimeSec: 4000.811111111111
samplerate: 4000.811111111111
观察收到的数据,我们发现PES包头部少了一个0,所以我们之前的代码需要兼容这种格式。我们将带原本的代码做如下修改:
修改完成后再次测试播放,问题即可得到解决。
EasyPlayer项目经过多年的发展,已经在多项目中得到了验证,其中EasyPlayer.JS就是支持集成到网页的视频流媒体播放器。此外,EasyPlayer项目各播放器都支持二次开发。
前段时间我们在测试EasyPlayer.JS的部署,在github(https://github.com/tsingsee/EasyPlayer.js)下载legacy分支。直接在浏览器打开本地部署环境出现错误提示“error:No ESLint configuration found”,导致构建失败。
我们搜索了该问题出现的原因,网上分析是项目中缺少.eslintrc.js文件。因为有些隐藏文件是无法拷贝的,就比如.eslintrc.js。
问题原因已经知道,那么就在项目中新建.eslintrc.js文件。
在.eslintrc.js文件里添加如下代码,将这个文件赋予完整内容:
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint'
},
env: {
browser: true,
},
extends: [
// https://github.com/vuejs/eslint-plugin-vue#priority-a-essential-error-prevention
// consider switching to `plugin:vue/strongly-recommended` or `plugin:vue/recommended` for stricter rules.
'plugin:vue/essential',
// https://github.com/standard/standard/blob/master/docs/RULES-en.md
'standard'
],
// required to lint *.vue files
plugins: [
'vue'
],
// add your custom rules here
rules: {
// allow async-await
'generator-star-spacing': 'off',
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
}
}
再次启动部署效果如下:
上图播放器构建完成后,按要求传入正确的播放地址即可正常播放视频流。
EasyPlayer视频播放器系列项目是TSINGSEE青犀视频团队开发的H265播放器系列,目前已经具备Windows、Android、iOS三个平台的稳定运行版本,EasyPlayer.js还支持Linux平台,在播放器领域是多平台的最佳选择。
有的客户在调用EasyPlayer播放器的接口出现了一个问题,即H264的视频流可以播放,但H265视频流不能播放,并且控制台会出现报错:
Uncaught(in promise)RuntimeError:about(comileError:WebAssembly.instantiate():expected magic word 00 61 73 6d,found 3c 21 44 4f @+0)at Error
通过与研发以及该客户的沟通,我们获得了客户的EasyWasmPlay.js路径,路径如下:
这里就是问题的关键,EasyWasmPlay.js和libDecoder.js要放在服务的根目录下面,在这个客户的项目中要放到web文件夹里面,web文件夹才是根目录,如下:
修改位置后,重新启动服务即可。
EasyPlayer播放器系列项目依赖其灵活控制、低延时、高稳定的特点,已经成熟运用于多个项目场景当中,其中包括手机直播、桌面直播、远程教育课堂直播等,同时在城市安防或者社区安防监控的视频播放当中也具备很好的兼容性。
之前和大家讲到EasyPlayer.js的播放器项目已经支持VR播放了,但是在调试过程中,用户反馈,在VR视频流播放过程中,hls直播切换flv直播是可以的,但是flv直播切换到另一个flv直播失效。初步判断是我们自己的项目代码出现bug,排查如下:
watch:{
VrUrl(newVal, lodVal){
if (lodVal !== newVal) {
this.playerUrl = this.VrUrl
this.initURl()
}
},
initURl() {
if (this.VrUrl !== '') {
this.playerUrl = this.VrUrl
if (this.vr.flvPlayer||this.vr.hlsPlayer) this.isDestroy()
if (this.isHLS) this.playerHLS()
if (this.isMP4) this.playerMP4()
if (this.isFLV) this.playerFLV()
this.callbackFunc()
}
},
isDestroy() {
if (this.vr.hlsPlayer) {
this.vr.hlsPlayer.destroy()
this.vr.hlsPlayer = null
}
if (this.vr.flvPlayer) {
this.vr.flvPlayer.destroy();
this.vr.flvPlayer = null
}
},
playerFLV() {
this.vr.play(this.VrUrl, this.vr.resType.flvVideo, {muted: (this.muted == 'false'|| this.muted == false), autoplay: (this.autoplay == 'false'|| this.autoplay == false) });
this.vr.flvPlayer._config.enableStashBuffer = true;
this.vr.flvPlayer._config.lazyLoad = true
this.vr.flvPlayer._config.lazyLoadMaxDuration = 30
this.vr.flvPlayer._config.lazyLoadRecoverDuration = 2
this.vr.flvPlayer._config.deferLoadAfterSourceOpen = true
this.vr.flvPlayer._config.autoCleanupMaxBackwardDuration = 3 * 60
this.vr.flvPlayer._config.autoCleanupMinBackwardDuration = 2 * 60
this.vr.flvPlayer._config.statisticsInfoReportInterval = 600
this.vr.flvPlayer._config.fixAudioTimestampGap = true
},
总结一下切换流程,就是切换直播地址时,先把之前的hls播放器或flv播放器destroy掉,然后根据新的播放地址,重新初始化一个相应的新播放器。
那么切换失败出现BUG的原因有两个:第一,老播放器destroy失败;第二,老播放器destroy虽然成功了,但是新创建的失效,仍然在使用之前的配置。我们按照以下步骤来进行分析:
(1)、查找vr定义
_this.vr = new VR(scene, renderer, container, { fov: 100 });
发现vr使用的是开源项目mxreality.js播放库。
(2)、进入mxreality.js播放库源码,在destroy处打印老播放器,发现destroy成功;在新播放器创建处,打印播放地址,发现传入的确实是新地址。那么,问题到底在哪呢?至少到目前为止,可以确认我们的项目代码是没有BUG的,只能怀疑是mxreality有BUG。
(3)、mxreality开源项目本身提供了hls直播切换示例,我们在此基础上,来测试切换flv,发现确实无法切换。与mxreality作者在Github上沟通后,研发建议切换时,不是destroy掉vr.flvPlayer,而是将vr整个destroy掉。经过测试,这样确实能切换成功,但是代价未免太大了,相当于将整个页面刷新掉。进一步与研发反馈,他表示后续有时间会进行优化。目前只能自己解决这个BUG了。
(4)、mxreality源码中播放flv直播部分代码如下
if (that.resType.flvVideo == resType) {
if (!flvjs.isSupported()) {
console.error('Your browser does not support flvjs')
return;
}
that.flvConfig.url = recUrl;
that.flvPlayer = flvjs.createPlayer(that.flvConfig);
that.flvPlayer.attachMediaElement(video);
that.flvPlayer.load();
that.flvPlayer.play();
这里的flvPlayer使用的就是flv.js,难道是attachMediaElement(video)这个video没有清理干净导致的?改一下,把video强制初始化一遍,发现BUG依然存在。这下就要怀疑flv.js源码有BUG了。
(5)、进入flv.js源码,使用示例切换两个flv直播地址,发现可以正常切换,并且切换的方式和mxreality源码中是一致的。排查陷入僵局,但是可以肯定,BUG仍然在mxreality当中。
(6)、在mxreality的Github中,浏览了所有的issues看看有没有收获,其中有个网友表示:
我也F12打开控制台,有了意外收获:
在切换flv直播地址后,虽然之前的直播流数据停止了,但是新的直播流仍然还在请求之前的地址。可是flv.js在createPlayer时确实已经切换到新地址了。
(7)、修复bug
that.flvConfig.url = recUrl;
that.flvPlayer = flvjs.createPlayer(that.flvConfig);
that.flvPlayer.attachMediaElement(video);
that.flvPlayer.load();
that.flvPlayer.play();
经过跟踪,发现that.flvConfig会被flv.js更新,其中就有segments属性,里面有老的flv播放片段。新的播放器只是更改了url,开始播放后,flv.js会优先找segments里的片段继续播放,导致切换失败。解决办法很简单了,在切换flv.js直播地址时,把that.flvConfig重新初始化即可。
青犀公众号
Copyright © 2014-2025 安徽旭帆信息科技有限公司 版权所有
皖ICP备17023618号-3 皖公安网34019202000801号