We need to create Device that will consist of Orange Pi with 2 ethernet ports. IP Camera connects to first RJ45 and Internet cable to the other. The Device connects IP Camera to the Cloud. The Device stores video archive locally. And when bandwidth/connection is available, is sends missing video pieces to the cloud. When sending to the cloud, device has to be able to change resolution and FPS of the video by embedded h.264 support.
1. Orange Pi based Linux device with 2 ethernet ports. 1st port is for IP camera, 2nd is for internet.
2. Connect IP Camera to RJ45
3. Check if SD card or HDD connected to the Device and how many empty storage on it.
4. IP Camera lookup.
5. Register IP Camera to the cloud with the MAC address.
6. Synchronize camera time with the time of the server.
7. Recording video from IP Camera to the local SD card or HDD with small pieces. The name of the file = precise date and time of the start and length of the video for verification purposes what pieces of the video are missing in the cloud storage.
8. Setup VPN connection between camera and the cloud.
9. Start transmission of the video fragments from p.7
10. Threat Disconnection, Local storage overflow, time change on the camera.
11. The Device should understand login-password from the camera, which is stored on the cloud.
12. Connection from device to the cloud has to be encrypted.
· CPU: ARM Cortex A7 Quad Core
· RAM: 1GB DDR3
· 2GB NAND FLASH; SATA HDD
· 100MBIT ETH0; 15MBIT ETH1
Time stamps in the time of the Device.
If file system of the device allows to store time of the creation of the file, then we look file by time and store time stamps.
Handle periodical change of the speed of the connection.
If bandwidth is not enough, reduce FPS, Resolution, send to the cloud and inform cloud about changes.
Original video is stored locally inside of the Device.
If only 1 user watching live video, Device sends him Live Stream directly from IP Camera, without cloud server by using p2p connection. If there are more than 1 user, sending Live Stream is being sent via our cloud server.
If bandwidth becomes limited, video is being saved locally and then sent to the cloud after Live View disconnects. Live is priority over sending video archive to the cloud.
Programming Languages are C/C++
Later this software will have to be embedded to IP Camera directly so keep in mind that size of the app has to be as small as possible.