I've used Plex before, and while it is fancy and has a nice user experience for it's use cases, I've found it somewhat limited.
It is fundamentally locked into itself. You need to either have a device which can run the web client, or a Plex app for the platform. And that works fine if you're doing this just for yourself (I've run a Plex server in the past).
But sharing media is painful (or at least, more painful than simply sending a link to someone), and the overhead of compatibility was always annoying. Additionally, if you don't like the way the Plex app works on your device, tough, that's the only UI there is. However, there are a tremendous number of apps and applications with UIs galore that all support HTTP streaming.
Now, the last time I fully investigated Plex was about a year ago, but since then I've used friends instances and it always seemed lackluster, or at least not as straightforward as bare-bones HTTP streaming.
On the other end of the flexibility + compatibility scale, if all you need is to watch The Wire on your iPhone/iPad/Apple TV v4 on the couch instead of at your computer, I've been using Infuse. Just turn on SMB on your computer and fave a few directories, then stream away. It'll even pull in metadata, cover art, descriptions and sort shows into seasons.
Alternative client/UI: check out PleXBMC, you can use any theme you like. That said, plex media player will provide a superior experience as it's using mpv.
I tried to find a link that would point to a definitive answer for you on this one, but I couldn't (well, short of the one in my media server). The best I could do was refer to the settings in my own player and my own experience. If the video requires transcoding, either due to network conditions or player capabilities, it can transcode up to 1080p at 20Mbps. If the video can be played directly by the player, it can support up to 4K in an MP4 file container encoded h.265 (all other 4K video is currently transcoded down to 1080p). Of course, this assumes that the server you're running it on can handle transcoding the file. It's pretty common for folks to setup Plex servers on an RPi or NAS device that's ARM based and those are rarely capable of re-encoding the video. I run on a dedicated Core i5 small form-factor box with 8GB of memory and I've successfully transcoded 4 streams for play-back without issues.
The transcoder is pretty intelligent. It starts up full-power until it reaches a comfortable buffer and then dials back to an acceptable framerate to maintain stable playback while not melting the CPU. It only transcodes what it must in order to get the video to play on a device. My Roku, for instance, can handle H.264 encoded video and AAC/AC3 audio, but it won't play them back if they're stored in a Matroska (MKV) container, so the transcoder leaves the video/audio streams alone and just converts the container format to MP4 for playback. On my TVs that aren't hooked up to 7.1 systems, it transcodes only the audio. I have a small handful of files that are HEVC encoded and have nothing that supports that, so the entire video/audio file is transcoded in those cases, but to my wife and family who enjoy Plex, they don't have to think about it. I can tell when it's transcoding vs. playing directly because it'll stick at 33% for a second instead of just playing the video instantly, but they're used to Netflix/Hulu/Amazon which all have mild buffering before playback so they have no idea that something's going on in the background to deliver their video.
It's a good solution as far as I'm concerned. At the end of the day, all of my videos play and they're a pretty good variety of .avi (with a mix of video/audio codecs), MKV/MP4 (almost all H.264/5) and a few one-offs (I haven't tried playing a few .asf files I have lying around but I wouldn't be terribly surprised if they worked -- it uses FFMPEG to do the transcoding so depending on how they compiled it, if FFMPEG handles it, I'd imagine Plex would, too).
I believe re-encoding is limited to 720p. You can still stream the source file. Although, if you have bizarre alien source files, re-encoding is necessary.
I run it on an Nvidia Shield, it will transcode multiple streams on that and handles pretty much everything I've thrown at it so far.