As someone who's been trying to whip up ZoneMinder into a marketable state for over a year now, I have to say it's not all it's made out to be. The capture daemons are brittle and crash frequently due to resource and memory leaks. When they exit abnormally, they always do so with the same code 255, and don't produce workable logs. Timestamps of " 1 january 1970" happen all the time, which mess up the timeline view of events. The web front end is arcane, spartan, and really time-intensive to learn. (E.g. clicking on a monitor's name does something different from clicking on its IP address, even though both screens go to a different subset of camera settings. The difference between a "modect with no zone" and a "monitor" is arbitrary. All the different camera "modes" are strange in my opinion. That there's ten different ways to view events is weird. And so on. It's not unlearnable, but it's far, far from usable.)
So instead of just whining, I patched a lot of these issues, along with adding some new cameras to the database and improving the translation for my native language. I sent the maintainer a pretty nice patch set, if I say so myself. Guess what? Absolute silence, never heard anything back. Which I could live with, if my patches at least showed up in the next release. But no new releases for over a year. So my patience with this project is pretty much over.