一、背景

心血来潮想入个家用监控摄像头,要求也非常简单:

  • 夜视效果清晰,不然到晚上就瞎了等于没有监控;

  • 云台可操作大角度转动,属于基本功能;

  • 视频流可截取,方便后续配合NAS进行更多拓展,这个是重点;

  • 便宜…… 毕竟只是玩玩

    至于什么1080p之类的我反而无视了,理由很简单:基本都是吹,我用 GoPro 开 1080p 随便截几帧的画质可以摁着这些所谓“1080p”的各种摄像头的画质反复摩擦。

二、选定萤石C6CN

随便了解了一下之后草草选定了 海康威视 旗下民用品牌 萤石,具体型号参数介绍详见 萤石官网页面

大体上该有的功能都有了,譬如:摄像头隐私遮盖、有线方式网络接入、SD卡本地存储、视频加密、设备离线提醒 之类;不该有的也有了,譬如:移动追踪、私有云存储、双向语音对讲、分享视频。

三、几个主要功能的简单试用

  1. WiFi 支持

    通过说明书我们知道这个摄像头 WiFi仅支持 2.4G 信号,总所周知城市里小区密集居住环境下各种 2.4G 信号泛滥信道干扰严重,也就是说如果你用WiFi方式玩这个摄像头,丢包掉线简直就是家常便饭。

    因此我们下面涉及的各类和网络操作有关的功能,几乎都存在延迟和卡顿现象,而这个 2.4G WiFi 要背很大一口锅。因此,如果有钱的话最好能选择支持 5G WiFi 的网络摄像头,如果没条件的话可以插一根网线……

  2. 移动追踪

    实际测试发现云台跟随速度不理想,存在卡顿现象;

    这个算是情理之中,毕竟实现这个功能需要从最近几秒中抽取若干帧图像,然后找出移动物体,以及物理移动的方向和速度,再发送信号给云台朝着对应方向移动,按照经验来讲移动过程中应该是暂停了移动识别的,否则会出现误判;移动完成后再次进行移动物体识别和跟踪,如此循环。

    那么一个如此廉价便宜的玩意儿,让CPU负担这么密集的图像运算真的是难为它了,跟踪过程的卡顿也就可以理解了。

  3. APP操作云台移动

    实际操作发现画面存在轻微卡顿;

    这个仍然是情理之中的,毕竟通过APP发送操作指令通过公网转发给摄像头这本身就存在网络延迟,加之摄像头收到指令后通知云台转动,云台转动后新的画面再通过公网传输回手机APP画面,这多个环节叠加后延迟卡顿就非常直观了。

    我相信如果全内网操作的话,这个延迟会非常小甚至感觉不出来,但是这不现实,毕竟我们用网络摄像头的目的就是为了出门在外随时随地观看。

  4. 双向语音对讲

    实测测试发现有回音现象,而且声音清晰度较差,可能是我本身存在于摄像头附近的原因?下次我自己拿着APP去室外再试试;
    另外语音对讲存在延迟,这个基本上还是2.4G WiFi的锅。

四、安全相关

  1. 云存储

    新用户默认赠送了7天的 萤石云 服务,摄像头拍摄的视频画面会直接上传存放在云端;

    首先便捷性是值得肯定的,但是我对这种存储方式的安全性保持怀疑态度,毕竟我不打算把个人重要隐私的存放在一个我无法确认安全性到底任何的第三方服务器上。

    说的难听点,当下绝大部分硬件厂商(指纹锁、行车记录仪、家用摄像头 等等)为了迎合消费市场而附带各种所谓的云存储、智能家居等,安全性真的堪忧,毕竟这些功能只是厂家的一个卖点而不是企业的核心。

  1. 远程查看

    众所周知,几乎所有的家用网络都没有公网IP(虽然我家里有,但是毕竟是极少数),所以想在户外通过手机APP观看处于家庭网络内网的视频,必然不是网络直连的,而是通过第三方服务器做了中转和桥接,大致工作方式类似:

    1
    2
    3
    摄像头  --(WiFi或有线) --> 家用路由器 --(ISP网络提供商)--> 公网服务器

    手机APP --(4G或WiFi) --> 公网服务器

    (每一个 摄像头 都有唯一序列号(底部标签可见),在根据说明书首次使用时会注册到你手机APP上进行一个绑定操作,之后该摄像头只要联网就会把序列号视频画面一起传输给公网服务器;而你在户外打开手机APP后,手机APP会请求公网服务器发送你账户下摄像头的序列号,拉取和你当前账户绑定的摄像头的画面下来。)

    那么问题来了,这个公网服务器是萤石厂家自己提供的,理论上只要我可以伪造发送不属于我自己的序列号就能查看其他摄像头的画面了;事实上这样的事情并不是没有发生过,网络摄像头画面泄漏事件屡见不鲜,包括萤石自己的用户也有反馈过登录自己的帐号后看到的并不是自家摄像头画面这样的串流事件。

  1. RTSP 协议流

    作为本次选购家用摄像头的重中之重,我本来就是冲着 RTSP 才购买的这款摄像头,实测发现可以正常通过第三方软件截取视频流。

    1
    rtsp://admin:pass@192.168.2.109/

    (admin 为默认,pass 为摄像头底部6位验证码,IP为摄像头内网分配IP地址)

    如此一来,好玩的地方就多了:

    • 首先,可通过第三方视频流管理软件(我还在寻找类似群晖 Surveillance Station 套件的开源软件),或自己写Python脚本等方式(备选方案),在NAS上自动抓取视频画面保存到磁盘,这样我们就可以抛弃摄像头的云存储功能了,安全性得到提升的同时,我们的视频存储上限也将不再局限于内存卡的大小了。

    • 随后,可以通过端口映射方式将摄像头的 RTSP 映射到我家里宽带的公网IP上,在户外情况下可以通过第三方APP直接访问家里的公网IP的方式来查看摄像头的视频流,从而避开萤石服务器的画面中转,安全性得到提升的同时,还能一定程度上得到更流畅的视频画面,毕竟萤石服务器的网络带宽是公用的。

    • 最后,我们通过制定家用路由器防火墙策略,禁止萤石摄像头直接访问公网,仅允许通过路由器转发方式,从公网用端口转发的方式反向访问摄像头的RTSP端口。当然,这样一来萤石APP中的各种功能就都无法使用了,譬如:云台转动、摄像头遮盖等;因为这部分操作是萤石自己定义的协议,有机会的话我抓包破解一下吧。

五、结束

总的来说对这款摄像头还是比较满意的,毕竟价位放在这里,最近事情比较多等忙完这阵就开始折腾 RTSP 协议的事情,有眉目后再发一篇博文单独讲一讲好了。

好了,打完收工!