Pov

From RevSpace
Jump to navigation Jump to search

What is it

POV is the (virtual) server managing the Webcams. It stores video files of all RevSpace webcams over the last 2 days.


OS specifications

  • debian stretch
  • 32b
  • virtual machine with 2 cores
  • 1GB ram
  • 10GB root filesystem
  • 100GB storage for camera files


Software


Motion

  • 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


Constatus

  • 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 this is since 2.0 no longer the case; it seldomly (if ever?) crashes anyway
  • 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 JSONfile is a libconfig++ file.

For revspace:

  • 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: one server is initiated per camera and there's also a global http-server
    • 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(!)

Recording Specifications

  • 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


Cameras

Number Stream port HTML port Physical device protocol Where
CAM 1 8084 8101 RTSP hanging above the 3D printer
CAM 2 8085 8102 MJPEG cantina/kitchen
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 6 broken
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 8 8091 8108
CAM 9 8092 8109
CAM 10 8093 8110
CAM 11 These go to eleven?! (this camera doesn't actually exist yet)