How To Have Some Cameras Store Locally And In The Cloud At The Same Time?

I am looking to set up a dual recording system. I am using Hikvision and Avigilon NVRs as my primary NVR. But I want if possible to have two days worth of videos being stores directly in the cloud. The same time it is being written to the NVR, it should be written to some sort of cloud based storage.

I dont want it to be a backup (like Avigilon can do) because I want it written their live. I know that depending on the bandwidth, I may need to have the cloud based recording be a different video stream.

I am looking to be able to store the video in a personal cloud or in a commercial product.

Any guidance will be most appreciated.

Thank you


Hi, 1. Some questions...

How many cameras at what bit rate?

What's the available bandwidth of your upstream connection?

What are the retrieval requirements? (Live view thru cloud, playback, or just raw storage, intermittent use or continual).

Since it's only 2 days storage required, have you considered edge recording in the cameras?

The cameras are 2MP cameras, and while I would love to have it at the full 2MP and full bitrate, realistically I cant so I would go with what I can get away wtih.

Upstream would be 25mbps.

In regards to retrieval, it would be nice to be able to have playback though the cloud (no live), but if I can only do raw then that will be okay as well. Playback will only be if the main NVR fails so hopefully never.

Im looking into this just in case there is a fire, etc.. so I would want it offsite completely. Thanks

Do you need video or would JPEG images surffice? If JPEG images are ok this is relatively easy with Avigilon and Dropbox, Box or Google Drive.

Sounds like several cameras and only 25Mbps upstream. How many streams do you suppose you can fit using MJPEG but without squashing it to death?

To be clear I am talking about JPEG images not MJPEG video.

To be clear I am talking about JPEG images not MJPEG video.

MJPEG video is a series of JPEG images.

Even one JPEG image per second is still MJPEG, no?

There are cloud services out there that connect to cameras 'generically' so long as you open up holes in firewalls to let the video 'out', etc. (not recommending this but technically it is possible). Angelcam and Camiolog are two that support this.

I want to do something like you

- I'm testing FLIR that buffer video on SDCard then send footage to AWS. I'm waiting for feedback from their developer team because i'm too limitated

- I'm thinking at using a Hikvision sending video to a NAS locally then coding something to upload some footage to AWS

Why AWS ? it's the choice of FLIR and S3 is well know to handle files securely

Why not Anglecam ? Because I don't want to open my Firewall, and because I don't want to kill my bandwidth streaming 24/7

My 2 cents ... I think Google Hub may be a proxy for NestCam because people complains about bandwidth used by the camera.

Jean-Philippe,

Yes, you could certainly build your own though that probably limits the number of people who will take that approach given the cost / complexity of doing it vs paying a small monthly fee to a service provider.

Btw, if you build it yourself, how are you not going to open holes in your firewall. Are you going to add a local box that gets the feeds and then sends them out securely? I ask because, with the cameras themselves, they generally cannot be set up to securely send out on their own.

I should receive a Hikvision soon to test. My idea is:

  • Detect motion on Camera (with PIR, ...)
  • Send footage to a NAS like Synology (in FTP or ...)
  • Run a process on the NAS in NodeJS for instance
  • Send footage from the NAS to the Cloud (like AWS S3)

The NAS (200$) is the buffer for all video so I can decide what to send to the cloud and when and how. The code push to the cloud so you don't have to open any port. But yes you need a box at home.

FLIR do exactly the same thing but from the SDCard without box.

The drawback is you can't see live stream. But anyway with bandwidth and lag live stream is not really live.

I don't like streaming everything. There is an Article few week ago on IPVM saying that 90%? of security camera footage are never watch.

Yes, that makes sense.

Are you going to also to build some sort of front end interface to retrieve / watch recorded video? Or is it just going to be a file directory of video clips named by camera name / time?

Yes, I'd like to build a little front end on the NAS dedicated to our business. And I already have a dedicated front end to work on uploaded video. (BTW NAS already have tools to manage video files)

My main issues are:

  • Converting video to WebM it takes lots of CPU. It can't be done on a low cost NAS and very expensive on Cloud
  • We already do computer vision on uploaded video but I'd like to do deep learning

And the NAS will also do other technical things very specific to our business. That's why I don't want an NVR "only".

How would you go about sending the data to the cloud?

1, Jean-Philippe explained that above:

  • Send footage to a NAS like Synology (in FTP or ...)
  • Run a process on the NAS in NodeJS for instance
  • Send footage from the NAS to the Cloud (like AWS S3)

Also sounds a lot like Eagle Eye's CMVR box/setup.

Well, there is a lot more going on in Eagle Eye's implementation but same basic architectural approach with a node in the middle.

Full disclosure - I work for Eagle Eye.

This is a little like our CMVR setup, which allows you to store video locally and/or on the cloud on a camera by camera basis. However, I would be interested to know why the need is for only 2 days in the cloud? How long is the rest of the video being stored for.

Also, just to be clear, we don't work with DVRs/NVRs as a backup, so we would not be a fit for this specific case, unless the customer wanted to replace the existing equipment.

"I would be interested to know why the need is for only 2 days in the cloud?"

Explained above by OP: "Im looking into this just in case there is a fire, etc.. so I would want it offsite completely." To that end, I am presuming it is for emergency backup just in case the recorder was lost / destroyed for any reason.

Jean-Philippe, have you looked at AWS Storage Gateway? I have not used it personally, but according to their description:

The AWS Storage Gateway allows you to create iSCSI storage volumes, storing all or just your recently accessed data on-premises for low-latency access, while asynchronously uploading this data to Amazon S3, minimizing the need to scale your local storage infrastructure

Thanks for the tips ! Not already, I'll try throught the S3 / NodeJS API