Reolink NVR vs. Frigate - Person Detection 📹

What’s up everyone! :wave:
Currently I have a Reolink NVR that all my cameras connect to via POE or WIFI.
I use the Reolink / NVR native HA integration with many automations that trigger on and/or combine certain camera motion conditions.

Some of my connected cameras support actual motion type detection that can distinguish between person, pet, or vehicle. :dog2::people_holding_hands::video_camera:
However, some of my cameras do not support distinguishing the type of motion like this.

My question is, does anyone know if I stand-up a Frigate (open-source NVR), will it add the capability to those other cameras and compliment my existing Reolink NVR?

Frigate is slightly more useful than standard NVR.

NVR motion detection only checks if there was pixel change(motion) frame to frame

Frigate adds upon this by checking the frame where pixel changed and sending it to model to determine if a specific object,like car or dog, was in frame and provide a score based on confidence. This reduces notifications for something like an entry where you want notification if person enters. NVR can only determine if something changed vs frigate saying person detected with 75% confidence

Frigate is improving and extremely good. Its review capabilities are amazing as you can scroll a timeline and see all cameras at once while zoomed on a camera of interest. It also has a sort of heat map on timeline for detections. I’ve tried everything and to date this is the best

Alternatively you can use Reolink NVR and send detections to AI and retrieve descriptive text. You may parse that text for keywords and have notifications based off that. This is next step for NVRs and possible with Reolink or frigate.

3 Likes

I’m recently installed Frigate as a docker on my Unraid and I’d like to add my Reolink 8 cameras that are connected via a Reolink NVR (Model RLN16-410).
I’m not having any success with the available Frigate config.yaml examples.

Here’s what’s currently not working when trying with just channel 3:

mqtt:
  enabled: false

go2rtc:
  rtsp:
    username: '{FRIGATE_GO2RTC_RTSP_USERNAME}'
    password: '{FRIGATE_GO2RTC_RTSP_PASSWORD}'
  streams:
    your_reolink_camera_via_nvr:
      - ffmpeg:http://192.168.100.48/flv?port=1935&app=bcs&stream=channel3_main.bcs&user=username&password=password   # channel numbers are 0-15
      - ffmpeg:your_reolink_camera_via_nvr#audio=aac
    your_reolink_camera_via_nvr_sub:
      - ffmpeg:http://192.168.100.48/flv?port=1935&app=bcs&stream=channel3_ext.bcs&user=username&password=password

cameras:
  reolink_via_nvr:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/your_reolink_camera_via_nvr?video=copy&audio=aac
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/your_reolink_camera_via_nvr_sub?video=copy
          input_args: preset-rtsp-restream
          roles:
            - detect
version: 0.14

Can someone help?

Is 192.168.100.48 the Reolink NVR IP?

Can you view the NVR feed from NVR below in VLC or other app?

http://192.168.100.48/flv?port=1935&app=bcs&stream=channel3_main.bcs&user=username&password=password

You added password to the rtsp stream from go2rtc but you don’t have it here

EDIT
Your stream source under go2rtc shows http:// but I would expect nvr or even camera direct to be rtsp://

This may work but you may be using wrong link still

When I try the above URL in a browser or VLC, it does not resolve/play.

I am not sure how to configure the rtsp stream section. Yes my Reolink NVR requires a login, so I’m not sure how to setup my config.yaml in Frigate…

mqtt:
  enabled: false

go2rtc:
 # I would remove this for now.  It only adds a password to go2rtc stream and right now it will just cause confusion while you troubleshoot
 # rtsp:
 #   username: '{FRIGATE_GO2RTC_RTSP_USERNAME}'
 #   password: '{FRIGATE_GO2RTC_RTSP_PASSWORD}'
  streams:
    your_reolink_camera_via_nvr:
      - rtsp://nvruser:nvrpass@yourNVRip:554/h264Preview_01_main

    your_reolink_camera_via_nvr_sub:
      - rtsp://nvruser:nvrpass@yourNVRip:554/h264Preview_01_sub


cameras:
  reolink_via_nvr:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/your_reolink_camera_via_nvr
          roles:
            - record
            - audio # only needed if camera has audio 
        - path: rtsp://127.0.0.1:8554/your_reolink_camera_via_nvr_sub
          roles:
            - detect
version: 0.14

i dont have reolink cameras but this may be close to correct

Test the streams showing in go2rtc section of config in vlc. If you cannot play in vlc it will problably not work in frigate as well. You must first verify a working input stream then add it to frigate.

EDIT
I don’t run my camera substream through go2rtc.
Instead I retrieve directly from camera.

In your case I would definitely look at pulling sub stream direct from camera. Possiblyain stream as well.

I expect your camera connect direct to NVR. If true running through NVR may be only choice. I have small concern of break in a theives taking NVR. For this reason I would consider using low cost poe switch and connecting NVR/frigate to cameras independently. This ensure if one goes down the other still records.

1 Like

So this worked for me using VLC:

rtsp://adminAccount:Mypassword@reolinkAddress:554/h264Preview_01_main

With your sample config.yaml from Frigate above, I replaced mine and updated the rtsp URL with the credentials and Reolink NVR address that worked with VLC.

However, after saving and restarting Frigate, I get ‘no frames received’ on the Frigate dashboard and in the system logs I see this:

The only thing different between VLC player and Frigate is, Frigate is on a different vLAN behind a firewall. But the firewall is allowing the traffic…

So can you help me verify the config I should use to get all 8 cameras connected to my Reolink NVR into Frigate?

Post your full config
My example was not full config so maybe something missing.

The log shows that frigate is trying to access the go2rtc stream but cannot. Maybe the stream is wrong or go2rtc config is wrong.

To check this , place the working camera url as the detect and record stream url. Frigate will ignore go2rtc and access the camera directly. If this works go2rtc config is wrong and if not there is other issue.

Here is my Frigate full config.yaml

mqtt:
  enabled: false

go2rtc:
 # I would remove this for now.  It only adds a password to go2rtc stream and right now it will just cause confusion while you troubleshoot
 # rtsp:
 #   username: '{FRIGATE_GO2RTC_RTSP_USERNAME}'
 #   password: '{FRIGATE_GO2RTC_RTSP_PASSWORD}'
  streams:
    your_reolink_camera_via_nvr:
      - rtsp://user:[email protected]:554/h264Preview_01_main

    your_reolink_camera_via_nvr_sub:
      - rtsp://user:[email protected]:554/h264Preview_01_sub


cameras:
  reolink_via_nvr:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/your_reolink_camera_via_nvr
          roles:
            - record
            - audio # only needed if camera has audio 
        - path: rtsp://127.0.0.1:8554/your_reolink_camera_via_nvr_sub
          roles:
            - detect
version: 0.14