|
本帖最后由 悠哉悠哉 于 2025-2-13 03:20 编辑
这里分享一下我利用WebRTC插件来集成萤石摄像头的方法其实很简单,适合新手小白HA。系统自带的Camera集成亲测可以使用,但是不能连续的流畅播放视频,所以这个WebRTC是目前比较稳定的解决方案
(如果家里有萤石摄像头不能开启rtsp的,请回复你的型号,谢谢)
2025-02-12更新:如果遇到摄像头连接不稳定导致连接挂掉如何解决(请见本帖最下方)
1. 准备工作 - 获取访问摄像头的密码
其实你只需要知道摄像头的访问密码,一般是6位的大写英文字母,这个在摄像头的标签贴纸上面都会有写
如果摄像头已经安装上了,不方便拆下来看标签,那么去找包装盒里的说明书
说明书上面也会贴一个贴纸,上面有这个密码
但这里有一个大坑
就是前几年的时候萤石的摄像头有一个bug,就是APP上可以设置一个访问密码,但是这个密码不起作用,实际上还是贴纸上面的那个密码起作用
后来萤石把这个bug给修好了,但是又引入了一个大坑,就是新摄像头首次使用时候,APP会提示你设置一个新密码,如果你选择忽视这个提示,那么摄像头就变得无法通过任何密码访问,包括贴纸上那个也不行。
但是如果你设置了这个新密码,并且开启了访问保护,那么默认的贴纸上的那个就不起作用了。
我的解决方法是设置密码时候输入默认密码作为新密码,这样不会出现一个摄像头两个密码的情况。
如果一旦掉坑里了,就reset摄像头,然后老老实实的设置一个密码吧。
假如你已经有了密码,例如XXXYXZ
萤石的摄像头用的是这个URL
萤石的猫眼用的是这个
当然网上也有其他的url,只要你可以可以正常访问就行,不要局限于上面这两个
2. 安装HACS
这个网路上应该有很多教程,这里就不赘述了
HACS就是用来安装一些额外的资源包的
下面我用需要用到的程序WebRTC就是需要用HACS来安装
3. 安装WebRTC
安装完HACS后,右边的导航栏会多出一个HACS的菜单按钮
此时点击此按钮,进入资源库列表
然后找到WebRTC Camera, 在最右侧的。。。处,找到下载按钮,进行下载
4. 在设备管理处,添加WebRTC集成
进入到Settings>Devices & Services, 然后屏幕右下方选择添加一个集成
这时候列表里就会有WebRTC这个选项,选择添加
如果是小白安装,在提示的地方就不要填任何URL,这样新的集成会自动在你的服务器上安装Go2RTC服务
如果不想设置用户名和密码,可以点击提交,直接跳过。
5. 在dashboard上添加卡片
至此安装工作已经做完了
可以到dashboard上添加卡片了
选择卡片的时候,会有WebRTC Camera这个选项
然后正常添加
需要输入你预先准备好的可以正常工作的URL
添加完成后,可能提示一个错误,说是非正常的EOF等等
无视这个错误,过几分钟后,视频流就会正常显示了。
6. 进阶版:在服务器上打开1984端口,这样可以访问go2rtc的web界面
我的服务器是红帽子系
我用的如下命令
firewall-cmd --permanent --add-port=1984/tcp
firewall-cmd --reload
7. 组件简单介绍
HACS: homeassistant上的安装包管理器,用来安装额外的第三方包
WebRTC:用来连接摄像头的集成,自带go2rtc服务
go2rtc:一个运行在linux平台上的视频流服务器, 用来连接摄像头并且转发到Homeassistant的网页
如何停止go2rtc这个服务: 在homeassistant的设置页面,找到已经安装的WebRTC集成,选择禁用或者卸载即可
如何访问go2rtc这个网页: 在浏览器中输入http://<your ip>:1984 即可,前提是你开了服务器的防火墙端口,或者防火墙没有启用
8554这个端口不需要打开,因为homeassistant和go2rtc都是在同一个服务器上运行的,所以没有限制。
Ezviz 在其 2023 固件中关闭了其 IP 摄像机的 RTSP,你可以尝试以下方法
修复 #1
在某些摄像机中,仍然可以通过 Ezviz Android/iOS 应用程序打开它(设置 > LAN 实时视图 > 开始扫描 > 摄像机 > 设置 > 本地服务设置 > 启用 RTSP)。
此 RTSP 设置并非出现在所有 Ezviz 摄像机中,只有部分摄像机会出现。
修复 #2
有些人声称使用 Ezviz PC Studio 中的“高级设置”可以为他们修复 RTSP。1
) 安装Ezviz PC Studio,转到 PC 上 Ezviz Studio 的根目录并找到名为“config”的文件夹。2
) 将“config”文件夹中名为“AppConfig.ini”的文件复制到桌面。在桌面上打开“AppConfig.ini”。
3) 在“AppConfig.ini”中添加以下黄色高亮的命令,退出前保存:
[LocalOperation]
Show=1
4) 将桌面上的“AppConfig.ini”文件复制到“config”文件夹并覆盖旧文件。刷新EZVIZ Studio中的设备页面或重新打开Studio,然后您将看到“我的所有设备”下的“高级”,按下它并输入验证码。
修复#3
对于某些相机(例如C3A),什么都行不通,您必须降级固件,方法如下:
安装Ezviz Studio并按照上述说明启用高级设置。
在高级设置中,查找“设备类型”并尝试获取旧版本,您可以尝试通过以下URL前缀进行搜索。
https://usdownload.ezvizlife.com/device/Enter-Device-Type/2.0/Enter-Device-Type.dav
例如:
https://usdownload.ezvizlife.com/device/CS-C3A-B0-1C2WPMFBR/2.0/CS-C3A-B0-1C2WPMFBR.dav
在 Ezviz Studio 的高级设置中,在系统维护下,有一个从 PC 刷新 .dav 的选项。利用此选项更新固件C3A
https://usdownload.ezvizlife.com/device/CS-C2mini-31WFR/CS-C2mini-31WFR.dav
修复#4
摄像头的设置页面。隐私设置 -> 视频加密。禁用它。然后重新启动摄像头和 NVR
2025-02-12更新:如果遇到摄像头连接不稳定导致连接挂掉如何解决
------------------
首先问题出在视频连接上,使用TCP协议时候视频的断线,大多数是因为摄像头网络连接不稳定,比如说摄像头使用WiFi,但是信号不好或者不稳定等等原因。
解决的方法就是想办法用UDP协议连接到摄像头,并且把超时时间设置的大一些。
先说一些基本点:
go2rtc是负责用来连接摄像头视频的中转站,如果Homeassistant的连接请求过来,指定了一个连接地址,例如rtsp://admin:[email protected]:554/11,
那么go2rtc就默认用TCP协议去打开rtsp的这个连接地址。
所以想要转换到UDP协议,就需要使用另外一种连接方式,那就是go2rtc的内置配置。
内置配置方法:在go2rtc的web界面(http://<HA的ip地址>:1984,如果打不开请检查防火墙),找到config这个选项:
如果以前没有配置过,那么应该是一个空白页,填入以下内容(例子而已):
(本论坛的帖子的代码编辑功能一直不能正常使用,写了好多无法保存,重写也不行,能不能保存全看运气,浪费了我好多时间,我就在这里直接写)
streams:
TCP_camera: rtsp://admin:[email protected]:554/11
UDP_camera: exec: ffmpeg -avoid_negative_ts make_zero -hide_banner -v info -fflags nobuffer -flags low_delay -fflags +genpts+discardcorrupt -timeout 200000000 -user_agent go2rtc/ffmpeg -rtsp_transport tcp -use_wallclock_as_timestamps 0 -analyzeduration 1000000 -probesize 1000000 -threads 1 -strict normal -i rtsp://admin:[email protected]:554/11 -c copy -f rtsp {output}
保存并且重启后,在HA中就不需要使用长的连接地址了,直接用这个配置里的配置名称即可,比如说在HA的地址栏填入 TCP_camera, go2rtc就自动帮你使用第一种连接方式,填入UDP_camera就是UDP连接
大家看到,这个udp串非常的长,之所以这么长,是因为里面加了很多的udp连接优化参数,都是防止断线的。请把蓝色加粗部分替换成你自己的连接,其余部分可以保持不变。-timeout 200000000 是超时20秒,大家可以酌情自己设置。
要注意的是,UDP_camera: exec: <UDP连接串> 这里的“exec:”不要漏掉。
还有一点需要注意的是,每次测试时候,如果HA连接上来了,就需要刷新一下go2rtc的config页面,否则你的变动无法保存。如果HA没有重新连接,则不需要刷新。
最后,祝大家成功!
|
评分
-
查看全部评分
|