Local realtime person detection for RTSP cameras

@Kyle, can you try rebooting your rtmp cameras with the blakeblackshear/frigate:dev image to see if it still hangs?

just tried out the dev version, but it still stuck after Reolink camera restart:

frigate    | Detection appears to be stuck. Restarting detection process
frigate    | Waiting for detection process to exit gracefully...
frigate    | No frames received from terrasseSV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | Starting detection process: 113
frigate    | FFmpeg didnt exit. Force killing...
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg process is not running. exiting capture thread...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.x:1935/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseSV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg process is not running. exiting capture thread...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.x:1935/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseSV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg process is not running. exiting capture thread...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.x:1935/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseSV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg process is not running. exiting capture thread...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.x:1935/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseSV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg process is not running. exiting capture thread...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.x:1935/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseSV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg process is not running. exiting capture thread...
frigate    | Detection appears to be stuck. Restarting detection process
frigate    | Waiting for detection process to exit gracefully...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.x:1935/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | Starting detection process: 198
frigate    | No frames received from terrasseSV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | Exception in thread terrasseSV:
frigate    | Traceback (most recent call last):
frigate    |   File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner
frigate    |     self.run()
frigate    |   File "/opt/frigate/frigate/video.py", line 141, in run
frigate    |     frame_bytes = self.ffmpeg_process.stdout.read(self.frame_size)
frigate    | ValueError: read of closed file
frigate    |
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.x:1935/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseSV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg process is not running. exiting capture thread...
frigate    | Detection appears to be stuck. Restarting detection process
frigate    | Waiting for detection process to exit gracefully...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.x:1935/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | Starting detection process: 234
frigate    | No frames received from terrasseSV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseSV: ffmpeg process is not running. exiting capture thread...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.x:1935/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseSV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseSV: ffmpeg didnt return a frame. something is wrong.
frigate    | Exception in thread terrasseSV:
frigate    | Traceback (most recent call last):
frigate    |   File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner
frigate    |     self.run()
frigate    |   File "/opt/frigate/frigate/video.py", line 141, in run
frigate    |     frame_bytes = self.ffmpeg_process.stdout.read(self.frame_size)
frigate    | ValueError: read of closed file
frigate    |

Pulled the latest dev image from docker and ran it. I rebooted my cameras and it did work for me! I can see the /debug/stats show a new ffmpeg_pid and the debug view shows the realtime view working. Thanks!

@nic0dk There are two things that I think might be different between our setups.

  1. I think I caught before that you’re using RTSP, while I’m using RTMP on the reolink cameras. Reolink Doc on setup.
  2. Ensure you’re pulling the latest image of frigate:dev:. Often I’ll find myself needing to manually delete my frigate:dev image locally when a new one is posted because I haven’t found a reliable way for my docker-compose to force the pull of a newer image with the same tag.

When I run:

docker images --no-trunc --quiet blakeblackshear/frigate:dev

I get:

sha256:1747585cb047bebd55c4d08c272d45b9ae460765e808fa2a88461e13fc1e0767

But I’m also not sure if that’s unique for my machine, or everyone should be seeing the same sha256… so just keep that in mind

1 Like

Hi Kyle, thanks for the reply:
i can confirm the hash is matching:

sha256:1747585cb047bebd55c4d08c272d45b9ae460765e808fa2a88461e13fc1e0767

im using rtmp for frigate and rtsp for HA, see below config, i have excluded the hikvision config:


mqtt:
  host: xxx.xxx.x.10
  topic_prefix: frigate
  # client_id: frigate # Optional -- set to override default client id of 'frigate' if running multiple instances
  user: xxxx # Optional
  #################
  ## Environment variables that begin with 'FRIGATE_' may be referenced in {}.
  ##   password: '{FRIGATE_MQTT_PASSWORD}'
  #################
  password: xxxx # Optional

FRIGATE_RTSP_PASSWORD: "xxxx"

objects:
  track:
    - person
    - car
    - truck
  filters:
    person:
      min_area: 5000
      max_area: 99999
      threshold: 0.8


cameras:

  terrasseSV:
    ffmpeg:
