我们有个项目,需要将摄像头实时视频流共享给甲方上级单位。而该项目配备有一个海康的CVR,声称可以接入其他国标平台,即将接收到的视频流,再推给上级国标平台。我捣鼓了一下,结果真的可以。CVR (Central Video Recorder)全称是中心级视频网络存储设备,跟普通的NVR(Network Video Recorder)网络硬盘录像机相比,CVR比较专注于视频流存储。但这个海康CVR支持通过国标方式接入其他国标平台。
以下是设置步骤:
一、前置条件
CVR配置国标对接平台前,需要先配置好录像业务,并接入摄像头。
二、填写
主要是填写待推送过去的上级国标平台。

需要关注的参数如下,其他的无特殊需求则不需要修改:
启用:当然是启用
SIP服务器ID:其他平台的国标ID
SIP服务器域:其他平台国标ID的前10位
SIP服务器地址:其他平台IP地址
SIP服务器端口:其他平台的国标端口
SIP用户认证ID:CVR自身的国标ID
SIP用户认证密码:平台密码,根据现场是否需要鉴权来判断是否需要填写,不需要可不填
本地SIP端口:CVR对接其他平台所使用的端口,如果CVR也是通过国标接入摄像头,则二者不能相同。一般5060和5061选一个。
三、清掉无关通道的视频编码ID
国标设置页面的下半部分是通道列表,1个摄像头对应1个通道。令人发指的是,海康CVR默认在这里列了700多个通道。尽管我们项目只接入了10几台摄像头。需要将多余的通道删掉。所谓删掉,是指将这个页面的,系统自动生成的通道内容删掉。别以为系统会智能地过滤掉没有摄像头对应的通道,它会将全部有内容的通道都往接入的国标平台推,使得真正的通道信息淹没在一片垃圾信息中。
一个个地删,我没有找到其他更好的方法。从东方露出鱼肚白,一直删到太阳落山。披星戴月。那天我很晚才吃晚饭,月亮都出来了,满天的星光。

四、端口
在次之前不久,我用开源的wvp-gb28181-pro,可以接入下级国标平台的视频流,然后也能通过级联,将视频流推送给上级国标平台。我的体会是,关于视频流的国标gb28181是一个高层级的协议,它只负责建立上层的连接,发布推流指令,而真正推流,处理视频流的是底层的其他服务。这种模式,是一种前店后厂的模式,gb28181无疑就是那个店。
因此,我们在填写上面的平台信息,其中的端口号,不管是其他平台的端口,还是本地的SIP端口,都只是双方建立高层级级别的端口,真正推流、收流的,还有其他端口。比如,我们这个CVR与上级国标平台勾搭上以后,上级平台就对CVR说,那行,你们把视频流推向这个ip,这个端口吧。然后CVR就调用服务,吭哧吭哧地照办。
有关这些端口,对接双方需要沟通好。如果不在同一个网络,更加需要网络管理员介入。可能中间过程中,需要调试,抓包分析,确保网络、IP、端口通畅。

五、小结
在项目中,把摄像头视频流共享给第三方是十分常见的需求。国标gb28181协议为视频流的级联、共享提供了框架。我之前使用开源框架wvp-gb28181-pro,实现了通过级联获取下级国标平台共享的视频,然后又通过级联共享给了第三方的国标平台。详见拙作:
利用wvp-gb28181-pro国标级联实现上级观看下级摄像头(一)
利用wvp-gb28181-pro国标级联实现推送摄像头视频流到上级国标平台(二)
这是一款优秀的框架,确实是方便。但部署起来也有一些坑,尤其是使用微服务进行部署。而海康这个CVR的话,相对来说配置要简单一些,运行起来也更加稳定。WVP当然也算是比较稳定的。