Well, that problem isn't that easy or at least the result of it should be taken with a grain of salt. But first, something that can do a health check on your files.
There is an application called Tdarr which is an App that can run files through a processing pipeline to do "stuff" with them. Those pipelines consist of Plugins that can, for example, extract subtitles, transcode video/audio tracks and basically anything you want that Handbrake/FFmpeg can do.
You can use that to hook into your libraries to run against. Tdarr also provides a Healthcheck feature which basically is a transcode of the video without actually replacing the file.
If there is an issue with the file like corruption then the health check would fail and you would get an error in the UI.
However, this will only find issues on a frame-by-frame or overall file integrity level. That might be enough for you but I think it is still important to know. Some containers are differently constructed which can impact how the health check would behave.
I am not quite sure if it was MKV or MP4 but one of them had the headers at the end of the file which means that if something happened to the file and "cut short" the file itself was inaccessible and players would error out before even playing it. The other container, on the other hand, had the headers at the beginning of the file which made it completely fine to play until it stopped.
With this comparison, Tdarr would consider the one file as "corrupt" and error out while the health check for the other would work just fine.
Not looking to identify media that is direct play vs transcode, but media that simply doesn’t work.
just a note for this, since Plex relies on the client to provide compatibility, this wouldn't be that easy to replicate or "check" from an outside system. You would need to configure the "checker" with the ramifications of the client you want to check for compatibility but then you would already know what is playable or not.