Amcrest IP Cameras and NVR

I am currently running MotionEye on my Linux-based home server with some relatively cheap IP cameras off of Amazon. The cameras work fine, but I’d like to move away from MotionEye and just pick up a dedicated NVR box to handle recording all my video.

I was looking into the Amcrest NVRs as well as the Amcrest cameras as a possible upgrade, as they have a dedicated HA component. (As of now I am just using a picture glance card with the URL snapshot from MotionEye).

As I understand it, if I pass the IP cameras directly into a PoE NVR I would have to view the streams through one IP address: the one assigned to the NVR. As far as I can tell getting the images from multiple channels on the NVR isn’t straightforward.

However, if I run the cameras into a PoE router and they are connected directly to my network they will each have an individual IP address. I can then easily use the Amcrest HA component to get all the feeds, and then I will have to just manually configure the NVR to record from those IP addresses.

I hope I’m explaining myself clearly here, as it seems I have two options, and I’m not sure which is best:

  1. Purchase an Amcrest PoE NVR that cameras will plug directly into
  2. Run cameras into a PoE router, and purchase NVR without PoE that will record the network streams from individual camera IP addresses.

Does anyone have experience with Amcrest products and HA? I’d really like to get some input before I drop hundreds on a setup…

Thanks!

I do not have an NVR setup - but I believe you can use one and still access each stream.

Yes you would have one IP address for all cameras, but I believe you would then map each to a different port. So you would use for example if your NVR was IP 192.168.0.100, then each camera would be:

192.168.0.100:81
192.168.0.100:82
192.168.0.100:83
etc.

and your configuration.yaml would be like this:

amcrest:
  - host: 192.168.0.100
    port:81
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    name: Camera1

  - host: 192.168.0.100
    port:82
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    name: Camera2

  - host: 192.168.0.100
    port:83
    username: YOUR_USERNAME
    password: YOUR_PASSWORD
    name: Camera3

Someone else can correct me if I am misinforming you.
As far as assigning the ports in the NVR - I imagine you will have to look at the NVR manual for that part.

DeadEnd

The port selection for each camera will not work THROUGH the Amcrest NVR… you have to use the RTSP stream and use the channel=1,2, etc in the url which works fine. I have 4 channel NVR use FFMPEG camera with the different channel URLs which works fine. The only downside is getting the motion events out was a bit more of a chore this way. The amcrest component will make these sensors for you but as you stated… using your own POE switch on your normal network will allow you to use the Amcrest component with the individual camera IPs.

Thanks for correcting.

No problem… I spent a lot of time trying to get the Amcrest component to work with my NVR even finding out the port numbers given when using a link to web option in the interface but it seems those ports aren’t persistent and I could not connect directly except through a web browser. As far as the motion detection events I ended up using this: https://github.com/psyciknz/CameraEvents
Which seems to work well, it runs outside of HA but any of the HA components that are supposed to do the same thing didn’t seem to work.

Yesterday I was working on this still (Dahua Camera’s don’t seem to like any of the motion detection in HA). I have tried the Amcrest Motion Detection, FFMPEG binary motion sensor, both work for a short while and then fail. FFMPEG binary goes offline and I have to restart FFMPEG, Amcrest begins getting 401 and 500 HTTP errors.

Last night I took another route… I moved my automation to Node-Red and found that there is a palette someone made for Dahua camera events. It hasn’t been running more than a day, but if this works out it is a work around until there is something for Dahua that works with AX.

I just wanted to share in case you use Node-Red or some other external automation system, and there might be something similar for whatever camera/NVR system you are using. I was happy to find something that might finally work reliably.

DeadEnd

Have you tried motion detection with the amcrest component recently, say HA version 0.92 or later? In 0.92.0 a binary_sensor for motion detection was added, and in 0.93.0 services were added to enable and disable motion detection.

401 errors are due to incorrect network retries at the wrong level with cameras that use Digest Authentication. A fix is in the works.

500 errors I’ve only seen when the snapshot quality is set too high. The camera does not seem to be able to respond correctly to a snapshot command when this is the case. If you see these try lowering the snapshot quality setting.

Sorry I didn’t mean yours (the built in one now I believe). I meant ones made specifically for multichannel NVRs like Dahua events etc

Just picked up my NVR and am liking it so far. How did you figure out the correct RTSP stream nomenclature to use when importing the feed to HA?

I’ve gone through this rigmarole before with other IP cameras and I really, really don’t want to fiddle with it for hours to find the perfect combination of user login, port, /11, /h264, etc.

This might help.

I use the ffmpeg camera and this is my url:
rtsp://USERNAME:PASSWORD@/cam/realmonitor?channel=1&subtype=1
Just make another entry for each cam and change the channel number
Subtype 1 is the lower quality “Extra steam”. Subtype 0 would be the high quality main stream

In case the above is not working for you and you are trying to get camera feeds from an Amcrest NV4108E, try adding the IP address, port (usually 554), and replacing the “&” before subtype to a “?”. Found this solution on an amcrest forum and its working great for me.

rtsp://USERNAME:PASSWORD@IPADDRESS:PORT/cam/realmonitor?channel=1?subtype=0

Interesting, thanks for this update. I found the post in the Amcrest forum here. It appears this & to ? change is only for connections through an NVR, not to the camera directly. Or maybe it’s just a quirk for some specific models of Amcrest NVR with a certain level of firmware? Just a really odd incompatibility from the official API docs that may not have been intentional.

1 Like