It would be awesome if PMS had server sided transcode cache. It could work like this:
If video or music is transcoded once, it caches it to a cache folder on the PMS server
If it's watched again on a device that calls for that same format, it pulls from cache instead of transcoding again
User should be able to turn this feature on or off
The cache should be stored separately from the original files
The user should have an option to set the amount of cache
The user should have an option to clear the cache or delete individual cache files associated with a certain video or music file
Cache files should be able to be set for automatic deletion after a set time of inactivity
This feature would save CPU cycles but use more storage, but the user would have full control over the storage the cache uses. It could potentially allow more simultaneous streams on a lower grade system, especially when caching popular files (i.e. a new movies that's watched several times in a couple days.)
If you are considering this as part of your PlexCloud project, then I would recommend you might find it easier to implement outside of Plex. For example, on upload have the file converted into the 3 most common formats (or the 2 that are missing/below the source quality). The most common formats being 480p, 720p and 1080p.
Well, as I already pointed out in the linked post above, PMS may transcode a file @ 480p with AAC audio for one device, 480p with AC3 2.0 for another and 720p with AC3 5.1 for another, etc., etc. Before you know it, there are a half dozen versions of the same title.
Next, keep in mind that Plex transcodes segments for streaming in HLS, not entire movies, so the cache in your plan would have zillions of files...
Then, there is the issue of partially watched movies -- which, at one point at least, I noticed Plex retaining in the temp folder for transcodes (i.e., your cache). Should Plex keep transcoding segments even after the movie is paused or stopped? Then the PMS would be tied up transcoding segments for nobody, perhaps limiting its ability to provide live streaming for active viewers.
Finally, as some users have suggested, creating options for administrating all the possibilities necessary to pursue this would result in a support nightmare. People have more than enough on their hands right now configuring MyPlex port mapping for remote access, which is one of its core features.
I'm not trying to dash your plans, but I am pointing out how they might mangle the Plex experience for less sophisticated users...
In my case most of my devices are apple, 5 iPads, and 5 iPhones, and then I have 1 Roku. My kids most often watch the same movies but at different times. I'm sure that's not typical for everyone else as there's a ton of supported plex clients...oh well.
Partially watched movies? Good point. There's also movies that may be completely watched, but several times it was scrubbed backwards or forwards, which my kids do often as well as being paused.
This just shows it was a suggestion from a user of plex, not a dev that understands the ins and outs of how it works.
So now we go back and mention pre-transcoding all files prior to streaming which still doesn't make sense because storage requirements would go through the roof, thus would not be desired by most users. Not to mention when a file is uploaded, it would be very busy for a long time, and you couldn't watch anything until it was finished.
With all that said... I like Plex EXACTLY the way it is, as far as transcoding is concerned. :-)