需求场景
- 要是想在家里装监控而又不想花钱,而且主要是爱好自己动手,最好手里还有台群晖NAS和几部旧手机。
- 通过本文那你将达成折腾的目的,并具备一个初级的家庭录像系统,可以手机软件查看,可以带3至4小手机充当网络摄像头,
解决愿景:
硬盘录像机利用家里的旧电脑、笔记安装一台NAS,这样就能带来不小的便利,比如随时随地打开一台旧手机就能通过wifi保存录像在NAS上,查看的时候会有时间线,显示哪些时段是活动的,可以任意调换摄像机,改变时间点,快进,快退。
硬件和系统
-
摄像机端:
. 正规的网络摄像头也就100-1000,以我的了解带红外的在300-500就还可以。要比旧手机好用一点点。但是想想又要安装布线,其码电源也要过去。好像也不太方便的样子。
. 手机带个充电宝,用在哪最少也能开一天。各和优点吧。但是手机前置摄* 像头可能好些,后置散热太大,需要一个通风阴凉的环境,常时间带电摄像,也挺考验人的。专为爱折腾人士准备,注意散热,不要着火
-
录像机端:
. 群晖NAS是也能为网络摄像机和手机模拟的摄像机提供存储和访问服务,
. 群晖NAS的特点是带时间线,可存储,通过利用家里的NAS,或给家里加一台NAS,这是群晖灵活的地方。而纯网络摄像头不能显示时间线(动态图像标蓝) 。
. 通过透传可以在互联网下,手机上随时随地查看。
旧笔记本最好用上双硬盘,把光驱位,安装一个硬盘支架,安装两个同容量的硬盘,防止数据丢失,这样就能同时做家庭的NAS存储也还放心。
如果是第三方的小主机,也不错。我使用的是一台工控机,Intel Atom CPU D525,优点是省电,缺点是性能不强,安装了两个大硬盘,硬盘还总爱咯吱响。硬盘要选静音的低速摄像机硬盘,24小时运行。
网上有很多制做引导安装的教程,主要是6.1的稳定版,6.2的带硬件解码的支持intel7代以上显示核心的。
本文的侧重点在启用SurveilanceStation和直通互联网
引导下载6.2.3 :
https://download.csdn.net/download/wjcroom/86500745
安装文件:
https://download.csdn.net/download/wjcroom/86398132
SurveillanceStation安装
- 手机端安装livecam(苹果和安桌7.0以上),安卓的ip-webcam第三方软件。
- 需要注意的是livecam只持两个,onvif也是只支持两个。 ip-webcam 好用且强大我放在下载资源里ip-webcam1.1
- 手机livecam运行后登陆NAS,在(SurveilanceStation)SlS里就能看到它了,有适时的有录像的。而ip-webcam就需要添加网络摄像机,自动配置一下。这也是IP-webcam灵活的地方,可以只录制有动态的图像,节省空间。
- 手机横屏以后,转向了再点启动服务。然后再添加,这样添加摄像机才正常,有时候SlS画面是颠倒的就是因为这个原因。
- 我也曾使用一个网络摄像头,自动添加的画面的颠倒的变成了坚向,这时在SlS里修改,编辑摄像机-设备设置-图像-串流1-分辨率 9601280为1280960就能解决。
- 其实截至到目前已经可以当硬盘录像机使用了,对于一个普通家庭的摄像头3,4个够用了,Synology提供一个手机端的DS Cam软件,里面可以适时播放也能放录像,主要还有时间线。这一点是最方便的地方。普通的网络摄像头可能不具备这个能力,就是在视频中有动态的地方会显示蓝色。
启用一个SN和第三方FFmpeg解码录像预览图
以前群晖moment上传的视频显示成黑框,也没注意SlS存的录像是不是在DS cam中也是黑着的,索性在这个主题中加上这个说明。
获取SN的方法:
- Docker DSM虚拟提取出一个SN号, 因为6.2下docker中没有dsm,所以在7.0以后,用网上的方法安装了一个虚拟免费的DSM,并提取出了序列号和MAC码,按教程写到引导文件中,算是完成了半洗白,虽然能登陆ID,但无没开启quickconnect。 这样在videostation的网页上,好像能播放mov文件,但是photo里的mov,手工上传的还是不行。需要用手机客户上传,才能自动编码,网页播放。
- 在线SN算号器 这个也不知道能力多大。这个好像没有任何能力,只是为了玩。
安装SN方法:
- 首选 U盘VID,PID加上后,立即把Sn和MAC也加上。
- 安装成功修改再U盘,按程序员做法,ssh后台修改
. 安装成功后一键替换NASSN replacenassn.sh,
我的下载:https://download.csdn.net/download/wjcroom/86438380
. 纯手工黑群晖安装成功后修改mac以及sn
安装配置FFmpeg:
虽然得到了SN但不一定能用mp4预览图,可能是某些地方又不对了。也许这样会带来其它问题,所以安装一个ffmpeg解决吧
- 在第三方源中添加这个:
https://spk.imnks.com/ - 手工下载
https://synocommunity.com/package/ffmpeg# - 配置的参考替换ffmpeg,
. 群晖为Video Station 安装 FFMPEG和支持DTS音轨
. 黑群晖moments视频无缩略图,安装第三方ffmpeg解决
要注意的事:
.& 安装完成ffmpeg必须执行以下命令
. ln -s /volume1/@appstore/ffmpeg/bin/ffmpeg /usr/bin/ffmpeg
或者
cp /volume1/@appstore/ffmpeg/bin/ffmpeg /usr/bin/
. & 因为以前存在视频文件没有转码,所以还是会显示方框,重建索引可以解决这个问题。
在monment中用户-设置-通用 最下边重建索引,可以解决monment的问题。
启用ssl证书需要一个域名才安全也能双向语音
当然这个不是必须的,其实本文的功能也就说得差不多了,只是为了手机能在外网访问家里的NAS这又是一个老生常谈的问题,总感觉SSL已经成了必须品,而网上大多数服务商都是收费的。而所有的摄像头服务商的云盘大概也是收费的,我感觉用一台大品牌的录像机能解决问题,就不要在这里折腾这个了,真是很心累,而且,去哪里找一个域名,免费吗,做梦吧。我用一个维持了10年,没啥用,白花了千把块的域名,开启了一个家庭里的Nas上用的免费SSL,这中间又历时半年。更何况最后还要找固定IP做透传。
对普通用户难道要租用一台服务器,或者用不那么安全的方式http?
现在先说一下,这个证书,我不清楚不用域名的证书是否能起到保护隐私的做用,就是一个失效的证书也能用,只是会收到安全提醒。如果可能,那就用一个无效证书,提升http下的安全吧,必竟小心为妙。这不只是双向语音的问题。
免费的证书大多三个月一申请,服务商一地都是。在腾讯阿里注册了域名cn的一年40多。送一年的ssl,然后要交费使用。
acme.sh是我暂时使用的,它可以支持各种dns服务商。因为这个脚本要通过dns的KEY和API来验证你是DNS某个域名的所有都,添加一条txt纪录然后删除,通过以后,会发放ssl证书给这个域名,acme.sh也是支持阿里的,原来我的域名托管在阿里, 手机添加这条txt总是不成功,是我运气差吧,后来在配置文件中加入了阿里的key。然后dns参数,dns-ali这样由脚本自动验证就可以了。 而ssl发放机构,我也是临时选择了zerossl。据说也是有登陆的id和key,需要注册获取并配置的。
.acme.sh/ca/acme.zerossl.com/v2/DV90/ca.conf
- dns取得KEY
- ssl商家的key
- 运行带参数的命令
另一种方法我也试了很久,就是不通过域名,而通过文件进行验证拥有这台服务器,从而连带验证了dns。但是这是通过80端口访问的。而我当时拥有ipv6。虽然我不怕80,但是ipv6在我的网络中的表现不怎么样。并且在使用文件验证的过程中,出现各种小意外,比如 文件名中不能有.但是脚本又必必有。总之这个也困扰了很久,手工放上去的验证文件总是达不到对方的要求,而且怎么可以手工放呢。
所以最后采取了dns的方法,开始并没有找到ali的接口示例,所以dns解析商去了cloudflare。然后后来ali也在文档中。但是没有往回转。 我通过这事才知道,虽然在ali注册托管了域名。但是解析商可是任意一家,只要域名的解析服务器定义成别人的就行了。
然后要某些网络环境下,居然cloudflare网址无法访问。也是很神奇的一件事了。
openwrt是个不错的网络底层群晖自己也已经足够透传的底层逻辑
做为普通家庭用户openwrt20以后的各个版本,越来越好用,但是和npc和frp各个新版本,有不大不小的区别,虽然平台支持运行,但要时时稳定不掉线还有点差据,而且各种前商安端版,环境配置,参数文件,说不定在哪里就不动了,还没法排查。
所以群晖自己结合docker就能实现还错的稳定版本比如ipv6 ddns,npc,frp都有各自的实现。而个人感觉还是群晖的稳定一些。openwrt差一点点。
只是openwrt更省电,若是有稳定的固件还是不错的,省得自己再去弄另一套透传了。以前在frp上自己手工写带监控重启的脚本,到了后来也就不再使用了。那时发现了国内很多有流量限制的免费frp服务,速度还是不错的。后来也就不再用了。frp服务商有些用通用的程序,有些用专用的。主要是通过一个key的认证,允许自己的TCP某端口,经过商家的外网转发出去,模拟成商家的端口。有域名的话,会更好用,可以结合自己的域名绑定。
一个固定的IP很重要
因为现在各网络运营商都使用了子网IP无法通过外网直接访问,才出现了npc-nps,frpc-frps,这样成对的软件,来使外网的IP能代理访问内网的电脑,这样绕圈子的方法。使得以前的 DDNS不能再被大量使用了。我要是去问运营客户要一个外网IP,多数情况,她他不懂我在说什么。懂的技术人员也会说没有。有的话,也要DDNS。也是常出差错的。
所以最好的有一个自己的专用固定外网IP,各种主机都可以有。比如亚马逊的EC2,只要有信用卡,没有注册过亚马逊账户,就可以领一台,免费使用1 年。就可以在他上面安装上frps,nps这样的服务端。
从2021年起我开始用np这软件,0.26.10当前版本。配置简单,有中文说明。可以在服务器端动态调整映射参数,还能做反向代理,做域名绑定。功能很好,又足够小。下面就展开介绍。
用npc透传需要做的事
假设服务端已经有了,这时需要两三个参数
npc -server =ip:port -vkey= 3434sadfsdf
我采用docker方式,
应该是一句命令就搞定了
docker run -d --restart=unless-stopped --name=npc --net=host -e Host={
Host} -e VKey={
VKey} taygetus/npc
https://registry.hub.docker.com/r/taygetus/npc/
根据这条命令也可以手机在web上下载taygetus/npc容器,点运行进行参数配置。-e 是两个环境变量,–net是网络模式,要运行的命令可能不需要的吧。
不过还是命令省事,就是需要sudo,不然docker可能会提示权限不够。
用frpc有许多第三方的免费服务
以前用frpc,所有端口都写在config文件中,十分不方便。npc是后期自己逐渐加上去。也能随时改,就很好用了。所以在这里不多研究frpc了。只是以前网上有很多改版的服务商,免费给用,也挺不错。但是我有自己的IP也就不用了。
题后话关于
以上就是整个群晖录像并透传的使用过程了,有个老程序员说过了黑群晖是很累人的。要有经验,还要反复折腾。前几天我就遇到一个U盘的奇特现像,一样的操作,某些小厂杂牌的U盘引导盘,就是不认网卡。后来认了网卡,开机画面卡住。我怎么也理解不了。一个U盘芯片能有这么大的区别。大概问题就在于引导U盘的系统,对这些芯片的兼容性存在问题。所以做为小小U盘,也是需要用大厂商稳定产品。我就是上了小厂,假货的当。其实它就不是做这个用的吧。
而且有的安装包就行,一次通过,而换一个包就开始挑剔U盘了,所以在做黑群晖的过程中,有些顺利其实是意外,而另外一些意外,是正常现象。所以有些意外出在U盘上,还真让我意外,原来第一次用一次好U盘,才让我顺利下行。而不是怀疑这台电脑水土不服来着。
啰嗦这么多就到这里吧。祝看到人的顺利且走且折腾