Hik-Vision (DS-7208) cloud backup with Hik-Connect "platform access"?

gschadow

n3wb
Jun 24, 2019
2
0
World
Hi, I am new to Hik-Vision stuff and CCTV security systems in general. However, I am absolutely not new to networking and coding and cloud computing stuff.

I have set up one DVR unit model DS-7208HGHI-F1 / N with 4 of 8 cameras connected. I can access it directly on the LAN to see the cameras and play-back from both the Hik-Connect App on my Android device and on the Laptop browser. I can also access the "platform access" via hik-connect.com using that serial number via the Hik-Connect App when I am away. That is well and good.

I don't have a fixed IP address and not even any IP address which I could DMZ forward to the DVR box to be able to contact it directly when away, which is where this "platform access" comes in really handy. DDNS (dynamic DNS) only works if my Internet provider would furnish an IP address to my home network, but they don't. Many people share the same IP address, so I cannot make a forwarding rule on my firewall which would make the DVR box into a server for direct contact. The beauty of the "platform access" is that the DVR box is initiating the connection to the hik-connect.com server, and from there I can connect to it as I have linked it to my account.

Now to the cloud stuff. I run servers at Amazon AWS and other providers. Those are UNIX/Linux servers. What I would like to do is slurp the video from the DVR to the cloud, so that, if someone breaks in here and just destroys the network, cuts the power, or robs the DVR device, that I would still have the last pictures saved of the breach.

My first choice isn't actually hacking this all myself, I am generally open to use commercial services also, but I cannot find anything that fits. There is this new EZVIZ service, but that requires a different support from the DVR, which mine does not support. I also find it quite expensive considering what storage would cost me on my cloud systems.

So, my question is now: is there an open source project already which uses some of the Hik-Vision SDKs to connect to this "platform service" and then download the video data? Anything else which can interface with the Hik-Vision platform access? Or, as I see, I can configure the "platform access" to use a "custom" address, which I could connect to my cloud server directly, if I had the server protocol and if there was at least some nucleus of software I could use to start out with? Remember, solutions which assume the ability of the cloud server to initiate connections to the DVR or cameras directly will not work in my use case.

Thanks for any pointers you may have.
 
Looks like not a lot of activity on this forum, and I will have to answer my own question.

I could reverse engineer this platform access protocol somehow and then develop my own system. OR, I might use a man-in-the-middle proxy (e.g. MITMProxy) to connect to as a custom "platform access" URL, which then proxies the traffic to the hik-connect.com site. As the videos are streamed through, I could save them off to a file.

This would still require a trigger from the hik-connect app, where I would request the video streams and watch them all to save that copy. So after step one, I would still need to reverse-engineer how the playback option is being invoked to receive a list of motion activated recorded slices, and then request those slices that have not been downloaded previously.

Otherwise, I could treat these data slices just like a cache, i.e., on the MITMProxy the files are saved to disk and when requested again, would be read from disk, not requested from DVR device any more. However, since the DVR device will evict old files over time, we now will preserve them (or at least retain more video than on the device). So we must teach that MITMProxy to also respond to playback list requests and the very basic handshake so that if the burglar steals the DVR box, we can see him do that even if that box isn't there any more to respond.

And just like this the task has become quite a bit involved, way more than could be accomplished in one afternoon. I find it surprizing that nobody else has been trying to do this?