Don't use RaspberryPi OS. There's issues with trying to run AgentDVR on it. Unbuntu works fine.
Also, disable ONVIF Discovery. It might cause crashes at startup. This issue is being fixed by the developer.
I just updated two of my RPIs to 5 so I repurposed the others.
Thanks for the heads up on that.
For clarity...
I have a XenoCam 4 Channel NVR that came with the house. No documentation on it and The Google has not been helpful. I was able to figure out the RTSP urls that work in VLC so in order to use IP Camera Viewer I need HTTP feeds as I've tried RTSP:// and it doesn't work in IP Camera Viewer. I installed AgentDVR in Windows and it worked but it took a huge load on the server. I switched to VLC after I was able to get it configured properly but it wasn't stable. I wasn't able to get VLC to work on the Raspberry Pi. I tried the Rokuphp. IP Camera Viewer found all the cameras configured in Rokuphp but was unable to display any of the streams. I then installed AgentDVR on a RPi3 and it worked but was slow and buggy. I upgraded to a RPi5 with Ubuntu instead of Raspberry OS and it works. I did run into an issue that when AgentDVR starts up it by default tries to discover any ONVIF devices. Unfortunately on my network I have some devices that 'look' like ONVIF devices, e.g. a Canon Printer and a Philips Hue Hub. I know this because I was trying an ONVIF client app earlier and it found them but couldn't connect. These devices cause AgentDVR to crash (which the developer has fixed: https://www.reddit.com/r/ispyconnect/comments/1f6qelh/agentdvr_crashes_on_startup_performing_pings_o...). Disabling ONVIR discovery in Settings->General fixes that issue as well.
For my setup, each camera is configured as an MJPEG source with the appropriate URL for my NVR:
rtsp://XXX.XXX.XXX.XXX:554/cam/realmonitor?channel=1&subtype=1
In IP Camera Viewer, the URL to AgentDVR is like this:
IP: <IP address of AgentDVR server>
TCP Port: 8090
Stream URL: /video.mjpg?oid=1&size=640x360
oid is the camera feed ID. oid=1 is camera 1, oid=2 is camera 2, etc.
I have six TVs, 2 Roku TVs and 4 Roku 4Ks all running IP Camera Viewer as the screen saver and they have been working fine since I got the latest setup.
I also setup 4 camera feeds and a mosaic using ffmpeg that works for browsers but for some reason does NOT display in IP Camera Viewer.
So http://XXX.XXX.XXX.XXX:8880/cgi-bin/camstream1 displays camera 1.
I can document this setup in another post if needed.
Hope this helps.
Additional note... after doing some performance testing I find that the Raspberry Pi 5 is best suited for a four camera setup. It runs at around 66% CPU utilization. I tried the same setup on a Raspberry Pi 4, using RaspberryPi OS as it doesn't have the bug on the 4 that the 5 has. Four cameras consistently run at 95-100% CPU utilization and the camera outputs get really degraded.
I ended up switching to MotionEye on a dedicated RPi 4.
It just works, and it works well enough for my purposes. It serves all 4 streams from my 4 Reolinks to IP Camera Pro quickly, and the screen saver feature on my Rokus works great with it as well. The stream comes up very quickly on all of our TVs.
The image quality can be configured in MotionEye, and it works well enough for me. Because I have more than one location for package drop-offs, we can check to see where Amazon, UPS etc. threw the package, and I can keep an eye on my robot lawnmower when I want to.
I installed the Docker image and configured it properly for my four cameras. So my Frontyard camera displays in MotionEye, and I can access the stream from a remote PC with chrome at http://XXX.XXX.XXX.XXX:8081. I configured this in IP Camera Viewer and it doesn't display. "Test Camera Config" does not work. Can you post your settings for the "Camera Configuration" in IP Camera Viewer?
Sure...
IP is the IP
Port is the port you give the camera in MotionEye (each camera should be given a different port #.)
Stream is /http://192.168.50.116:8084?
Replace the IP and port with yours of course.
Let me know if it works for you.
I used the web option to add the cameras, then did a save. I could then simply upload the save for my other TV's, saving a lot of time. It's just a simple xml file (which I edited to change the order of the cameras).
Forgot to mention username and password is left blank.
The IP is the IP of your RPi.