The market for security cameras is very old fashioned and plagued with proprietary implementations. ONVIF is the standard that allows interoperability with desktop Video Management Systems and other devices, is the protocol that allows to glue together end to end systems.
Some alternatives are starting to appear, but this is an industry that moves really slow. Things only seem to happen when a new player disrupts the market and starts taking market share, as AXIS did with cheap IP cameras back in the day.
I don't know how complete it is, but this site [1] claims to verify which cameras are truly ONVIF compliant as apparently some companies make false claims about their cameras or gatekeep some ONVIF functions.
The ONVIF SOAP APIs aren't really that important IMHO. They're mostly used for configuration. Configuring your camera is something you do rarely, and if you have to put up with some crappy web interface, proprietary plugin, or Windows-only desktop software for it, oh well.
After that would be some way to get the analytics, assuming the camera has them and they're any good. If the ONVIF API works well, great, but a proprietary API isn't that bad IMHO as long as it's simple.
My opinion differs a little bit. If I buy a PTZ I know some here think those are a waste I expect to be able to control it from an open source application. If I can control all aspects of PTZ audio and video then that is good enough for me, but may not be good enough for others.
I don't think proprietary APIs are mutually exclusive with open source clients. These APIs tend to be a lot simpler than ONVIF (SOAP is a mess) so they're easy to implement and even reverse-engineer (though there's often some documentation on the web). It's just a bit of work for each manufacturer.
I have high-end security camera's all over the exterior of my house. They all run a Linux 2.6 Kernel that is froom 2011. There are no firmware updates available from the manufacture, and even their new camera's run this kernel.
If I could find a brand that actually did regular maintenance and wasn't a walled garden (such as Ubiquity), I would replace all of my camera's.
Security comes from networking tricks (VLAN's, etc), which is far from ideal.
Well, raspberry pis have a CSI port and is based off a recent debian release. If you want something newer than raspberry pi os then you can run debian or arch with a cron job to update and reboot.
Not pretty, not reliable, but surely more secure. Though the best thing is to air-gap or at the least firewall.
Bosch are the only ones I’ve found that have full chain of custody on all parts of the camera
I wouldn’t discount network tricks, tho. A non-routed vlan for cameras to talk to the nvr and all video access through the nvr only keeps cameras pretty safe. Much easier to secure one nvr than 100 cameras
Hard days that those interested in trying to DIY with an RPi or RPi0 just can't, that there's no parts available.
There's some various other boards we could possibly use. Few are small. Many lack CSI interfaces for attaching cameras. And then, for your outdoor use, ruggedizing is another huge leap.
I like the idea! There's some IP webcam apps. For some simpler needs, there's the Guardian Project's Haven[1].
Alas though, you'll still be stuck with a device that only lasts 3 years before it's insecure. I'm in the minority, but personally I'd rather a more open ended & flexible system like Linux, with more small-pieces-loosely-coupled possibilities in front of me, where-as with Android I'm going to have 2 or 3 different apps with pretty fixed/limited capabilities that I'll never be able to improve or adjust.
In some ways, the web is kind of the possible remedy here. If the phone runs a webpage that accesses the camera & webrtc & does the things, that'd kind of be ideal, because it's insta-deployable to any vaguely general-purpose hardware. Developing the webrtc chops though to be able to make use of this well though, that's a totally separate conversation.
There are phones that do run things like postmarketOS which aims to maximize as much mainline linux as possible. Some well-supported devices are pretty cheap on the secondary market, and for this use-case, things like broken screen etc do not matter in the least.
You'd still have binary blobs of HAL for some peripherals but that's not different from raspberry pi.
Be careful with using (especially cheap) Android phones for 24/7 use-cases. The vast majority of them don't have power passthrough, meaning they will absolutely wreck the battery if left on a charger. I've had multiple swell up to the point of cracking the screen when I was using them for various IoT things (smart controllers, displays, cameras, trackers...).
My experience so far with every wifi ONVIF camera I have purchased (at least half a dozen different brands) has been absolutely terrible. Not sure if it's all related to the hardware or just FOSS software support somehow.
They seem to all use the same generic/white label Chinese firmware with barely anything changed about it. Their advertisements of "up to X viewers" really only ever means max of 1 or maybe 2 if you want a decent/max resolution or framerate.
The devices and their video streams are often quite unstable (needing a daily reboot or restart of the stream), jittery and not smooth.
The cost of the device does not seem to make a difference either, whether it's a $50 device or $300+.
Anyone have recommendations or tips on either better brands or maybe some idea of what I might possibly be doing wrong?
I can’t comment on max viewers per stream, as I only ever had 1 connection to the device and then used an FFMPEG/nginx-rtmp setup to replicate, but the reliability of Axis cameras was good in my experience. The price tags are a bit steep as they are really marketed at enterprise.
I tried Axis around 10 years ago, and yes it was very expensive, $300 for a tiny 802.11b/g-only device when N had already been around for a while was a hard pill to swallow, but I was assured by gstreamer devs that they do in fact use gstreamer itself, write their own firmware, and that they're supposed to be better than the Chinese stuff... however my own experience with them was just as bad if not worse... with all 3 units I purchased. Needless to say I have no desire to try them again.
I haven't tried a lot of wifi cameras, but I'm not surprised you're having trouble, particularly with multiple simultaneous streams talking directly to the camera.
* Wired should be much more successful. To be clear, wired cameras still have crap firmware [1] but you should be able to get a stable stream.
* If the camera must be wireless, try using an RTSP proxy server so that there's only one direct client. The proxy server can multiplex so you can have several things connecting to it, and ideally they go over the wired LAN. Even if they don't, the wifi hardware/software on anything that isn't a cheap camera is probably a lot more stable. Also, the RTSP implementation is probably a lot better at handling mixed network conditions. I've noticed several cameras' RTSP/TCP support (aka RTP over RTSP interleaved channels) will truncate RTSP data messages when the TCP send buffer fills, throwing off the framing. Nothing good happens after that. And UDP has its own problems (single lost packet => seconds of video questionable/useless, but still sent, and there's no real congestion handling unless they've done a miracle in application code with infrequent RTCP reports). Edit: also, some cameras have a particular bug [2] in which they will continue sending RTP-over-TCP data to a file descriptor after it's closed. The file descriptor is often reused while this is still happening, which causes all sorts of problems, not the least being sending sensitive data over an unauthenticated channel.
[1] In particular, I have very low expectations for their security. Poor software quality, backdoors. Firewall them so nothing can connect to them other than your proxy server / NVR and so that they can't connect out either.
Hanwha makes a ton of different makes and models, I highly recommend them. I tested several cameras to use them in a campus-wide AI project and Hanwha was always rock solid. We originally looked at Chinese cameras, but with security and international trade disruptions we needed better assurances that orders would get filled.
Yes that is what I am currently using. Every couple days the stream stops functioning and I have to reboot it. Stream playback with every conceivable FOSS video player I have tried is never 100% smooth and always has some kind of microstutter, regardless of the codec, resolution, framerate, bitrate, stream protocol etc. or number of viewers (and I have tried every combination of them all).
Wyze cameras are cheap and work pretty reliably for me. They don't support onvif. I'm sure it's because they want you to subscribe to their paid services that analyze the video feed.
I want the quality and cheapness and reliability of wyze with onvif.
I've been using an Amcrest AD410 doorbell camera with HomeKit Secure Video via Scrypted for about a month and I haven't had any trouble with it at all.
IP cameras need their WRT54G moment. It would be amazing to have an openwrt like project for them. The software is a complete mess full of bugs and security issues.
Yep... the only alternative I know is a raspberrypi zero with a motioneye os, but this makes a good camera software-wise but a shitty one regarding the sensor (high megapixel but shitty night quality) and a shitty one regarding accessories (waterproof casings, poe, ir lightning, microphones, speakers,...).
I think the PineCube by the Pine64 folks could be the WRT54G of IP cameras: interesting hardware, cheap and open, but it needs further development and is currently out of stock.
I have one sitting on my desk. I admire the idea, but the PineCube is crap in several ways:
* The sensor isn't that good to begin with. Too small.
* The SoC is iirc end-of-lifed by the manufacturer and limited in terms of H.264 encoding (low-res/low-fps), even with good drivers, which it doesn't have (yet?). No NPU for on-camera ML-based analytics.
* No real-time clock (although you could add one via I2C).
* I don't think they've gotten the community interest they were hoping for, probably in part because of the problems above (and, circularly, this is part of why the driver situation is not good).
* This is a dev board. It's not ruggedized. And given the above, I don't think a productionized version will happen.
I think you can get closer with a Pi Zero 2 W and HQ camera module, but I don't have any suggestions for ruggedization, autofocus, or toggling an IR cut filter, which are must-have properties for most applications.
My software https://monoclesecurity.com has all the features being asked for here and was open source for years but i couldn’t get any financial support. It’s probably a bit late now but if some particularly generous people came along I would open source it again.
The RasPi kinda is that, at least when they're in stock. There are several IP camera software loads for them, whether it's for local storage, or streaming over the network.
Also check that the camera doesn't rely upon a proprietary configuration tool, e.g. a Windows-only IE plugin, and that the camera doesn't need internet connectivity to function. Some cameras will stop streaming, even locally, if they can't hit the manufacturer's cloud-based platform.
My problem is that this protocol is only for video. These camera's are used for motion detection, and I know of no way of receiving that signal unless you mimick it by setting up your own software monitoring the stream 24/7. I think we can agree that this is a huge complication compared to installing 'the app'.
For the two way voice chat, alarm and in some cases flood light and pan/zoom controls there is no substitute at all.
Hmm, last i checked whatever Home Assistant comes with (and integration for some other tool) did not support that. Also, all the TPlink devices I have have their IP feeds capped at an hour, and there was no good way to reinit the stream. Maybe that's changed?
I have been setting up a low cost home IP camera solution recently as well. I have also found like others mention, although some of the hardware is OK, on the software side all IP cameras that I have looked at are garbage. hacky linux firmware, needing apps and cloud accounts to config, etc.
I also found zoneminder and shinobi not that great either, I've ended up with a "simpler" setup using the basic "motion" Linux motion detect program, and using Jellyfin to view the video files created.
So far the "least worst" of the low cost IP cameras I have tried have been TPLINK TAPO.. once they are configured for onvif and IP set by tying to mac address, they can be blocked from the internet access at the firewall and work fine standalone.
The only non-TPLINK app I have found that can work with the PTZ mode of the TAPO C210 is the proprietry ONVIER android app.
I use Reolink RLC-810 cameras for this purpose, seem to tick your boxes - on their own VLAN isolated away from everything, and I just pull in the streams via RTSP - firmware updates can be uploaded via the camera Web interface. I wouldn't call then "ruggedized", but I live on a fairly remote farm that definitely gets hit hard by the weather, and they have survived just fine.
That exists, but AFAIK the list drops down to nothing again if you add:
1. manufacturers don't actively support genocide (rules out anything involving Dahua, Hikvision, Huawei, as IPVM has described extensively), are allowed in the US (look up the Secure Equipment Act of 2021)
2. has a nice large sensor (the 1/1.8" models are great, but see point 1)
3. supports open source firmware (none of them do AFAIK)
4. reasonably affordable (surprisingly, this part is not the biggest problem)
5. nice-to-have: has an NPU for on-camera analytics (there are cameras with this but mostly from the genocidal manufacturers...)
edit: actually, some of these 6MP Hanwha cameras look promising. Several say they have 1/1.8" sensors. Not cheap though, and no eyeball/turret form factor.
Are there any hackers out there making custom ones? I was designing one recently and it ended up looking a lot like an Android phone in the end. Maybe a better 3d printed case and powered by PoE instead of battery.
I wonder how many security cameras run Linux and how many of them are actually GPL compliant, or at least possible to hack due to vulnerabilities in the ancient Linux and then update to a modern Linux distro.
Some alternatives are starting to appear, but this is an industry that moves really slow. Things only seem to happen when a new player disrupts the market and starts taking market share, as AXIS did with cheap IP cameras back in the day.