实现RTSP摄像机硬盘录像机NVR网站网页微信H5直播方案EasyNVR部署问题之:ERR_CONTENT_LENGTH_MISMATCH
背景分析
接触到EasyNVR产品的开发者都知道,EasyNVR是一套功能齐全、简洁易用的流媒体解决方案,可作为能力曾前端接入摄像头,后端接入业务系统使用,也可以作为应用层,直接修改为属于企业用户自己的视频管理平台,其技术特点主要是以下几个方面:
- 兼容性:通过 RTSP 协议接入传统网络摄像机、NVR、编码器等,使用RTSP协议接入能兼容市面上绝大多数网络摄像机等源设备,最大程度的提高整体方案的硬件设备的兼容性,有效的避免采用各个硬件厂家SDK 定制的繁琐以及不通用问题;
- 丰富性:存储方面提供传统的本地硬盘存储,并可支持扩展存储。比如支持接入磁盘阵列、iSCSI设备(IPSan)、阿里云存储,丰富存储方案的选择;
- 灵活性:存储方面也支持服务器本地磁盘的不间断录像,并可通过自己的应用场景进行定时录像、报警录像等,并可以制定一系列的录像策略,录像的检索与回放不仅支持传统的回放以及回放控制,并加入了时间轴控制等精确的回放控制,使得回放过程更加简单、灵活、精准;
- 可扩展性:对于播放海康、大华NVR硬盘录像机自身的录像文件(也称作硬件录像),只需在EasyNVR中配置对应硬件录像机参数信息,就可以完成对网络硬盘录像机录像文件的检索和点播回放,重要的是免去了插件安装、浏览器限定等条条框框,在拥有录像机观看录像功能的基础上更是实现了无插件、多平台自由观看回放,使录像观看更加简单化,更加友好;
- 开拓性:支持CDN推流,可以根据具体的现场需求,实时推流至流媒体服务器或者进行CDN转发。
发现问题:
EasyNVR互联网直播系统一直都是与时俱进,不断完善,丰富功能,最近团队进行系统内部测试,在linux系统中部署了一台EasyNVR,当部署好,运行起来发现以下问题:EasyNVR的配置页面数据出不来
分析问题:
基于是web页面出现的问题,开发人员第一反应一定是“F12”查看一下接口请求情况、是否有数据返回… …令人感到万分意外的是从“headers”状态一切都是正常的,但是我们的“response”的数据确实没数据展示。这说明我们的接口请求没有问题,问题可能出现在其他方面。
对于接口返回的情况排查完之后,我们通过控制台来看看会不会有什么发现。控制台很友好的抛出了问题*ERR_CONTENT_LENGTH_MISMATCH*
因为没有遇到过类似问题,我们开始在网络上寻找大神支援。
最后发现:原来是 nginx 的工作进程对大文件做了缓存,这个缓存在 %nginx%/proxy_temp 目录下,主进程在读取缓存的时候由于权限问题而无法访问。 EasyNVR确实是使用nginx作为方向代理的。这个问题,在我理解看来,就是linux下的文件权限的问题。
问题解决
-
linux比较注重文件的权限,于是我们给“/proxy_temp 目录”赋予相应的权限,将缓存的目录权限修改成对应权限。
-
修改对应权限过后发现问题有效解决啦!!!!
ps:刚刚接触linux系统,通过本博文问题反思,发现思维转变很重要!!Go!Go!Go!
EasyNVR方案架构
- 服务器在本地,与IPCamera/NVR/编码器同在一个局域网,拥有一个内网IP地址又具有外网访问地址
- 多个IPCamera/NVR/编码器仅有内网IP地址(无外网IP),EasyNVR通过内网拉取IPCamera/NVR/编码器的流数据
- 服务器在公网(比如云主机、公网服务器),与设备不在同在一个局域网内
- IPCamera/NVR/编码器单独或者共有固定的公网IP地址,EasyNVR服务器可以直接访问到设备
- EasyNVS服务器部署在公网(比如云主机、公网服务器)
- 有多个内网现场的直播设备需要进行公网直播
- EasyNVR对接EasyNVS可以利用网络实现按需直播,同时屏蔽各种网络环境问题,适用于有线、WIFI、4G、专网
- 支持云端运维,公网具体运维每个现场EasyNVR设备
- EasyNVS管理平台能获取到EasyNVR的所有能力,并进行互联网化输出,同时进行统一化的管理和接口输出。
EasyNVR应用场景
EasyNVR可以说已经成为国内视频互联网化基础建设的排头兵,几乎各个民生行业都已经有了EasyNVR视频能力输出的身影,EasyNVR多年服务于各行各业视频基础建设,EasyNVR的可靠性、完整性、稳定性已经受到了业界的广泛认可!
EasyNVR安防摄像机网页流媒体服务
EasyNVR是一款拥有完整、自主、可控知识产权,同时又能够具备软硬一体功能的安防互联网化流媒体服务器,能够通过简单的网络摄像机通道配置,将传统监控行业里面的高清网络摄像机IP Camera、NVR等具有RTSP、Onvif协议输出的设备接入到EasyNVR,EasyNVR能够将这些视频源的音视频数据进行拉取,转换为RTMP/HLS,进行全平台终端H5直播(Web、Android、iOS),并且EasyNVR能够将视频源的直播数据对接到第三方CDN网络,实现互联网级别的直播分发。详情可访问EasyNVR官网:http://www.easynvr.com