Windows wise, popular ones are
Blue Iris, Milestone, and I've talked to a number of users working with Exacq (Exacq also works on Linux).
Linux wise (most of my work+personal time these days is Linux focused, so this is where the brunt of my experience lies), the big ones I've used were Motion, ZoneMinder, and Bluecherry.
Motion = Free, open source, already in most repos. Daemon-based utility, no GUI, all config file based. This has some massive advantages as you can back up your entire CCTV system (as far as your settings anyway) in a matter of 10 KB worth of .conf files. Kind of awesome. Downsides, no GUI, MJPG only (though I heard talk of RTSP support on a certain branch of motion on the mailing list not too long ago), and given the name is Motion you can probably guess their focus is... motion detection. Being a fan of full time recording, this wasn't my cup of tea, but I still used Motion for years and loved it. I did a two part YouTube tutorial on it (
link here to part 1). No mobile client, though you can interface something like TinyCam with it, as Motion does have support to act as a web server.
ZoneMinder = Free, open source, already in most repos but not sure if most repos have the latest build. ZM is a bit intense to set up, requires a decent amount of command line knowledge, database setup, etc etc. It requires a bit of fine tuning without a doubt, but some users dig it. I eventually stopped using ZM after my cameras would just kind of... stop recording. I've heard some folks overcoming this, but I didn't dive in too deep. ZM relies on the web UI for use, which can be a hassle with Chrome (hardlocked number of threads/feeds), but Firefox is a bit better. Personally, web UI's with video surveillance have yet to impress me, and I even have pretty low standards. That said, with it being web based, your feeds/events/settings/etc are accessible from pretty much any device, so there's that.
Bluecherry = Licensed software, but with an open source cross-platform client (Windows, Mac, Linux) with the server portion being Linux based, along with access to a basic web interface. The client is the meat of the software, which is where you pull up past events, set up cameras, manage settings, set up the live view, etc -- no need RDP/VNC/etc into the box. Very simple to install, very quick to set up, and have had no major issues to report after a year of using it. The support team is great and the software itself runs very light on my far-from-new home server. No mobile client yet, but like Motion you can leverage TinyCam to interface with it for live feeds. I also did a lengthy overview of Bluecherry,
found here.
You mentioned sending the events to a NAS. Can I ask why? You should be able to accomplish this in most situations, such as creating an NFS or SMB link between your PCNVR and NAS, but why not leverage storage built into whatever your recording device is? Also keep in mind, most PCNVR solutions have built in features to auto-purge files after the disk hits 90-95%ish full. Unless you have some sort of quotas or partitions set up on the NAS to house the recordings, I would suspect the PCNVR would continue to hammer the NAS with more and more feeds until it maxes.
On the other hand, you should be able to utilize built-in storage to the PCNVR, and just share that directory out via Samba/SMB (which would allow Win/Mac/Linux clients to access). Typically you wouldn't want/need to interface with the raw footage though, as most folks opt to let the management features of their PCNVR handle that, but without knowing more about your particular scenario I figured I'd mention it as an idea.