blakeblackshear / frigate

NVR with realtime local object detection for IP cameras
https://frigate.video
MIT License
18k stars 1.64k forks source link

[Support]: one single incident was recorded as multiple events #7929

Closed thematrixdev closed 11 months ago

thematrixdev commented 11 months ago

Describe the problem you are having

Hello there,

Last night an incident happened in front of my camera. I have timestamp enabled on the camera itself. Telling from the camera timestamp, the incident started at 05:03:33 and ended at 05:09:43. During the whole incident, 22 events were created (hence 22 clips).

image

Capturing from the 05:03:36 video: image Frigate said there was no person detected at 05:03:44: image So the "05:03:36" video ended at 05:03:53.

During 05:03:36 to 05:03:53, the second video 05:03:37 was started.

The rest of the videos worked like these two. I believe the whole incident should be one single event.

Version

0.13.0-9185753

Frigate config file

mqtt:
  host: host.docker.internal
  user: frigate
  password: password

detectors:
  ov:
    type: openvino
    device: AUTO
    model:
      path: /openvino-model/ssdlite_mobilenet_v2.xml

model:
  labelmap_path: /openvino-model/coco_91cl_bkgr.txt
  width: 300
  height: 300
  input_pixel_format: bgr
  input_tensor: nhwc

birdseye:
  enabled: False

ffmpeg:
  # Optional: global ffmpeg args (default: shown below)
  global_args: -hide_banner -loglevel warning -threads 2
  # Optional: global hwaccel args (default: shown below)
  # NOTE: See hardware acceleration docs for your specific device
  hwaccel_args: preset-intel-qsv-h264
  # Optional: global input args (default: shown below)
  input_args: preset-rtsp-generic
  # Optional: global output args
  output_args:
    # detect: -threads 2 -f rawvideo -pix_fmt yuv420p
    record: preset-record-generic-audio-copy

detect:
  # Optional: width of the frame for the input with the detect role (default: shown below)
  width: 1920
  # Optional: height of the frame for the input with the detect role (default: shown below)
  height: 1080
  # Optional: desired fps for your camera for the input with the detect role (default: shown below)
  # NOTE: Recommended value of 5. Ideally, try and reduce your FPS on the camera.
  fps: 5
  # Optional: enables detection for the camera (default: True)
  enabled: True
  # Optional: Number of frames without a detection before Frigate considers an object to be gone. (default: 5x the frame rate)
  max_disappeared: 25
  # Optional: Configuration for stationary object tracking
  stationary:
    # Optional: Frequency for confirming stationary objects (default: shown below)
    # When set to 0, object detection will not confirm stationary objects until movement is detected.
    # If set to 10, object detection will run to confirm the object still exists on every 10th frame.
    # interval: 0
    # Optional: Number of frames without a position change for an object to be considered stationary (default: 10x the frame rate or 10s)
    threshold: 50
    # Optional: Define a maximum number of frames for tracking a stationary object (default: not set, track forever)
    # This can help with false positives for objects that should only be stationary for a limited amount of time.
    # It can also be used to disable stationary object tracking. For example, you may want to set a value for person, but leave
    # car at the default.
    # WARNING: Setting these values overrides default behavior and disables stationary object tracking.
    #          There are very few situations where you would want it disabled. It is NOT recommended to
    #          copy these values from the example config into your config unless you know they are needed.
    max_frames:
      # Optional: Default for all object types (default: not set, track forever)
      default: 3000
      # Optional: Object specific values
      objects:
        person: 1000

objects:
  track:
    - person
  filters:
    person:
      threshold: 0.8

