@jonny80 said:
I’d like to customize encoder settings completely (I guess the settings for the included profiles ‘Optimized for Mobile - 1.5 Mbps 720p’ and ‘Optimized for TV - 4 Mbps 1080p’ aren’t hard-coded? I would be happy to edit/add my profiles manually by editing config files…)
Other wishes:
- possible to set what type of audio encoding and bitrate I want
- include all subtitles as-is (use .mkv instead of .mp4, use Direct Stream instead of Direct Play, for me Direct Play is useless since all my movies contain multiple audio streams, no need to send more than one audio stream and subtitle to a client at once), and most important: don’t ever burn-in subtitles!
- when multiple versions exists, Direct Stream should be able to select video/audio/subtitles from all the different versions - there’s no need to include same audio encoding in 5 different versions…
We really don’t want to have to edit any configuration files, as the next update of PMS gets installed and we would have to re-edit the files to get those options back. Having the settings available within the Web App is paramount to being able to use the options of this feature.
The whole idea behind this feature is to create a version of the file that is the most Direct Playable for the bitrates requested from the client. Direct Play is the least CPU intensive of the three ways we can send a media stream out, and if the media is Direct Playable, there really are few bottlenecks on PMS machines to limit how many streams it’s capable of doing. The biggest real bottleneck is your internet connection’s upload speed. If you have the bandwidth to support 50 streams, then even the smallest device PMS can be installed on could, potentially support 50 streams, if the media is optimized for the requests, and the bitrates requested.
On the other hand, if the media is sent Direct Stream or Transcode, the first bottleneck now is the CPU of the PMS device and not the internet connection. 50 requests, without the CPU being able to handle those requests and they are all going to buffer. No one gets to watch the movie, so no one is happy. So, for this feature Optimize Media = Direct Play Media. Direct Stream isn’t optimized, and transcode is certainly not optimized…
How many of the languages that you have in your media are actually USED? Let’s say you have 10 different languages, are the ones used mostly English? Spanish? French? And the rest are never played? Remember, we said optimizing the media is making it the most Direct Playable format possible… Are you going to need that movie in Swahili? Would any of your users ever WANT that language streaming on their devices? If it’s never requested, why would you want it in an Optimized Version? If someone does request it, there is a prime example of when to transcode, if it’s a one-off or one in 10,000 requests made of your server.
I agree about never burning in subtitles. I have ONLY srt’s for that very reason. Most client apps for most devices don’t require transcoding the video stream to give the client srt subtitles. But I don’t want them in the media file, since MP4’s can’t handle them in the container. I don’t have any other files in any of my Plex Libraries, other than MP4’s and srt’s. The rest of the containers require too much transcoding for my environment, so my system wouldn’t be optimized for Direct Play if I included them, so I don’t include them, I delete them when I get the portions I want from them.
I don’t think Plex is going to be able to pick and choose where parts of the stream comes from. It’s all in the file it has open or it’s not. If we did it your way, and I made a request, you made a request, and 4 others made requests, that’s, what, 18 files it’s trying to remember where it’s getting what portion of whichever media it’s sending? And where it is in putting all of the 18 files into 6 streams? WHY? That’s not optimizing anything, that’s complicating an already complex situation to the absurd. If the media is optimized that would be 6 streams, basically copying the file through the network, simple, no hassles, no frills, and everyone gets the media with no buffering. Toot sweet! Optimized.
What this request is all about is making the transcode settings used to make the Optimized Versions more transparent to the users. We can set the Optimized versions to the quality and bitrate requirements our users request and produce the highest quality stream we can within the limits established. Easy to say, but maybe not so easy to do, as the settings currently used are basically the same as a standard transcode. That means it’s possible that Plex has modified the transcoder engine from ffmpeg to only produce results that it’s producing now. Needless to say, that would be less than ideal…