I suppose you won’t find a general description that fits all. What you’re looking for highly depends on your particular client and its capabilities (or how it let’s Plex know of its capabilities).
drivers usually are the combination of:
container format (mkv, mp4…)
video codec and average/max bitrate
audio codec, number of channels and average/max bitrate
subtitle codecs
(and of course network bandwidth; to some degree)
For the majority of clients you should be good with mp4 containers and h.264 encoded videos, AC3 audio – bitrates already get tricky. As you already pointed out… subtitles tend to make things more tricky – general rule of thumb: SRT subtitles (text) should be more widely supported than VOBSUB/PGS subtitles (images).
However… what works brilliant for one client might not work at all with another client…
don’t… at least not as a general rule.
check what works for your client.
giving you some context:
I keep my blu-ray content in MKV with the original codecs and full bitrate. My main client is my tv and it can deal with that quality – so why compromise.
If you’re keen on having your content also available on-the-go… look into optimized versions instead.
Well I just tried on 2 clients (Xbox 1S) and a fire TV (not the stick the TV) both hard wired and set to direct play… To run a 4k mkv no subtitles with the lowest sound (5.1 I think). And it was a buffer fest/unwatchable. I am going to go try on the roku right now.
Okay can play on roku (the new fancy hard wired one), but only because it has an option to “force direct play”.
I have found that with a TV client like LG mkv files are king, 98% of my library. Audio can be the issue, if not configuring your app/player in settings to the devices capability. So my conclusion is similar to Tom’s with some regret to 4K files, It’s best to be in a mpg container for 4k titles.
You can’t really blanket all devices equal but after saying that mp4 with AAC or AC3. Forget 4k for now, that is what i would do if your sharing your library with a varied device group. Then again you could if prepared to do a multi Library of different formats. Example: mkv with ac3 and mp4 with AAC audio. But if you entertain 4K stay with Mp4 containers in a separate Library. This way a friend can select a option that does not buffer