motion:
  # Optional: The threshold passed to cv2.threshold to determine if a pixel is different enough to be counted as motion. (default: shown below)
  # Increasing this value will make motion detection less sensitive and decreasing it will make motion detection more sensitive.
  # The value should be between 1 and 255.
  threshold: 25
  # Optional: Minimum size in pixels in the resized motion image that counts as motion (default: 30)
  # Increasing this value will prevent smaller areas of motion from being detected. Decreasing will
  # make motion detection more sensitive to smaller moving objects.
  # As a rule of thumb:
  #  - 15 - high sensitivity
  #  - 30 - medium sensitivity
  #  - 50 - low sensitivity
  contour_area: 30
  # Optional: Alpha value passed to cv2.accumulateWeighted when averaging the motion delta across multiple frames (default: shown below)
  # Higher values mean the current frame impacts the delta a lot, and a single raindrop may register as motion.
  # Too low and a fast moving person wont be detected as motion.
  delta_alpha: 0.2
  # Optional: Alpha value passed to cv2.accumulateWeighted when averaging frames to determine the background (default: shown below)
  # Higher values mean the current frame impacts the average a lot, and a new object will be averaged into the background faster.
  # Low values will cause things like moving shadows to be detected as motion for longer.
  # https://www.geeksforgeeks.org/background-subtraction-in-an-image-using-concept-of-running-average/
  frame_alpha: 0.2
  # Optional: Height of the resized motion frame  (default: 50)
  # This operates as an efficient blur alternative. Higher values will result in more granular motion detection at the expense
  # of higher CPU usage. Lower values result in less CPU, but small changes may not register as motion.
  frame_height: 50
  # Optional: motion mask
  # NOTE: see docs for more detailed info on creating masks
  # mask: 0,900,1080,900,1080,1920,0,1920
  # Optional: improve contrast (default: shown below)
  # Enables dynamic contrast improvement. This should help improve night detections at the cost of making motion detection more sensitive
  # for daytime.
  improve_contrast: False
  # Optional: Delay when updating camera motion through MQTT from ON -> OFF (default: shown below).
  mqtt_off_delay: 30

record:
  # Optional: Enable recording (default: shown below)
  # WARNING: If recording is disabled in the config, turning it on via
  #          the UI or MQTT later will have no effect.
  enabled: False
  # Optional: Number of minutes to wait between cleanup runs (default: shown below)
  # This can be used to reduce the frequency of deleting recording segments from disk if you want to minimize i/o
  expire_interval: 60
  # Optional: Retention settings for recording
  retain:
    # Optional: Number of days to retain recordings regardless of events (default: shown below)
    # NOTE: This should be set to 0 and retention should be defined in events section below
    #       if you only want to retain recordings of events.
    days: 0
    # Optional: Mode for retention. Available options are: all, motion, and active_objects
    #   all - save all recording segments regardless of activity
    #   motion - save all recordings segments with any detected motion
    #   active_objects - save all recording segments with active/moving objects
    # NOTE: this mode only applies when the days setting above is greater than 0
    mode: all
  # Optional: Event recording settings
  events:
    # Optional: Number of seconds before the event to include (default: shown below)
    pre_capture: 5
    # Optional: Number of seconds after the event to include (default: shown below)
    post_capture: 5
    # Optional: Objects to save recordings for. (default: all tracked objects)
    objects:
      - person
    # Optional: Restrict recordings to objects that entered any of the listed zones (default: no required zones)
    required_zones: []
    # Optional: Retention settings for recordings of events
    retain:
      # Required: Default retention days (default: shown below)
      default: 10
      # Optional: Mode for retention. (default: shown below)
      #   all - save all recording segments for events regardless of activity
      #   motion - save all recordings segments for events with any detected motion
      #   active_objects - save all recording segments for event with active/moving objects
      #
      # NOTE: If the retain mode for the camera is more restrictive than the mode configured
      #       here, the segments will already be gone by the time this mode is applied.
      #       For example, if the camera retain mode is "motion", the segments without motion are
      #       never stored, so setting the mode to "all" here won't bring them back.
      mode: motion
      # Optional: Per object retention days
      objects:
        person: 15

snapshots:
  # Optional: Enable writing jpg snapshot to /media/frigate/clips (default: shown below)
  enabled: False
  # Optional: save a clean PNG copy of the snapshot image (default: shown below)
  clean_copy: True
  # Optional: print a timestamp on the snapshots (default: shown below)
  timestamp: False
  # Optional: draw bounding box on the snapshots (default: shown below)
  bounding_box: False
  # Optional: crop the snapshot (default: shown below)
  crop: False
  # Optional: height to resize the snapshot to (default: original size)
  height: 1080
  # Optional: Restrict snapshots to objects that entered any of the listed zones (default: no required zones)
  required_zones: []
  # Optional: Camera override for retention settings (default: global values)
  retain:
    # Required: Default retention days (default: shown below)
    default: 1
    # Optional: Per object retention days
    objects:
      person: 1

