Local realtime person detection for RTSP cameras

At the command line, type in

sudo docker ps

Should give you the image name you are running.

Hi @blakeblackshear, Iā€™m back and trying to upgrade from 0.2.0-beta to 5.1-rc1. Having a few issues. You might remember me from this classic hikvision problem thread, maybe the issue is similar this time. Iā€™m upgrading from the frigate:0.2.0-beta that Iā€™ve been running for quite a while since the ffmpeg 5 fixed those previous issues.

Unfortunately 0.5.1-rc1 only lasted 8 hours before freezing. The live feed is just showing old images from 12 hours ago, one of them looks like this:

image

Other looks like this:

image

Other looks like this:

image

The log is doing this sort of thing over and over:

Process for back has been reading from ffmpeg for over 10 seconds long. Killing ffmpeg...
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process exited unexpectedly with 255
Letting back rest for 0 seconds before restarting...
Terminating the existing ffmpeg process...
Waiting for ffmpeg to exit gracefully...
Creating ffmpeg process...
ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -rtsp_transport tcp -stimeout 5000000 -use_wallclock_as_timestamps 1 -i rtsp://uname:pw@ip:554/Sms=4.unicast -f rawvideo -pix_fmt rgb24 pipe:
Process for back has been reading from ffmpeg for over 10 seconds long. Killing ffmpeg...
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process exited unexpectedly with 255
Letting back rest for 0 seconds before restarting...
Terminating the existing ffmpeg process...
Waiting for ffmpeg to exit gracefully...
Creating ffmpeg process...
ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -rtsp_transport tcp -stimeout 5000000 -use_wallclock_as_timestamps 1 -i rtsp://uname:pw@ip:554/Sms=4.unicast -f rawvideo -pix_fmt rgb24 pipe:
Process for back has been reading from ffmpeg for over 10 seconds long. Killing ffmpeg...
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process exited unexpectedly with 255
Letting back rest for 0 seconds before restarting...
Terminating the existing ffmpeg process...
Waiting for ffmpeg to exit gracefully...
Creating ffmpeg process...
ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -rtsp_transport tcp -stimeout 5000000 -use_wallclock_as_timestamps 1 -i rtsp://uname:pw@ip:554/Sms=4.unicast -f rawvideo -pix_fmt rgb24 pipe:
Process for back has been reading from ffmpeg for over 10 seconds long. Killing ffmpeg...
back: ffmpeg_process didnt return any bytes
back: ffmpeg_process exited unexpectedly with 255
Letting back rest for 0 seconds before restarting...
Terminating the existing ffmpeg process...
Waiting for ffmpeg to exit gracefully...
Creating ffmpeg process...
ffmpeg -hide_banner -loglevel panic -avoid_negative_ts make_zero -fflags nobuffer -flags low_delay -strict experimental -fflags +genpts+discardcorrupt -vsync drop -rtsp_transport tcp -stimeout 5000000 -use_wallclock_as_timestamps 1 -i rtsp://uname:pw@ip:554/Sms=4.unicast -f rawvideo -pix_fmt rgb24 pipe:

Hereā€™s my config file:


web_port: 4000

mqtt:
  host: 192.168.1.60
  topic_prefix: frigate
  user: uname
  password: '{FRIGATE_MQTT_PASSWORD}'

objects:
  track:
    - person
    - car
    - truck
  filters:
    person:
      threshold: 0.77
      min_area: 4000

cameras:
  right:
    mask: 1080Right.bmp
    fps: 5
    height: 1920
    width: 1080
    ffmpeg:
      input: 
        rtsp://uname:{FRIGATE_RTSP_PASSWORD_RIGHT}@192.168.1.50554/Sms=1.unicast
    snapshots:
      show_timestamp: False
    objects:
      track:
        - person
      filters:
        person:
          min_area: 9000


  left:
    fps: 5
    mask: 1080Left.bmp
    height: 1920
    width: 1080
    ffmpeg:
      input: 
        rtsp://uname:{FRIGATE_RTSP_PASSWORD_LEFT}@192.168.1.50:554/Sms=3.unicast
    snapshots:
      show_timestamp: False
    objects:
      track:
        - person
      filters:
        person:
          min_area: 14000


  front:
    fps: 5
    mask: 1080Front.bmp
    height: 1080
    width: 1920
    ffmpeg:
      input: 
        rtsp://uname:{FRIGATE_RTSP_PASSWORD_FRONT}@192.168.1.50:554/Sms=2.unicast
    snapshots:
      show_timestamp: False
    objects:
      track:
        - person
      filters:
        person:
          min_area: 4000


  back:
    fps: 5
    mask: 1080Back.bmp
    height: 1080
    width: 1920
    ffmpeg:
      input: 
        rtsp://uname:{FRIGATE_RTSP_PASSWORD_BACK}@192.168.1.50:554/Sms=4.unicast
    snapshots:
      show_timestamp: False
    objects:
      track:
        - person
      filters:
        person:
          min_area: 9000

Maybe I need some special ffmpg parameters? Itā€™s only using 3% CPU, down from 44% when it was working correctly, so doesnā€™t seem to be a race condition.

Yeah, Iā€™ve tried that but it just gives me frigate:latest.

Assuming you cloned the project from git and have not changed branch since, then git status might give a clue

What exactly does this error mean?
What space is this referring to?

