首页IT科技视频接入标准(Web端接入视频设备(NVR/IPC))

视频接入标准(Web端接入视频设备(NVR/IPC))

时间2025-09-19 10:45:50分类IT科技浏览6641
导读:概述 本文主要介绍视频监控设备,视频监控设备接入,常用的开源流媒体及接入过程中的一些问题。...

概述

本文主要介绍视频监控设备                  ,视频监控设备接入                          ,常用的开源流媒体及接入过程中的一些问题                  。

第一章 视频监控设备

目前常见的视频监控设备主要有NVR和IPC         ,以海康为例                          。

1.1 视频监控设备介绍

IPC即IP Camera         ,可以接入网络的摄像头                          ,如下图         。

NVR即Network Video Recorder                 ,网络视频录像机         ,可以进行视频流存储和转发                           ,管理多个IPC                 ,如下图,以海康为例                           ,通道管理可以查看各路IPC视频设备         。

1.2 接入方式

视频监控设备接入普遍使用GB28181或RTSP协议介绍                          ,在接入的过程中本人发现,由于云平台发展                  ,GB接入有很多限制                          ,例如海康通常会上一套IVMS和萤石云         ,萤石云接入可以让用户在手机端查看视频                  ,但是会导致不能使用GB接入                          ,所以我后来都优先使用RTSP协议接入         ,RTSP整体还是很适合监控视频接入                          。如下图         ,是客户现场的一个NVR配置                          ,平台接入使用的萤石云:

RTSP基本主流的监控设备都支持                 ,默认554端口         ,RTSP支持推拉流双向模式                           ,低延时                 ,很适合监控视频,可以使用VLC播放器播放                           ,不过在浏览器端不能直接播放                          ,需要使用ffmpeg转一下,最终使用RTMP或HLS等形式在浏览器端直播                  ,下面会逐个介绍                 。

第二章 视频设备接入

视频设备接入有以下几种方式:

使用视频设备SDK解码接入                          ,官方有较详细的资料         ,比较麻烦; 搭建流媒体服务                  ,使用GB                  、RTSP等协议接入                          ,流媒体服务开源的比较多         ,接入较简单         ,不过也有很多坑要踩一踩         。

下面介绍几种开源流媒体及接入方式                           。

2.1 SRS

SRS开源地址:SRS开源地址

GB28181分支:已经合并到srs5.0

srs的目标是打造一个好的流媒体服务

                          ,而不是接入                 ,srs5.0后来没用过         ,笔者使用过srs-gb28181(合并之前)                           ,gb支持维护并不是很好                 ,接入后有很多问题,例如NVR接入                           ,一段时间后流会掉                          ,需要重启或者手动注销会话后才能再次推流,推流或断开不能回调等                 。

关于国标的一些问题以及接入方式可参考:SRS国标接入说明

2.2 wvp-GB28181-pro

wvp开源地址:wvp开源地址

wvp需要结合ZLMediaKit流媒体服务                  ,是一个开箱即用的28181协议视频平台                          ,使用Java和Vue开发         ,包含设备管理                          、录像         、视频广场等功能                  ,代码前后端均开源                          ,开发         、部署文档完善         ,很适合监控设备接入和流媒体前端开发学习。

2.3 EasyDarwin

EasyDarwin是一个纯粹的RTSP流媒体服务         ,基于golang开发                          ,部署简单                 ,不依赖其他流媒体服务         ,结合ffmpeg可以实现HLS直播                           ,配合开源的EasyPlayer实现Web端直播                 ,是笔者目前主要使用的流媒体服务                           。

EasyDarwin开源地址:EasyDarwin开源地址

EasyPlayer Demo开源地址:EasyPlayer Demo开源地址

具体如何部署,参考EasyDwrwin地址即可                           ,接下来说几个存在的问题以及解决方式(有些是临时解决方式)                          。

生成ts文件过多的问题

EasyDarwin运行一段时间会生成大量的ts切片                          ,ts切片生成配置并没放出来,源码写死。

笔者目前临时解决方案:将下面脚本定时执行                  ,每天凌晨清理一次                          ,并重启EasyDarwin         ,则会重新生成在当天日期的文件夹                  ,后续从源码改造                          ,前端播放需要根据当前日期生成播放路径:http://IP:10008/record/{路径名称}/20230105/out.m3u8                  。 # 本地存储保存路径 root_dir=/var/Streaming file_name=$(date +%Y%m%d) current_dir=`pwd` easydarwin_dir=/opt/EasyDarwin # EasyDarwin重启后会以当天日期命名重新生成文件夹 systemctl restart EasyDarwin_Service.service for i in $root_dir/* do if test -d $i then # 由于我只需要直播         ,不需要回放         ,直接清理掉昨天的                          ,需要保存的话挪到另一个文件夹即可 cd $i && rm -rf `ls | grep -v "$file_name"` echo "$(date "+%Y-%m-%d %H:%M:%S") clean..." >> $current_dir/clean.log fi done # 每天凌晨执行 # 0 0 * * * /opt/EasyDarwin/clean_ts.sh

easyplayer.js播放问题

easyplayer算是一个基于videojs的HLS播放器                 ,对应的播放地址:http://IP:10008/record/{路径名称}/20230105/out.m3u8                          。

使用官方demo的时候发现h265播放黑屏         ,不过在官方的演示地址和VLC是可以播放的                           ,官方演示地址         。

经测试                 ,发现依赖文件EasyPlayer-element.min.js不同,把官方的依赖下载下来替换了demo中的依赖                           ,按照说明部署即可                          ,依赖下载地址                  。 要改进的问题

EasyDarwin添加rtsp通道地址很麻烦,需要一个一个加                  ,如一个NVR                          ,用户名密码是不变的         ,但是我们需要每个都拼接一次地址:rtsp://账号:密码@ip/Streaming/Channel/102                  ,完全可以改成只添加一次NVR地址                          、用户                 、密码                          ,然后再统一添加需要监控的通道                          。

2.4 m7s

m7s(Monibuca )         ,按作者的定义         ,是一个开源的Go语言实现的流媒体服务器开发框架                          ,下图仓库分布就能看出来                 ,二次开发接口很强         ,而且开源已经支持主流的协议         。可以到官网下载直接安装                           ,也可以参考文档编译运行                 ,二次开发,后面要重点研究一下         。

官网地址:m7s官网地址

开源地址:m7s开源地址

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
windows10开始菜单失灵及异常的解决方法是什么(windows10开始菜单失灵及异常的解决方法)