go2rtc:
  streams:
    reolink-entrance-main:
      - rtsp://192.168.58.61:554/h264Preview_01_main
    atom-front:
      - rtsp://192.168.59.63:8080/video0_unicast
    atom-rear:
      - rtsp://192.168.59.64:8080/video0_unicast
    atom-desk:
      - rtsp://192.168.59.65:8080/video0_unicast
    atom-bed:
      - rtsp://192.168.59.67:8080/video0_unicast
    atom-3603:
      - rtsp://192.168.58.60:8080/video0_unicast

live:
  height: 1080
  quality: 1

timestamp_style:
  position: "tr"
  format: "%Y-%m-%d %H:%M:%S"
  thickness: 2
  effect: solid

cameras:
  reolink-entrance:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/reolink-entrance-main
          roles:
            - record
            - detect
    detect:
      width: 2560
      height: 1440
    record:
      enabled: True
    snapshots:
      enabled: True
      height: 1440
      retain:
        default: 30
        objects:
          person: 30
    # Optional: timeout for highest scoring image before allowing it
    # to be replaced by a newer image. (default: shown below)
    best_image_timeout: 60
    mqtt:
      # Optional: Enable publishing snapshot via mqtt for camera (default: shown below)
      # NOTE: Only applies to publishing image data to MQTT via 'frigate/<camera_name>/<object_name>/snapshot'.
      # All other messages will still be published.
      enabled: True
      # Optional: print a timestamp on the snapshots (default: shown below)
      timestamp: False
      # Optional: draw bounding box on the snapshots (default: shown below)
      bounding_box: False
      # Optional: crop the snapshot (default: shown below)
      crop: False
      # Optional: height to resize the snapshot to (default: shown below)
      height: 1440
      # Optional: jpeg encode quality (default: shown below)
      quality: 100
      # Optional: Restrict mqtt messages to objects that entered any of the listed zones (default: no required zones)
      required_zones: []

  atom-front:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/atom-front
          roles:
            - detect
    snapshots:
      enabled: True
      bounding_box: True
    motion:
      mask:
        - 0,592,763,378,804,0,0,0
        - 1744,320,1005,1080,1920,1080,1920,30,1920,0,1816,33
        - 0,1080,438,1080,202,493,146,523,41,114,0,130
    objects:
      filters:
        person:
          min_area: 100000
          mask:
            - 0,592,763,378,804,0,0,0
            - 1744,320,1005,1080,1920,1080,1920,30,1920,0,1816,33
            - 0,1080,438,1080,202,493,146,523,41,114,0,130
    zones:
      atom-front-kitchen:
        coordinates: 1443,0,931,0,878,586,1245,720
      atom-front-sofa:
        coordinates: 394,942,809,747,831,551,633,423,226,546

  atom-rear:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/atom-rear
          roles:
            - detect
    snapshots:
      enabled: True
      bounding_box: True
    motion:
      mask:
        - 1855,0,1920,0,1920,1080,1415,1080,1581,794,1648,786
    objects:
      filters:
        person:
          mask:
            - 1855,0,1920,0,1920,1080,1415,1080,1581,794,1648,786
    zones:
      atom-rear-kitchen:
        coordinates: 0,417,0,0,397,0,570,754,272,996

  atom-desk:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/atom-desk
          roles:
            - detect
    detect:
      max_disappeared: 5
    snapshots:
      enabled: True
      bounding_box: True
    ui:
      dashboard: False

  atom-bed:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/atom-bed
          roles:
            - detect
    detect:
      max_disappeared: 5
    snapshots:
      enabled: True
      bounding_box: True
    motion:
      mask:
        - 0,1080,812,1080,915,0,0,0
        - 1920,0,1920,1080,1920,1080,1163,1080,1155,0
        - 907,0,1161,0,1155,88,907,99
        - 809,1080,1169,1080,1173,964,809,971
    objects:
      filters:
        person:
          mask:
            - 0,1080,812,1080,915,0,0,0
            - 1920,0,1920,1080,1920,1080,1163,1080,1155,0
            - 907,0,1161,0,1155,88,907,99
            - 809,1080,1169,1080,1173,964,809,971
    mqtt:
      # Optional: Enable publishing snapshot via mqtt for camera (default: shown below)
      # NOTE: Only applies to publishing image data to MQTT via 'frigate/<camera_name>/<object_name>/snapshot'.
      # All other messages will still be published.
      enabled: True
      # Optional: print a timestamp on the snapshots (default: shown below)
      timestamp: False
      # Optional: draw bounding box on the snapshots (default: shown below)
      bounding_box: False
      # Optional: crop the snapshot (default: shown below)
      crop: False
      # Optional: height to resize the snapshot to (default: shown below)
      height: 1080
      # Optional: jpeg encode quality (default: shown below)
      quality: 100
      # Optional: Restrict mqtt messages to objects that entered any of the listed zones (default: no required zones)
      required_zones: []
    ui:
      dashboard: false

  atom-3603:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/atom-3603
          roles:
            - detect
            - record
    record:
      enabled: True
    snapshots:
      enabled: True
      retain:
        default: 30
        objects:
          person: 30
    mqtt:
      enabled: False

