Local realtime person detection for RTSP cameras

I ran into the same issue, with a similar installation.

If you add “default-shm-size”: “1G” to /etc/docker/daemon.json you should resolve the issue.

It doesn’t seem like the best solution, though.

1 Like
frigate.events                 INFO    : bad file: porch-20210126153729.mp4
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x5608767ab140] moov atom not found
/tmp/cache/leftfront-20210126153729.mp4: Invalid data found when processing input
frigate.events                 INFO    : bad file: leftfront-20210126153729.mp4
Fatal Python error: Bus error

Current thread 0x00007f2b0439f700 (most recent call first):
  File "/opt/frigate/frigate/video.py", line 117 in capture_frames
  File "/opt/frigate/frigate/video.py", line 229 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2ad6255700 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 302 in wait
  File "/usr/lib/python3.8/multiprFatal Python error: Bus error

Current thread 0x00007f2b0439f700 (most recent call first):
  File "/opt/frigate/frigate/video.py", line 117 in capture_frames
  File "/opt/frigate/frigate/video.py", line 229 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/ocessing/queues.py", line 227 in _feed
  File "/usr/lib/python3.8/threading.py", line 870 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2b04ba0700 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 302 in wait
  File "/usr/lib/python3.8/multiprocessing/queues.py", line 227 in _feed
  File "/usr/lib/python3.8/threading.py", line 870 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2afae01700 (most recent call first):
  File "/opt/frigate/frigate/video.py", line 203 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2b053a1700 (most recent call first):
  File "/opt/frigate/frigate/log.py", line 69 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2b0f53a740 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 1027 in _wait_for_tstate_lock
  File "/usr/lib/python3.8/threading.py", line 1011 in join
  File "/opt/frigate/frigate/video.py", line 243 in capture_camera
  File "/usr/lib/python3.8/multiprocessing/process.py", line 108 in run
  File "/usr/lib/python3.8/multiprocessing/process.py", line 315 in _bootstrap
  File "/usr/lib/python3.8/multiprocessing/popen_fork.py", line 75 in _launch
  File "/usr/lib/python3.8/multiprocessing/popen_fork.py", line 19 in __init__
  File "/usr/lib/python3.8/multiprocessing/context.py", line 277 in _Popen
  File "/usr/lib/python3.8/multiprocessing/context.py", line 224 in _Popen
  File "/usr/lib/python3.8/multiprocessing/process.py", line 121 in start
  File "/opt/frigate/frigate/app.py", line 180 in start_camera_capture_processes
  File "/opt/frigate/frigate/app.py", line 226 in start
  File "/opt/frigate/frigate/__main__.py", line 15 in <module>
  File "/usr/lib/python3.8/runpy.py", line 87 in _run_code
  File "/usr/lib/python3.8/runpy.py", line 194 in _run_module_as_main
python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2ad6255700 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 302 in wait
  File "/usr/lib/python3.8/multiprocessing/queues.py", line 227 in _feed
  File "/usr/lib/python3.8/threading.py", line 870 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2b04ba0700 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 302 in wait
  File "/usr/lib/python3.8/multiprocessing/queues.py", line 227 in _feed
  File "/usr/lib/python3.8/threading.py", line 870 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2afae01700 (most recent call first):
  File "/opt/frigate/frigate/video.py", line 203 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2b053a1700 (most recent call first):
  File "/opt/frigate/frigate/log.py", line 69 in run
  File "/usr/lib/python3.8/threading.py", line 932 in _bootstrap_inner
  File "/usr/lib/python3.8/threading.py", line 890 in _bootstrap

Thread 0x00007f2b0f53a740 (most recent call first):
  File "/usr/lib/python3.8/threading.py", line 1027 in _wait_for_tstate_lock
  File "/usr/lib/python3.8/threading.py", line 1011 in join
  File "/opt/frigate/frigate/video.py", line 243 in capture_camera
  File "/usr/lib/python3.8/multiprocessing/process.py", line 108 in run
  File "/usr/lib/python3.8/multiprocessing/process.py", line 315 in _bootstrap
  File "/usr/lib/python3.8/multiprocessing/popen_fork.py", line 75 in _launch
  File "/usr/lib/python3.8/multiprocessing/popen_fork.py", line 19 in __init__
  File "/usr/lib/python3.8/multiprocessing/context.py", line 277 in _Popen
  File "/usr/lib/python3.8/multiprocessing/context.py", line 224 in _Popen
  File "/usr/lib/python3.8/multiprocessing/process.py", line 121 in start
  File "/opt/frigate/frigate/app.py", line 180 in start_camera_capture_processes
  File "/opt/frigate/frigate/app.py", line 226 in start
  File "/opt/frigate/frigate/__main__.py", line 15 in <module>
  File "/usr/lib/python3.8/runpy.py", line 87 in _run_code
  File "/usr/lib/python3.8/runpy.py", line 194 in _run_module_as_main

running RC6 with this errors. now at random some cameras stop working. any idea? . it took 2 days sometime in RC5 for this to happen . but this happen after ± 30 min

backyard and gate camera are not working. the fps should be 6

Thanks! Would this add 1G to one container, a shared 1G to all the docker containers, or will it add 1G to each container? I am unfortunately not that familiar with docker config (it just works so no need to tinker that much :)).

None of the changes in RC6 would have caused this. You are running out of shm storage. You must barely have enough and only run out in certain edge cases.

Maybe dumb question. Does Frigate NVR side menu (ingress) possible only installing addon and not in case docker + integration? If I need to apply some customisation to the container (tmpfs size, separate partition for recordings, and so on), then I can use only docker but in this case lose side menu?

