.. _configure-vms: Configure Video Recorder ====================================================== The FindFace Core internal :ref:`architecture ` allows for embedding Video Recorder, an additional functionality that records, stores, and plays back video data from cameras. This section is about the Video Recorder configuration. .. rubric:: In this section: .. contents:: :local: Enable Video Recorder ------------------------------ To enable Video Recorder, do the following: #. Enable the ``findface-video-worker`` service to transfer video chunks to the ``findface-video-storage`` service. .. important:: This setting makes the Video Recorder functionality available over :ref:`HTTP API `. It's also obligatory if you want to harness Video Recorder as part of the FindFace Multi :ref:`web interface `. Do the following: #. Open the ``/opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml`` configuration to enable ``findface-video-worker`` service that will supply Video Recorder with video. .. code:: sudo vi /opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml #. Set ``enabled: true`` in the ``recorder`` section. .. code:: recorder: enabled: true ... #. Restart ``findface-multi-findface-video-worker-1`` container. .. code:: sudo docker container restart findface-multi-findface-video-worker-1 #. Configure Video Recorder to work as part of the FindFace Multi web interface. .. note:: Omit the following steps if you do not need the Video Recorder tools to appear in the FindFace Multi web interface. Do the following: #. Open the ``/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py`` configuration file. .. code:: sudo vi /opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py #. Find the ``FFSECURITY_UI_CONFIG`` -> ``vms`` section. The list of vms parameters to configure is the following: +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Parameter | Description | +================================================+====================================================================================================================+ | ``vms`` -> ``"enabled"`` | Set ``True`` to add the :guilabel:`Record video` checkbox to :ref:`camera settings `. | +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``vms`` -> ``"video_player"`` | Set ``True`` to enable the video player :ref:`camera settings ` to open in event notifications and | | | :ref:`camera preview ` (instead of static frames). This setting requires ``"enabled": True``. | +------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ #. Find the ``FFSECURITY_UI_CONFIG`` -> ``video_player`` section. The list of video player parameters to configure is the following: +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | Parameter | Description | +==================================================+====================================================================================================================+ | ``"overlay"`` -> ``"objects"`` | Defines the settings for displaying bbox and attribute data to the objects ``"faces"``, ``"bodies"``, ``"cars"``. | | | Set ``True`` or ``False`` to enable/disable bbox and attribute data display for the relevant objects. | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"overlay"`` -> ``"gdpr"`` | Set ``True`` to blurring all unmatched objects displayed on the video player. | | | To fully comply with the personal data protection laws, follow :ref:`this guide `. | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"min_zoom"`` | Defines the largest possible scale on the :ref:`video player timeline `, seconds per pixel. | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"max_zoom"`` | Defines the smallest possible scale on the timeline, seconds per pixel. | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | Set ``True`` to enable marking face events on the timeline. | | ``"faces"`` -> ``"enabled"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | The maximum number of face events simultaneously marked on the timeline. If there is more face events than | | ``"faces"`` -> ``"limit"`` | that, you will be asked to zoom in. | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | Color of the matched face events. | | ``"faces"`` -> ``"matchedColor"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | Color of the unmatched face events. | | ``"faces"`` -> ``"unmatchedColor"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | Set ``True`` to enable marking bodies events on the timeline. | | ``"bodies"`` -> ``"enabled"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | The maximum number of body events simultaneously marked on the timeline. If there is more body events than | | ``"bodies"`` -> ``"limit"`` | that, you will be asked to zoom in. | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | Color of the matched body events. | | ``"bodies"`` -> ``"matchedColor"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | Color of the unmatched body events. | | ``"bodies"`` -> ``"unmatchedColor"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | Set ``True`` to enable marking vehicle events on the timeline. | | ``"cars"`` -> ``"enabled"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | The maximum number of vehicle events simultaneously marked on the timeline. | | ``"cars"`` -> ``"limit"`` | If there is more vehicle events than that, you will be asked to zoom in. | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | Color of the matched vehicle events. | | ``"cars"`` -> ``"matchedColor"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"events"`` | Color of the unmatched vehicle events. | | ``"cars"`` -> ``"unmatchedColor"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"episodes"``| Set ``True`` to enable marking human episodes on the timeline. | | ``"humans"`` -> ``"enabled"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"episodes"``| The maximum number of humans episodes simultaneously marked on the timeline. If there is more face episodes than | | ``"humans"`` -> ``"limit"`` | that, you will be asked to zoom in. | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"episodes"``| Color of the matched human episodes. | | ``"humans"`` -> ``"matchedColor"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"episodes"``| Color of the unmatched human episodes. | | ``"humans"`` -> ``"unmatchedColor"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"episodes"``| Set ``True`` to enable marking vehicle episodes on the timeline. | | ``"cars"`` -> ``"enabled"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"episodes"``| The maximum number of vehicle episodes simultaneously marked on the timeline. | | ``"cars"`` -> ``"limit"`` | If there is more vehicle episodes than that, you will be asked to zoom in. | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"episodes"``| Color of the matched vehicle episodes. | | ``"cars"`` -> ``"matchedColor"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ | ``"timeline"`` -> ``"objects"`` -> ``"episodes"``| Color of the unmatched vehicle episodes. | | ``"cars"`` -> ``"unmatchedColor"`` | | +--------------------------------------------------+--------------------------------------------------------------------------------------------------------------------+ .. code:: FFSECURITY_UI_CONFIG = { "video_player": { "overlay": { "objects": { "faces": { "bbox": True, "info": True }, "bodies": { "bbox": True, "info": True }, "cars": { "bbox": True, "info": True } }, "gdpr": False }, "timeline": { "min_zoom": 0.2, "max_zoom": 200, "objects": { "events": { "faces": { "enabled": True, "limit": 500, "matchedColor": "rgba(6,193,103,0.8)", "unmatchedColor": "rgba(232,92,74,0.8)", }, "bodies": { "enabled": False, "limit": 500, "matchedColor": "rgba(6,193,103,0.8)", "unmatchedColor": "rgba(232,92,74,0.8)", }, "cars": { "enabled": False, "limit": 500, "matchedColor": "rgba(6,193,103,0.8)", "unmatchedColor": "rgba(232,92,74,0.8)", }, }, "episodes": { "humans": { "enabled": False, "limit": 500, "matchedColor": "rgba(6,193,103,0.8)", "unmatchedColor": "rgba(232,92,74,0.8)", }, "cars": { "enabled": False, "limit": 500, "matchedColor": "rgba(6,193,103,0.8)", "unmatchedColor": "rgba(232,92,74,0.8)", }, }, }, }, }, "vms": { "enabled": True, "video_player": True, }, #. Restart the ``findface-multi-findface-multi-legacy-1`` container. .. code:: sudo docker container restart findface-multi-findface-multi-legacy-1 Nuances of Disabling Video Recorder ---------------------------------------- If Video Recorder is running and recording video on selected cameras, and you need to disable it, be sure to disable video recording on the cameras first, before proceeding with the ``/opt/findface-multi/configs/findface-multi-legacy/findface-multi-legacy.py`` and ``/opt/findface-multi/configs/findface-video-worker/findface-video-worker.yaml`` configuration files.