ui:
  # Optional: Set the default live mode for cameras in the UI (default: shown below)
  live_mode: mse
  # Optional: Set a timezone to use in the UI (default: use browser local time)
  timezone: Asia/Hong_Kong
  # Optional: Use an experimental recordings / camera view UI (default: shown below)
  use_experimental: False
  # Optional: Set the time format used.
  # Options are browser, 12hour, or 24hour (default: shown below)
  time_format: 24hour
  # Optional: Set the date style for a specified length.
  # Options are: full, long, medium, short
  # Examples:
  #    short: 2/11/23
  #    medium: Feb 11, 2023
  #    full: Saturday, February 11, 2023
  # (default: shown below).
  date_style: full
  # Optional: Set the time style for a specified length.
  # Options are: full, long, medium, short
  # Examples:
  #    short: 8:14 PM
  #    medium: 8:15:22 PM
  #    full: 8:15:22 PM Mountain Standard Time
  # (default: shown below).
  time_style: medium
  # Optional: Ability to manually override the date / time styling to use strftime format
  # https://www.gnu.org/software/libc/manual/html_node/Formatting-Calendar-Time.html
  # possible values are shown above (default: not set)
  #strftime_fmt: "%Y/%m/%d %H:%M"

telemetry:
  # Optional: Enable the latest version outbound check (default: shown below)
  # NOTE: If you use the HomeAssistant integration, disabling this will prevent it from reporting new versions
  version_check: True

Relevant log output

(The only log on 2023-09-24, which is irrelevant)

2023-09-24 02:00:24.875239203  [2023-09-24 02:00:24] watchdog.reolink-entrance      INFO    : No frames received from reolink-entrance in 20 seconds. Exiting ffmpeg...
2023-09-24 02:00:24.875248632  [2023-09-24 02:00:24] watchdog.reolink-entrance      INFO    : Waiting for ffmpeg to exit gracefully...
2023-09-24 02:00:29.997654630  [2023-09-24 02:00:29] frigate.video                  ERROR   : reolink-entrance: Unable to read frames from ffmpeg process.
2023-09-24 02:00:29.997907287  [2023-09-24 02:00:29] frigate.video                  ERROR   : reolink-entrance: ffmpeg process is not running. exiting capture thread...
2023-09-24 02:00:40.002969860  [2023-09-24 02:00:39] watchdog.reolink-entrance      ERROR   : Ffmpeg process crashed unexpectedly for reolink-entrance.
2023-09-24 02:00:40.002979555  [2023-09-24 02:00:39] watchdog.reolink-entrance      ERROR   : The following ffmpeg logs include the last 100 lines prior to exit.
2023-09-24 02:00:40.003064123  [2023-09-24 02:00:39] ffmpeg.reolink-entrance.detect ERROR   : [segment @ 0x55c6944ee600] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly
2023-09-24 02:00:40.003065848  [2023-09-24 02:00:39] ffmpeg.reolink-entrance.detect ERROR   : rtsp://127.0.0.1:8554/reolink-entrance-main: Connection timed out
2023-09-24 02:00:40.003132266  [2023-09-24 02:00:39] ffmpeg.reolink-entrance.detect ERROR   :     Last message repeated 3 times