That’s correct, but you can make your own panel for it using the iframe Panel in Home Assistant configuration. It will not, however, be available outside of your home network, unless you expose that docker container publicly through your router as well.

Thanks. I know about iframe. I need access outside home network, but exposing port wild world without any authorization is scary :slight_smile:
Does it work if install addon and aftrer that modify conteiner options and recreate it with the same name?

You can fork the hass-addon repository, make your changes, and place it in your addons folder. You can follow the local addon-on testing docs if you’re not familiar with how to do that.

Port 5000 works, side panel works, nothing in the logs. Very strange.

Hmm. I do have a user/pass for mqtt in my config. No changes to that recently.

Has anyone seen this one?
I use NodeRed to send notifications with images to the Home Assistant Android app, and build up the URL to the snapshot.jpg using the after.id.
An example of the URL is:
https://<nabu_casa_hass_instance>/api/frigate/notifications/1611712040.094102-to1pmq/driveway/snapshot.jpg
Since upgrading to RC4 and latest Frigate add-on I now get a 500 error when trying to access the image:

500 Internal Server Error
Server got itself in trouble

Any ideas?

Latest versions do not have the camera name in the url for the snapshot endpoint.

Thanks @blakeblackshear for this quick response. That fixed it.

solve the prob by increasing this. tmpfs_cache_size: 512m

i copied RC6 conf to the just release 0.80

 * Starting nginx nginx
   ...done.
Error parsing config: extra keys not allowed @ data['web_port']

i delete the web port then it reappear again

How to change the timeformat shown over the clips ?
Would be nice to have it in HH:MM:SS (EU) format.
image

So is the release that just dropped the same as RC6?

This is fixed now.

The release includes a few UI fixes, but everything else is the same.

1 Like

I’ve fixed the web app since this post… originally I was running a beta… however my other problems persist

this latest release is driving me nuts! it just won’t accept the config file for instance “clips” I’ve implemented clips config exactly as per the docs but it just insists “Error parsing config: extra keys not allowed @…”

Same with input_args which I require for one of my cameras, it just reports
“ERROR : Error parsing config: extra keys not allowed @ data[‘cameras’][‘rear’][‘ffmpeg’][‘input_args’]”

Also when using a minimal config and I got it running there was no sign of the new web interface on port 5000… just the original old message that reads “Frigate is running. Alive and healthy!”

using blakeblackshear/frigate:0.8.0-amd64

My config

detectors:
  # Required: name of the detector
  coral:
    # Required: type of the detector
    # Valid values are 'edgetpu' (requires device property below) and 'cpu'.
    type: edgetpu
    # Optional: device name as defined here: https://coral.ai/docs/edgetpu/multiple-edgetpu/#using-the-tensorflow-lite-python-api
    device: usb

# Required: mqtt configuration
mqtt:
  # Required: host name
  host: 192.168.1.39
  # Optional: port (default: shown below)
  port: 1883
  # Optional: topic prefix (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  topic_prefix: frigate
  # Optional: client id (default: shown below)
  # WARNING: must be unique if you are running multiple instances
  client_id: frigate
  # Optional: user
  user: ***
  # Optional: password
  # NOTE: Environment variables that begin with 'FRIGATE_' may be referenced in {}. 
  #       eg. password: '{FRIGATE_MQTT_PASSWORD}'
  password: ***

ffmpeg:
  # Optional: global ffmpeg args (default: shown below)
  global_args: -hide_banner -loglevel fatal
  # Optional: global hwaccel args (default: shown below)
  # NOTE: See hardware acceleration docs for your specific device
  hwaccel_args: []
  # Optional: global input args (default: shown below)
  input_args: -avoid_negative_ts make_zero -fflags +genpts+discardcorrupt -rtsp_transport tcp -stimeout 5000000 -use_wallclock_as_timestamps 1
  # Optional: global output args
  output_args:
    # Optional: output args for detect streams (default: shown below)
    detect: -f rawvideo -pix_fmt yuv420p
    # Optional: output args for record streams (default: shown below)
    record: -f segment -segment_time 60 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy -an
    # Optional: output args for clips streams (default: shown below)
    clips: -f segment -segment_time 10 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c copy -an
    # Optional: output args for rtmp streams (default: shown below)
    rtmp: -c copy -f flv

cameras:
  frontdrive:
    ffmpeg:
      inputs:
        - path: rtsp://root:***@192.168.1.250:88/videoMain
          roles:
            - detect
            - clips
    width: 1920
    height: 1080
    fps: 5
  rear:
    ffmpeg:
      inputs:
        - path: rtsp://192.168.1.249:554/onvif1
          roles:
            - detect
            - clips
      input_args:
        - -rtsp_transport
        - udp
#    clips:
#      max_seconds: 300
#      tmpfs_cache_size: 256m
#      retain:
#        default: 10
#        objects:
#          person: 15

objects:
  # Optional: list of objects to track from labelmap.txt (default: shown below)
  track:
    - person
  # Optional: filters to reduce false positives for specific object types
  filters:
    person:
      # Optional: minimum width*height of the bounding box for the detected object (default: 0)
      min_area: 5000
      # Optional: maximum width*height of the bounding box for the detected object (default: 24000000)
      max_area: 100000
      # Optional: minimum score for the object to initiate tracking (default: shown below)
      min_score: 0.5
      # Optional: minimum decimal percentage for tracked object's computed score to be considered a true positive (default: shown below)
      threshold: 0.7

Note I’ve starred the passwords just for the forum