#      input: rtsp://admin:[email protected]:554/h264Preview_01_sub
      input: rtmp://xxx.xxx.x.53:1935/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxx
      input_args:
        - -avoid_negative_ts
        - make_zero
        - -fflags
        - nobuffer
        - -flags
        - low_delay
        - -strict
        - experimental
        - -fflags
        - +genpts+discardcorrupt
        - -vsync
        - drop
        - -use_wallclock_as_timestamps
        - '1'
 #         - -rtsp_transport
    fps: 4
    snapshots:
      show_timestamp: True
#    take_frame: 3
    regions:
      - size: 340
        x_offset: 1
        y_offset: 50
        min_person_area: 5000
        threshold: 0.8
      - size: 275
        x_offset: 341
        y_offset: 70
        min_person_area: 5000
        threshold: 0.8

  terrasseNV:
    ffmpeg:
#      input: rtsp://admin:[email protected]:554/h264Preview_01_sub
      input: rtmp://xxx.xxx.x.54/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxx
      input_args:
        - -avoid_negative_ts
        - make_zero
        - -fflags
        - nobuffer
        - -flags
        - low_delay
        - -strict
        - experimental
        - -fflags
        - +genpts+discardcorrupt
        - -vsync
        - drop
        - -use_wallclock_as_timestamps
        - '1'
  #        - -rtsp_transport
    fps: 4
    snapshots:
      show_timestamp: True
#    take_frame: 3
    regions:
      - size: 340
        x_offset: 1
        y_offset: 50
        min_person_area: 5000
        threshold: 0.8
      - size: 275
        x_offset: 341
        y_offset: 70
        min_person_area: 5000
        threshold: 0.8

hmm not sure why im getting the “hang” and you not :slight_smile: properly i need to compare you config with my and see if i set the correct parameters for rtmp on ffmpeg.

1 Like

I can tell that you are using the latest dev image from your logs. Also, I can see rtmp in your ffmpeg statements. Did terrasseNV restart ok? It is strange that your detection process is getting stuck so frequently. That should be very rare. I might see that once per week. What is your hardware setup?

Hi @blakeblackshear

about the restart of terrasseNV, it did restart ok, i can use the same rtmp on vlc with no problem, but the only way i can get it working on frigate, is by restarting the container (just did the test again)

im running an NUC i5-5250U with 16gb ram with proxmox and plain debian on top, where i have frigate docker running, aswell added in a google coral, the load via htop:

here is the debug url:

{"coral":{"detection_start":0.0,"fps":17.6,"inference_speed":34.57,"pid":271},"indkorsel":{"camera_fps":4.0,"detection_fps":3.9,"ffmpeg_pid":30,"frame_info":{"detect":1588162301.439977,"process":1588162301.235824,"read":1588162301.633942},"pid":65,"process_fps":4.0,"read_start":0.0,"skipped_fps":0.0},"plasma_store_rc":null,"terrasse":{"camera_fps":4.0,"detection_fps":0.0,"ffmpeg_pid":38,"frame_info":{"detect":1588162301.632217,"process":1588162301.632217,"read":1588162301.632217},"pid":66,"process_fps":4.1,"read_start":1588162301.635042,"skipped_fps":0.0},"terrasseNV":{"camera_fps":6.8,"detection_fps":0.0,"ffmpeg_pid":63,"frame_info":{"detect":1588162301.639927,"process":1588162301.639927,"read":1588162301.639927},"pid":68,"process_fps":7.0,"read_start":1588162301.643003,"skipped_fps":0.0},"terrasseSV":{"camera_fps":6.9,"detection_fps":13.7,"ffmpeg_pid":55,"frame_info":{"detect":1588162301.636401,"process":1588162301.443269,"read":1588162301.842756},"pid":67,"process_fps":6.9,"read_start":1588162301.7997,"skipped_fps":0.0}}

seems like the load is higher on the dev release:


oh to fast, it catch the stream again after a second restart:


frigate    | No frames received from terrasseNV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | FFmpeg didnt exit. Force killing...
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | Exception in thread terrasseNV:
frigate    | Traceback (most recent call last):
frigate    |   File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner
frigate    |     self.run()
frigate    |   File "/opt/frigate/frigate/video.py", line 141, in run
frigate    |     frame_bytes = self.ffmpeg_process.stdout.read(self.frame_size)
frigate    | ValueError: read of closed file
frigate    |
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.54/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseNV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg process is not running. exiting capture thread...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.54/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseNV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg process is not running. exiting capture thread...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.54/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseNV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | Exception in thread terrasseNV:
frigate    | Traceback (most recent call last):
frigate    |   File "/usr/lib/python3.7/threading.py", line 926, in _bootstrap_inner
frigate    |     self.run()
frigate    |   File "/opt/frigate/frigate/video.py", line 141, in run
frigate    |     frame_bytes = self.ffmpeg_process.stdout.read(self.frame_size)
frigate    | ValueError: PyMemoryView_FromBuffer(): info->buf must not be NULL
frigate    |
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.54/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxx -f rawvideo -pix_fmt rgb24 pipe:
frigate    | No frames received from terrasseNV in 5 seconds. Exiting ffmpeg...
frigate    | Waiting for ffmpeg to exit gracefully...
frigate    | terrasseNV: ffmpeg didnt return a frame. something is wrong.
frigate    | terrasseNV: ffmpeg process is not running. exiting capture thread...
frigate    | Creating ffmpeg process...
frigate    | ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -use_wallclock_as_timestamps 1 -i rtmp://192.168.1.54/bcs/channel0_sub.bcs?channel=0&stream=0&user=admin&password=xxxx -f rawvideo -pix_fmt rgb24 pipe:

What do you mean it caught the stream again? It started working after a few tries? Next time that happens, can you exec into the docker container and run ps -ef? I want to see if there are lingering ffmpeg processes holding onto network connections and overwhelming your camera. Do you always have detection times of ~34ms? With that setup, you should be closer to 10ms. Your proxmox/vm setup is introducing a lot of overhead if so.

yes it caught the stream again, i just needed to wait.

im not sure what causes the 34ms delay - i did ping the camera from the host and frigate container and had a ping below 0.5ms - can i dig some logs for finding the reason of the high inference latency - im thinking some kind of limited to the google coral usb port?

The 34ms I mentioned is the delay in the container talking to the Coral, not a delay in the container talking to the camera. You are only going to hit 30% of the processing power of the Coral and max out at ~35fps.

ok, i need to investigate in what cause this problem, maybe i should try to move frigate container out on the VM host directly for bypassing the vhost setup

Hi, I’m using your setup since one month integrated with HA and it works just great!

In my applications, I have three outdoor IP CAMs I’m using to check intrusions (person detection) through my backyard. I’m still getting some false positive with confidence >75% I’m trying to manage with some post-filtering based on detection persistence.

Just for curiosity, have you ever tested Detectron2 from Facebook for similar applications?

I haven’t tested Detectron2. I have been focused on tensorflow because of the Coral devices. If it is more accurate, it is probably because it’s using a different type of model. The one being used in frigate is optimized for real time analysis over accuracy. I am starting to look into further improvements that would reduce false positives. I am trying to collect clips of false positives for testing if you are willing to send me some samples.

sure. No pb.

Here is the link with snapshots and clips.

I think this kind of heurestic would also get rid of almost all my false positives, as they usually involve animals. I just had one that I can send to you. I don’t have the debug output but I have the original camera recording from the DVR. I’ll PM it to you.

This might be a beginner question but still, I’m monitoring my MQTT server and do see a lot of message from Frigate with only the contents: online.

I have about 4 for of them every second.

Is there any option to disable this flood of messages?

I’m a bit worried this is taking up network bandwith.

That is probably typically an indication that you have multiple containers of frigate running. All cameras should be in a single config file.

1 Like

Are masks still working for anyone else in 5.1.RC4?

I’m only sharing this because I was impressed by what was captured and that it was a false positive. It’s such a neat shot I dont even mind the false positive.

image

2 Likes

My masks seem to be working under rc4… I think you can now apply different masks to specific objects, though I haven’t tried it yet.