FFprobe output from your camera

$ ffprobe rtsp://192.168.58.61:554/h264Preview_01_main
ffprobe version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2007-2021 the FFmpeg developers
  built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
  configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
  libavutil      56. 70.100 / 56. 70.100
  libavcodec     58.134.100 / 58.134.100
  libavformat    58. 76.100 / 58. 76.100
  libavdevice    58. 13.100 / 58. 13.100
  libavfilter     7.110.100 /  7.110.100
  libswscale      5.  9.100 /  5.  9.100
  libswresample   3.  9.100 /  3.  9.100
  libpostproc    55.  9.100 / 55.  9.100
Input #0, rtsp, from 'rtsp://192.168.58.61:554/h264Preview_01_main':
  Metadata:
    title           : Session streamed by "preview"
    comment         : h264Preview_01_main
  Duration: N/A, start: 0.000000, bitrate: N/A
  Stream #0:0: Video: h264 (High), yuv420p(progressive), 2560x1440, 30 tbr, 90k tbn, 180k tbc
  Stream #0:1: Audio: aac (LC), 16000 Hz, mono, fltp

Frigate stats

{"atom-3603":{"camera_fps":5.1,"capture_pid":694,"detection_enabled":1,"detection_fps":0.0,"ffmpeg_pid":749,"pid":610,"process_fps":5.1,"skipped_fps":0.0},"atom-bed":{"camera_fps":5.1,"capture_pid":667,"detection_enabled":1,"detection_fps":0.0,"ffmpeg_pid":267897,"pid":608,"process_fps":5.1,"skipped_fps":0.0},"atom-desk":{"camera_fps":5.0,"capture_pid":641,"detection_enabled":1,"detection_fps":4.0,"ffmpeg_pid":267730,"pid":605,"process_fps":5.1,"skipped_fps":0.0},"atom-front":{"camera_fps":5.0,"capture_pid":619,"detection_enabled":1,"detection_fps":0.0,"ffmpeg_pid":268011,"pid":600,"process_fps":5.0,"skipped_fps":0.0},"atom-rear":{"camera_fps":5.1,"capture_pid":622,"detection_enabled":1,"detection_fps":0.0,"ffmpeg_pid":121203,"pid":604,"process_fps":5.1,"skipped_fps":0.0},"cpu_usages":{"1":{"cmdline":"/package/admin/s6/command/s6-svscan -d4 -- /run/service","cpu":"0.0","cpu_average":"0","mem":"0.0"},"15":{"cmdline":"s6-supervise s6-linux-init-shutdownd","cpu":"0.0","cpu_average":"0","mem":"0.0"},"17":{"cmdline":"/package/admin/s6-linux-init/command/s6-linux-init-shutdownd -c /run/s6/basedir -g 3000 -C -B","cpu":"0.0","cpu_average":"0","mem":"0.0"},"24":{"cmdline":"s6-supervise s6rc-fdholder","cpu":"0.0","cpu_average":"0","mem":"0.0"},"25":{"cmdline":"s6-supervise go2rtc-healthcheck","cpu":"0.0","cpu_average":"0","mem":"0.0"},"26":{"cmdline":"s6-supervise go2rtc","cpu":"0.0","cpu_average":"0","mem":"0.0"},"27":{"cmdline":"s6-supervise frigate","cpu":"0.0","cpu_average":"0","mem":"0.0"},"28":{"cmdline":"s6-supervise s6rc-oneshot-runner","cpu":"0.0","cpu_average":"0","mem":"0.0"},"29":{"cmdline":"s6-supervise frigate-log","cpu":"0.0","cpu_average":"0","mem":"0.0"},"30":{"cmdline":"s6-supervise nginx-log","cpu":"0.0","cpu_average":"0","mem":"0.0"},"31":{"cmdline":"s6-supervise go2rtc-log","cpu":"0.0","cpu_average":"0","mem":"0.0"},"32":{"cmdline":"s6-supervise nginx","cpu":"0.0","cpu_average":"0","mem":"0.0"},"41":{"cmdline":"/package/admin/s6-2.11.3.2/command/s6-fdholderd -1 -i data/rules","cpu":"0.0","cpu_average":"0","mem":"0.0"},"42":{"cmdline":"/package/admin/s6/command/s6-ipcserverd -1 -- /package/admin/s6/command/s6-ipcserver-access -v0 -E -l0 -i data/rules -- /package/admin/s6/command/s6-sudod -t 30000 -- /package/admin/s6-rc/command/s6-rc-oneshot-run -l ../.. --","cpu":"0.0","cpu_average":"0","mem":"0.0"},"80":{"cmdline":"s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/nginx","cpu":"0.0","cpu_average":"0","mem":"0.0"},"81":{"cmdline":"s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/go2rtc","cpu":"0.0","cpu_average":"0","mem":"0.0"},"82":{"cmdline":"s6-log -b -- T 1 n0 s10000000 T /dev/shm/logs/frigate","cpu":"0.0","cpu_average":"0","mem":"0.0"},"89":{"cmdline":"/usr/local/go2rtc/bin/go2rtc -config=/dev/shm/go2rtc.yaml","cpu":"3.0","cpu_average":"3","mem":"0.1"},"97":{"cmdline":"python3 -u -m frigate","cpu":"3.5","cpu_average":"1","mem":"0.9"},"98":{"cmdline":"bash ./run.user go2rtc-healthcheck","cpu":"0.0","cpu_average":"0","mem":"0.0"},"111":{"cmdline":"nginx: master process nginx","cpu":"0.0","cpu_average":"0","mem":"0.0"},"145":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"146":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"147":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"153":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"174":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"205":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"241":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"272":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"307":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"337":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"380":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"414":{"cmdline":"nginx: worker process","cpu":"0.0","cpu_average":"0","mem":"0.0"},"580":{"cmdline":"frigate.logger       ","cpu":"0.0","cpu_average":"0","mem":"0.2"},"582":{"cmdline":"frigate.recording_manager","cpu":"0.0","cpu_average":"0","mem":"0.2"},"591":{"cmdline":"/usr/bin/python3 -c from multiprocessing.resource_tracker import main;main(49)","cpu":"0.0","cpu_average":"0","mem":"0.0"},"592":{"cmdline":"frigate.detector.ov  ","cpu":"4.0","cpu_average":"2","mem":"0.7"},"594":{"cmdline":"frigate.output       ","cpu":"1.5","cpu_average":"1","mem":"0.2"},"598":{"cmdline":"frigate.process:reolink-entrance","cpu":"0.0","cpu_average":"0","mem":"0.3"},"599":{"cmdline":"ffmpeg -f rawvideo -pix_fmt yuv420p -video_size 2560x1440 -i pipe: -f mpegts -s 1920x1080 -codec:v mpeg1video -q 1 -bf 0 pipe:","cpu":"0.0","cpu_average":"0","mem":"0.1"},"600":{"cmdline":"frigate.process:atom-front","cpu":"1.0","cpu_average":"0","mem":"0.2"},"602":{"cmdline":"ffmpeg -f rawvideo -pix_fmt yuv420p -video_size 1920x1080 -i pipe: -f mpegts -s 1920x1080 -codec:v mpeg1video -q 1 -bf 0 pipe:","cpu":"0.0","cpu_average":"0","mem":"0.0"},"604":{"cmdline":"frigate.process:atom-rear","cpu":"1.0","cpu_average":"0","mem":"0.3"},"605":{"cmdline":"frigate.process:atom-desk","cpu":"3.5","cpu_average":"0","mem":"0.3"},"607":{"cmdline":"ffmpeg -f rawvideo -pix_fmt yuv420p -video_size 1920x1080 -i pipe: -f mpegts -s 1920x1080 -codec:v mpeg1video -q 1 -bf 0 pipe:","cpu":"0.0","cpu_average":"0","mem":"0.0"},"608":{"cmdline":"frigate.process:atom-bed","cpu":"0.0","cpu_average":"0","mem":"0.2"},"610":{"cmdline":"frigate.process:atom-3603","cpu":"1.0","cpu_average":"0","mem":"0.2"},"611":{"cmdline":"ffmpeg -f rawvideo -pix_fmt yuv420p -video_size 1920x1080 -i pipe: -f mpegts -s 1920x1080 -codec:v mpeg1video -q 1 -bf 0 pipe:","cpu":"0.0","cpu_average":"0","mem":"0.0"},"613":{"cmdline":"frigate.capture:reolink-entrance","cpu":"2.0","cpu_average":"2","mem":"0.2"},"617":{"cmdline":"ffmpeg -f rawvideo -pix_fmt yuv420p -video_size 1920x1080 -i pipe: -f mpegts -s 1920x1080 -codec:v mpeg1video -q 1 -bf 0 pipe:","cpu":"0.0","cpu_average":"0","mem":"0.0"},"619":{"cmdline":"frigate.capture:atom-front","cpu":"2.5","cpu_average":"1","mem":"0.2"},"622":{"cmdline":"frigate.capture:atom-rear","cpu":"1.0","cpu_average":"1","mem":"0.2"},"625":{"cmdline":"ffmpeg -f rawvideo -pix_fmt yuv420p -video_size 1920x1080 -i pipe: -f mpegts -s 1920x1080 -codec:v mpeg1video -q 1 -bf 0 pipe:","cpu":"0.0","cpu_average":"0","mem":"0.0"},"641":{"cmdline":"frigate.capture:atom-desk","cpu":"1.5","cpu_average":"1","mem":"0.2"},"667":{"cmdline":"frigate.capture:atom-bed","cpu":"1.0","cpu_average":"1","mem":"0.2"},"694":{"cmdline":"frigate.capture:atom-3603","cpu":"1.0","cpu_average":"1","mem":"0.2"},"749":{"cmdline":"ffmpeg -hide_banner -loglevel warning -threads 2 -hwaccel qsv -qsv_device /dev/dri/renderD128 -hwaccel_output_format qsv -c:v h264_qsv -user_agent FFmpeg Frigate/0.13.0-9185753 -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt -rtsp_transport tcp -timeout 5000000 -use_wallclock_as_timestamps 1 -i rtsp://127.0.0.1:8554/atom-3603 -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy /tmp/cache/atom-3603-%Y%m%d%H%M%S.mp4 -r 5 -vf vpp_qsv=framerate=5:w=1920:h=1080:format=nv12,hwdownload,format=nv12,format=yuv420p -threads 2 -f rawvideo -pix_fmt yuv420p pipe:","cpu":"2.0","cpu_average":"1","mem":"0.1"},"121203":{"cmdline":"ffmpeg -hide_banner -loglevel warning -threads 2 -hwaccel qsv -qsv_device /dev/dri/renderD128 -hwaccel_output_format qsv -c:v h264_qsv -user_agent FFmpeg Frigate/0.13.0-9185753 -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt -rtsp_transport tcp -timeout 5000000 -use_wallclock_as_timestamps 1 -i rtsp://127.0.0.1:8554/atom-rear -r 5 -vf vpp_qsv=framerate=5:w=1920:h=1080:format=nv12,hwdownload,format=nv12,format=yuv420p -threads 2 -f rawvideo -pix_fmt yuv420p pipe:","cpu":"2.5","cpu_average":"1","mem":"0.1"},"267730":{"cmdline":"ffmpeg -hide_banner -loglevel warning -threads 2 -hwaccel qsv -qsv_device /dev/dri/renderD128 -hwaccel_output_format qsv -c:v h264_qsv -user_agent FFmpeg Frigate/0.13.0-9185753 -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt -rtsp_transport tcp -timeout 5000000 -use_wallclock_as_timestamps 1 -i rtsp://127.0.0.1:8554/atom-desk -r 5 -vf vpp_qsv=framerate=5:w=1920:h=1080:format=nv12,hwdownload,format=nv12,format=yuv420p -threads 2 -f rawvideo -pix_fmt yuv420p pipe:","cpu":"2.5","cpu_average":"1","mem":"0.1"},"267897":{"cmdline":"ffmpeg -hide_banner -loglevel warning -threads 2 -hwaccel qsv -qsv_device /dev/dri/renderD128 -hwaccel_output_format qsv -c:v h264_qsv -user_agent FFmpeg Frigate/0.13.0-9185753 -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt -rtsp_transport tcp -timeout 5000000 -use_wallclock_as_timestamps 1 -i rtsp://127.0.0.1:8554/atom-bed -r 5 -vf vpp_qsv=framerate=5:w=1920:h=1080:format=nv12,hwdownload,format=nv12,format=yuv420p -threads 2 -f rawvideo -pix_fmt yuv420p pipe:","cpu":"1.5","cpu_average":"1","mem":"0.1"},"268011":{"cmdline":"ffmpeg -hide_banner -loglevel warning -threads 2 -hwaccel qsv -qsv_device /dev/dri/renderD128 -hwaccel_output_format qsv -c:v h264_qsv -user_agent FFmpeg Frigate/0.13.0-9185753 -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt -rtsp_transport tcp -timeout 5000000 -use_wallclock_as_timestamps 1 -i rtsp://127.0.0.1:8554/atom-front -r 5 -vf vpp_qsv=framerate=5:w=1920:h=1080:format=nv12,hwdownload,format=nv12,format=yuv420p -threads 2 -f rawvideo -pix_fmt yuv420p pipe:","cpu":"2.5","cpu_average":"1","mem":"0.1"},"415092":{"cmdline":"ffmpeg -hide_banner -loglevel warning -threads 2 -hwaccel qsv -qsv_device /dev/dri/renderD128 -hwaccel_output_format qsv -c:v h264_qsv -user_agent FFmpeg Frigate/0.13.0-9185753 -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt -rtsp_transport tcp -timeout 5000000 -use_wallclock_as_timestamps 1 -i rtsp://127.0.0.1:8554/reolink-entrance-main -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy /tmp/cache/reolink-entrance-%Y%m%d%H%M%S.mp4 -r 5 -vf vpp_qsv=framerate=5:w=2560:h=1440:format=nv12,hwdownload,format=nv12,format=yuv420p -threads 2 -f rawvideo -pix_fmt yuv420p pipe:","cpu":"3.0","cpu_average":"3","mem":"0.1"},"502265":{"cmdline":"sleep 30s","cpu":"0.0","cpu_average":"0","mem":"0.0"}},"detection_fps":4.0,"detectors":{"ov":{"detection_start":1695519974.959796,"inference_speed":7.44,"pid":592}},"gpu_usages":{"intel-qsv":{"gpu":"8.84%","mem":"-%"}},"processes":{"go2rtc":{"pid":89},"logger":{"pid":580},"recording":{"pid":582}},"reolink-entrance":{"camera_fps":5.1,"capture_pid":613,"detection_enabled":1,"detection_fps":0.0,"ffmpeg_pid":415092,"pid":598,"process_fps":5.1,"skipped_fps":0.0},"service":{"last_updated":1695519975,"latest_version":"0.12.1","storage":{"/dev/shm":{"free":995.4,"mount_type":"tmpfs","total":1024.0,"used":28.6},"/media/frigate/clips":{"free":119196.7,"mount_type":"ext4","total":232159.8,"used":101098.9},"/media/frigate/recordings":{"free":119196.7,"mount_type":"ext4","total":232159.8,"used":101098.9},"/tmp/cache":{"free":971.5,"mount_type":"tmpfs","total":976.6,"used":5.0}},"temperatures":{},"uptime":161033,"version":"0.13.0-9185753"}}

Operating system

Other Linux

Install method

Docker Compose

Coral version

CPU (no coral)

Network connection

Wired

Camera make and model

REOLINK E1 Pro

Any other information that may be helpful

No response

NickM-27 commented 11 months ago

Events are synonymous with tracked objects. If there are multiple tracked objects then there will be multiple events shown and that is the expected behavior.

Frigate has logic that runs every 5 minutes to clean up duplicate events (like 2 people walking from the car to the door at the same time)

I have a PR up that helps reduce duplicate events in some cases

22 events were created (hence 22 clips).

Not 100% sure but wanted to clarify that frigate does not store recordings redundantly. All clips are generated from the set of recording segments

NickM-27 commented 11 months ago

closing this as beta2 has this new behavior implemented