What is it
POV is the (virtual) server managing the Webcams. It stores video files of all webcams over the last 2 days.
- debian stretch
- virtual machine with 2 cores
- 1GB ram
- 10GB root filesystem
- 100GB storage for camera files
- motion https://motion-project.github.io/
- originally used for all cameras, still used for camera 6 and 11 which are down.
- constatus https://vanheusden.com/constatus/
- all cameras but 6 and 11.
- motion is installed from the debian repository
- configuration files are under /etc/motion
- main configuration is motion.conf which includes cam*.conf
- as by the design of motion, all configured cameras (6 + 11) are monitored from 1 process
- installed from the github repository https://github.com/flok99/constatus
- installed under /usr/local/constatus
- started (currently, 20170903) from /etc/rc.local
- each camera has its own constatus process - the idea is that if something crashes, that not all cameras will go down
- video archive can be viewed under http://10.42.19.84:port/ where port is 8101 for camera 1, 8102 for camera 2 and so on
The configuration files are JSON files. They consist of 2 or more sections: general, source and then optional sections. Every other section (apart from video loopback) has an array of entries for their data.
- general section: logfile is located in the /usr/local/constatus directory and loglevel set to info
- source: max-fps set as low as possible (must be high enough for all "users")
- always resizing to 640x480, ignoring aspect ratio
- for mjpeg sources, it is chosen to always ignore issues with ssl certificates
- http-server: two servers are instantiated per camera
- first server is for motion compatibility: it pushes mjpeg-data without any http handshake whatsoever (apart from the http headers). framerate set to 2fps.
- second server serves an html menu with a couple of options. it allows you to browser through the recorded videos. framerate set to 1fps.
- stream-to-disk: only 1 file (currently). avi-container with mjpeg frames. jpeg quality set to 50, frame rate set to 1 fps
- no motion detection
- cam5 is mirrored in both axes as it has been mounted upside down
- every camera adds a text in the upper left corner with the camera-number in it and in the lower-right corner the timestamp of the moment that the frame was recorded(!)
- 1 FPS video files
- 2 FPS HTTP streaming web interface
- each webcam produces +/- 50MB of data on /camdata per half hour, so that's +/- 50 * 2 * 24 * 10 = 24GB/day and as /camdata is 100GB we can store around 4 days of video data
|Number||Stream port||HTML port||Physical device protocol||Where|
|CAM 1||8084||8101||RTSP||hanging above the 3D printer|
|CAM 3||8086||8103||MJPEG||back side of klusruimte|
|CAM 4||8087||8104||MJPEG||front side of klusruimte|
|CAM 5||8088||8105||RTSP||houtbewerkingsruimte (woodworking shop)|
|CAM 7||8090||8107||MJPEG, source is Verint Nextiva||these produce an RTP stream which are converted to MJPEG by scripting running on the shell server, see https://github.com/Peetz0r/revcaminfra.|
|CAM 11||These go to eleven?! (this camera doesn't actually exist yet)|