接入海康硬盘录像机接入到homeassistant的坑

0. 说在最前

我一开始是参考囧大的帖子:接入教程] 海康威视摄像头接入HomeAssistant的方法(Ubuntu)

可能囧大写帖子的时候 HomeAssistant 还没更新,新版本的 ffmpeg_bin 必须写在 configuration.yaml ffmpeg: 里面,不在是 camera: 里面定义了 ,今晚就是这个把我坑的好惨。

多谢 Syjjx 在群里对我提点。

最后,建议各位看大佬们写的教程帖子的时候必须先看看官方文档,再看大佬的帖子这样才会少遇坑。大佬们的帖子写的时候可能没问题,但是后来随着系统更新会改变。

FFmpeg 接入 HomeAssistant 官方文档

1. 安装 ffmpeg。(不同操作系统安装步骤google或者百度)

我是Debian 9,安装十分简单。

1
apt-get install libav-tools

里面包含了 ffmpeg,应该也可以直接这样

1
apt-get install ffmpeg

2. 修改配置文件

先到 configuration.yaml 添加如下配置

1
2
ffmpeg:
ffmpeg_bin: /usr/bin/ffmpeg

注意:如果不知道自己安装系统的 ffmpeg 绝对路径可以使用如下命令得到

1
2
# which ffmpeg
/usr/bin/ffmpeg

再到 configuration.yaml 写入如下配置

1
2
3
4
camera:
- platform: ffmpeg
input: -rtsp_transport tcp -i rtsp://user:password@camera_ip:rtsp_prot/h264/ch1/main/av_stream
extra_arguments: -pred 1 -q:v 2 -s 704x576
  • user:是摄像枪的登陆用户名,海康威视默认是admin
  • password:是摄像枪的密码,海康威视现在初始化摄像枪都需要修改密码。
  • rtsp_prot:这个是 rtsp 协议的端口,可以到摄像枪网络配置里面找到。
  • h264:这个是代表你的摄像枪是用什么压缩协议,大部分的摄像枪是H.264和H.265,而摄像枪里面也可以自行选择。
  • ch1/main/av_stream因为我这个是老款的硬盘录像机,URL上新款的可能和我略有不同,大家可能自行百度或者google找到你的录像机 rtsp 的url了,ch1代表第一路视频信号。

    3. 故障排除

可以在终端下运行 ffmpeg -rtsp_transport tcp -i rtsp://user:password@camera_ip:rtsp_prot/h264/ch1/main/av_stream -f null -

如果无报错只刷如下显示:

1
2
3
4
5
6
7
8
9
10
11
12
13
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 3 >= 3
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 18 >= 18
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 21 >= 21
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 38 >= 38
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 53 >= 53
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 56 >= 56
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 73 >= 73
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 88 >= 88
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 91 >= 91
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 108 >= 108
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 123 >= 123
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 126 >= 126
[null @ 0x55ad0c230ac0] Application provided invalid, non monotonically increasing dts to muxer in stream 0: 143 >= 143

就表示你的参数没问题了。

更多参数请查看官方文档:https://home-assistant.io/components/ffmpeg/