/arrow/cpp/src/plasma/eviction_policy.cc:134: There is not enough space to create this object, so evicting 36 objects to free up 80898048 bytes. The number of bytes in use (before this eviction) is 399914240.
/arrow/cpp/src/plasma/eviction_policy.cc:134: There is not enough space to create this object, so evicting 36 objects to free up 86197248 bytes. The number of bytes in use (before this eviction) is 397147136.
/arrow/cpp/src/plasma/eviction_policy.cc:134: There is not enough space to create this object, so evicting 35 objects to free up 84623360 bytes. The number of bytes in use (before this eviction) is 399262720.
/arrow/cpp/src/plasma/eviction_policy.cc:134: There is not enough space to create this object, so evicting 36 objects to free up 80898048 bytes. The number of bytes in use (before this eviction) is 399914240.
/arrow/cpp/src/plasma/eviction_policy.cc:134: There is not enough space to create this object, so evicting 34 objects to free up 84352512 bytes. The number of bytes in use (before this eviction) is 398069504.
/arrow/cpp/src/plasma/eviction_policy.cc:134: There is not enough space to create this object, so evicting 36 objects to free up 80898048 bytes. The number of bytes in use (before this eviction) is 399914240.
/arrow/cpp/src/plasma/eviction_policy.cc:134: There is not enough space to create this object, so evicting 36 objects to free up 80246528 bytes. The number of bytes in use (before this eviction) is 399262720.
/arrow/cpp/src/plasma/eviction_policy.cc:134: There is not enough space to create this object, so evicting 33 objects to free up 83430144 bytes. The number of bytes in use (before this eviction) is 398991872.
/arrow/cpp/src/plasma/eviction_policy.cc:134: There is not enough space to create this object, so evicting 35 objects to free up 85274880 bytes. The number of bytes in use (before this eviction) is 399914240.
/arrow/cpp/src/plasma/eviction_policy.cc:134: There is not enough space to create this object, so evicting 36 objects to free up 80898048 bytes. The number of bytes in use (before this eviction) is 396459776.

That is the plasma store running out of space in its memory cache. Frames are stored in that cache so they can be accessed by multiple processes.

@tc23 try this docker inspect --format='{{index .RepoDigests 0}}' $IMAGE

1 Like

So I fixed one problem, I had the framerate wrong, and switched from my synology streams back to the hikvision streams that didnā€™t work under v0.2, now they seem to work similarly to my synology but without some artifacts, but they crap out after a day. Hereā€™s what I get in the logs, any ideas? Interestingly all the camera images are frozen at the exact same moment from yesterday.

/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 13 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 12 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 11 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 10 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 9 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 8 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 7 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 6 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 5 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 4 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 3 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 2 more times
/arrow/cpp/src/plasma/io.cc:168: Connection to IPC socket failed for pathname /tmp/plasma, retrying 1 more times
TrackedObjectProcessor: unable to connect plasma client

Higher up in the logs, it looks like the snippet I sent in my post from a couple days ago

Here are my last camera images all at the same moment. Let me know if thereā€™s something I should try before giving up and going back to 0.2-beta

image

image

Did you add the new shm-size parameter to your config?

Yes, I remember typing it in as 768m for my 4 1080p streams. Since the first time I ran it, I just cloned that config over to a permanent config in synology, so I hope all the options came with it.

Is there any way I can double check?

Not sure how you would check on the synology.

I have been unable to get the container to run as I am getting the following error.

No such file or directory: '/config/config.yml

I have created a config directory volume and placed the config.yml file in that directory.
Could this be a permission problem?
here is my docker run commandā€¦

docker run --rm \
--privileged \
--shm-size=512m \
-v /dev/bus/usb:/dev/bus/usb \
-v ~/docker/frigate:/config:ro \
-v /etc/localtime:/etc/localtime:ro \
-p 5000:5000 \
-e FRIGATE_RTSP_PASSWORD='password' \
blakeblackshear/frigate:stable

I think your config file might be ending up at /config/config/config.yml. Maybe try -v ~/docker/frigate/config:/config:ro

unfortunatly same issue.
image

After a bit more research, it looks like Synology is shitty and doesnā€™t allow setting docker run arguments in their config. Any chance of setting this in an environment variable?

I have a Synology and this is my docker command

$ cat ~/frigate.sh

sudo docker run \
--name='Frigate-0.5.1-rc2' \
--privileged \
--shm-size=512m \
-v /dev/bus/usb:/dev/bus/usb \
-v /volume1/data/frigate/config:/config:ro \
-v /etc/localtime:/etc/localtime:ro \
-p 5555:5000 \
-d blakeblackshear/frigate:0.5.1-rc2

Yeah I will just do it by command line if itā€™s not possible with gui. But if I could pass the parameter in an environment variable, I could use the GUI.

@blakeblackshear, Noticed that when it generated an error there was a new config directory under the frigate directory. I moved my config.yml file to the new directory and the container looks like it started up.
Now to figure out how to set the regions.

Hello,

First of all, thanks for sharing this project itā€™s amazing!
I tried using frigate on my Synology DS218+ that contains also my cameras on surveillance station.
I noticed that when i launch frigate, the camera that is used in frigate has its fps dropping to 1 or even 0 on surveillance station. Is that normal ? And I have atleast 1min of delay between the actual muvement and the apparition on the screenā€¦

Would you have any config suggestions to make it work better ? I have Reolink RLC-410

Thanks in advance for the help

1 Like

I am happy to report that I have this working now. Definitely need to procure a coral unit.
Is there a way to view all the captured images not just the last one?