Pov: Difference between revisions

From RevSpace
Jump to navigation Jump to search
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=== what is it ===
=== What is it ===


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




Line 15: Line 15:




=== software ===
=== Software ===


* motion [https://motion-project.github.io/ https://motion-project.github.io/]
* motion [https://motion-project.github.io/ https://motion-project.github.io/]
** used for camera 6 and 11 which are down
** originally used for all cameras, still used for camera 6 and 11 which are down.


* constatus [https://vanheusden.com/constatus/ https://vanheusden.com/constatus/]
* constatus [https://vanheusden.com/constatus/ https://vanheusden.com/constatus/]
** all other cameras
** all cameras but 6 and 11.




==== motion ====
==== Motion ====


* motion is installed from the debian repository
* motion is installed from the debian repository
* configuration files are under /etc/motion
* configuration files are under /etc/motion
* main configuration is motion.conf which includes cam*.conf
* main configuration is motion.conf which includes cam*.conf
* as by the design of motion, all its cameras (6 + 11) are monitored from 1 process
* as by the design of motion, all configured cameras (6 + 11) are monitored from 1 process




==== constatus ====
==== Constatus ====


* installed from the github repository [https://github.com/flok99/constatus https://github.com/flok99/constatus]
* installed from the github repository [https://github.com/folkertvanheusden/constatus https://github.com/flok99/constatus]
* installed under /usr/local/constatus
* installed under /usr/local/constatus
* started (currently, 20170903) from /etc/rc.local
* 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
* <strike>each camera has its own constatus process - the idea is that if something crashes, that not all cameras will go down</strike> 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
* 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.
The configuration <strike>files are JSON</strike>file is a libconfig++ file.
They consist of 2 or more sections: general, source and then optional sections.
Every other section (apart from video loopback) have an array of entries for their data.
E.g.


=== recording specificaions ===
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.
** <strike>second server serves an html menu with a couple of options. it allows you to browser through the recorded videos. framerate set to 1fps.</strike>
* 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(!)


* 5 FPS video files
=== Recording Specifications ===
* 2 FPS HTTP web interface


* 1 FPS video files
* 2 FPS HTTP streaming web interface


=== cameras ===
* 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!!port!!protocol of physical dev!!where
 
=== Cameras ===
{| class="wikitable"
! style="text-align:left;" |Number
! style="text-align:left;" |Stream port
! style="text-align:left;" |HTML port
! style="text-align:left;" |Physical device protocol
! style="text-align:left;" |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||colspan=4|broken
|-
|CAM 7||8090||8107||rowspan=4|MJPEG, source is [[Verint Nextiva]]||rowspan=4|these produce an RTP stream which are converted to MJPEG by scripting running on the shell server, see [https://github.com/Peetz0r/revcaminfra https://github.com/Peetz0r/revcaminfra].
|-
|CAM 8||8091||8108
|-
|CAM 9||8092||8109
|-
|-
|CAM 1
|CAM 10||8093||8110
|8084
|RTSP
|hanging above the 3D printer
|-
|-
|CAM 11||colspan=4|These go to eleven?! (this camera doesn't actually exist yet)
|}
|}
* CAM 2: 8085, MJPEG, cantine
* CAM 3: 8086, MJPEG, back side of klusruimte
* CAM 4: 8087, MJPEG, front side of klusruimte
* CAM 5: 8088, RTSP, houtbewerkingsruimte
* CAM 6: broken
* CAM 7/8/9/10: 8090/8091/8092/8093, 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 https://github.com/Peetz0r/revcaminfra].

Latest revision as of 18:03, 1 July 2023

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)