联想C2E摄像头的折腾

背景

老苏的巨峰摄像头坏了,一直也没在意,因为监控也不是什么刚需。朋友送的,比较古老,不像现在的家用监控摄像头,都有 app,而这台巨峰摄像头不光不支持 app,后台设置还只能用 IE,因为需要安装 OCX 控件才行 😳

坏就坏了吧,老苏上 拼夕夕选了一款销量最大的,联想 C2E,网上找不到太多的资料,从商家的宣传看,支持 5G双WIFI,还有 H.265 编码等等,最重要的应该还是便宜吧

应该是买的版本不对吧,反正到手之后,第一次配置就发现用不了 5G,只能用 2.4G,存储卡别说品牌,连个容量也没标,手上暂时没有读卡器,app 里也看不出来,后来在联想官网的介绍上发现是没有上面这些内容的 😳

app 觉得功能还是可以的,监控摄像头该有的功能都有,移动侦测、报警、对讲、预置位、云台、截图、录像、回放等等

云存储就算了,送了几天免费体验,一年的费用又够买一台了

rtsp

老苏想把 C2E 接入 HomeAssistant 或者其他的系统,首先就需要能获取到摄像头的 rtsp 地址,但是网上能找到海康、大华、雄迈、巨峰、天视通、中维、尚维、九安、技威、宇视、天地伟业、巨龙、深圳景安、安讯士等等,就是没有联想

接下来开始我们的折腾之旅,老苏把可能的 rtsp 地址都试了一遍,万一是 oem 的呢?可惜一一都失败了,但也不是完全没收获,最起码了解了常用的几种 RTSP地址格式,为下一步的猜测打下来 “坚实” 的基础 😂

网页

首先当然是在浏览器中访问 http://<摄像头ip>,这个地址可以在两个地方获取

  • 路由器的后台,可能会显示为 JA_IPC
  • app 中 –> 设置 –> 摄像头参数 –> IP地址

访问的结果有点出乎老苏的意料,地址会跳转到 http://<摄像头ip>/apcam/adm/asptest.asp,但是显示找不到网页

看来似乎也许不支持网页配置吧

抓包

因为也没有成功,所以就不详细说了,简略的介绍下:

  • 首先尝试了真机 + Fiddler 抓包,但是会显示网络错误

  • 然后尝试了用虚拟机 + Fiddler 抓包

随便下了个 Android 模拟器的最新版,一直报证书错误,后来找到原因说是 Android 的版本超过 7 之后,不再信任用户证书

老苏找到了一篇文章,详细介绍了如何制作系统证书,但老苏没尝试,有兴趣的可以去看看

文章传送门:Android 7.0+模拟器Fiddler抓包详细教程(http://www.tlcement.com/36021.html)

然后下了个老版本的Android 模拟器,证书不报错了,但是运行 app 跟真机上一样,显示网络错误,似乎联想做了安全方面的处理

柳暗花明

正在老苏一筹莫展的时候,无意中看到了一篇 issue,原文地址:https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks/issues/1564

老苏从标题获得了一个重要信息,Lenovo C2E camera using Ingenic T21

虽然发帖者 boot 失败,但是从 boot log中,老苏找到了跟 rtsp 相关的的一段

1
2
3
4
[INFO  rtsp/rtsp_demo.c:324:rtsp_new_demo] rtsp server demo starting on port 554
[INFO rtsp/rtsp_demo.c:510:rtsp_new_session] add session path: /live/ch00_
rtsp Video Stream ShmID = 0, codec = 3
rtsp Video Stream ShmID = 1, codec = 3

这个信息很重要,所以经过多次失败后,老苏猜测rtsp 地址会不会是👇这样?

1
2
# RTSP 地址
rtsp://username:password@ip:port/live/ch00_

然后用 PotPlayer 进行尝试,证明了老苏这次的想法是正确的,下面这些链接都是可以成功接到像的

1
2
3
4
5
6
7
8
9
10
11
# 1080P@15 H.264
rtsp://username:password@192.168.0.128:554/live/ch00_

rtsp://username:password@192.168.0.128:554/live/ch00_0

rtsp://username:password@192.168.0.128:554/live/ch00_0.264

rtsp://username:password@192.168.0.128:554/live/ch00_0.265

# 640*360@15 H.264
rtsp://username:password@192.168.0.128:554/live/ch00_1

编码这块不清楚怎么设置,摄像头一般可能会有 H.264Mjpeg ,甚至 H.265 等,但如果 C2E 真的是用的君正 T21 方案,那应该肯定是不支持 H.265

所以根据前面的测试,老苏可以总结下 Lenovo C2E cameraRTSP 地址:

1
2
3
4
5
# 主流:1080P@15@H.264
rtsp://username:password@ip:port/live/ch00_0

# 子流:640*360@15@H.264
rtsp://username:password@ip:port/live/ch00_1
  • username:用户名,登录联想慧眼 app 的手机号;
  • password:密码,登录联想慧眼 app 的密码;
  • ip:为设备的局域网 IP
  • port:端口号为 554

接入 Surveillance Station

品牌选 [用户自定义],输入 rtsp 地址

测试成功能看到图像

完成之后

接入 HA

详细的过程可以参考 Web版视频监控软件ZoneMinder 一文的 接入 HomeAssistant 章节,这里只贴一段写入configuration.yaml 的代码

这是直连的方式,也可以通过 Surveillance Station 或者 ZoneMinder 再接入

1
2
3
4
5
6
7
8
- platform: generic
name: lenovo
stream_source: rtsp://username:password@ip:port/live/ch00_0
still_image_url: none
verify_ssl: false
username: <你的username>
password: <你的password>
authentication: basic

参考文档

Trying to hack Lenovo C2E camera using Ingenic T21, can’t boot into uboot. · Issue #1564 · EliasKotlyar/Xiaomi-Dafang-Hacks
地址:https://github.com/EliasKotlyar/Xiaomi-Dafang-Hacks/issues/1564