[Feature Request] Stop transcoding from 4k version when alternative versions exist

The 4k resolution is going to become more common but most servers will struggle to transcode from 4k to lower resolutions.

If the server has more than one version of the same movie/tv show the owner of the server should be able to set PMS to ignore the 4k version and only transcode from the lower version.

Jaws x265 4k
Jaws x264 1080p

In the above example, if a client needs a 720p stream then PMS should ignore the 4k version and transcode from the 1080p version

Logical, should be this by default

+1 should intelligently pick from the available sources.

@JBowdach said:
+1 should intelligently pick from the available sources.

Yes good point, the server should be able to judge it’s transcoding capacity and select the appropriate source

Yes, do not transcode from 4k to lower resolutions if a optimized 1080p version exists, it puts too much pressure on the CPU. Also, the client should automatically select the version suited for it i.e. a FHD TV should not try to play the 4k version.

if that is the way you have your media labeled its not in accordance to plex guidelines…

if you have multiple versions of the same title… if appropriately named… will be grouped automatically under one poster. You can either manually separate them… or use the ā€˜play version’ feature of the client and select the bitrate / size version of the movie you want to play.

@dragonmel said:
if that is the way you have your media labeled its not in accordance to plex guidelines…

if you have multiple versions of the same title… if appropriately named… will be grouped automatically under one poster. You can either manually separate them… or use the ā€˜play version’ feature of the client and select the bitrate / size version of the movie you want to play.

The naming was just to illustrate the problem, I don’t have my files named in that way.

PMS should not allow a client that needs a 720p version to transcode from a 4k source when a 1080p source exists. The user of the 720p client should not have the option of which file is used for the transcode source, this should either sit with the owner of the server or be based on logic built into PMS based on the capacity/power of the server

1 Like

@loz5678

you can keep 4k files from being shared.

place all your 4k content in a separate directory.

create a 4k movie library and not share it.

remove the path from the library you do share…

done

@dragonmel said:
@loz5678

you can keep 4k files from being shared.

place all your 4k content in a separate directory.

create a 4k movie library and not share it.

remove the path from the library you do share…

done

Hi, thanks for the suggestion. I already do this but it isn’t a proper solution. It stops external users from seeing the 4k files, but on my own devices I still need to avoid 4k on non-4k clients. Plex really should be able to create a proper solution rather than rely on work arounds

again… plex gives you several ways to accomplish this

it gives each user the ability to choose which file to play in the first place…

if your users are not bright enough to figure out the should not play a 4k file on an iPhone… it permits the server admin to segregate files into separate libraries that are not shared to those users…

in stead you want them do program some artificial intelligence that is supposed to read your mind on which quality file you want played and will likely end badly for the user experience as plex has enough trouble making the basic functions work correctly…

moreover… its been said here many times… plex IS NOT READY for 4k… still way too many issues and way too few users so its not a high priority for plex

Thanks for your comments dragonmel

What about setting an option in the clients to do this? So you can select the ā€œpreferredā€ resolution based on your client limitations. If that version exists, the streaming will be done using that version. Otherwise, the current logic will be applied. This will give you the flexibility, without having to do a manual selection every time and without having to implement a complex logic behind it.

@Elinombrable said:
So you can select the ā€œpreferredā€ resolution based on your client limitations. If that version exists, the streaming will be done using that version. Otherwise, the current logic will be applied.

Unfortunately the current logic is flawed though. PMS would attempt to transcode the 4k file. In my opinion, no client that cannot direct stream the 4k files video should be able initiate transcoding from the 4k version. Instead, PMS should automatically ignore the 4k version and use the lower resolution file.

@loz5678 said:

@Elinombrable said:
So you can select the ā€œpreferredā€ resolution based on your client limitations. If that version exists, the streaming will be done using that version. Otherwise, the current logic will be applied.

Unfortunately the current logic is flawed though. PMS would attempt to transcode the 4k file. In my opinion, no client that cannot direct stream the 4k files video should be able initiate transcoding from the 4k version. Instead, PMS should automatically ignore the 4k version and use the lower resolution file.

Yes, that would be the best option but still, if your clientes are smart enough, they can just set it from the client itself and problem solved. Its not perfect because it still relies on the end user but it works and should be easy to implement until a better solution is there.

@dragonmel said:
if your users are not bright enough to figure out the should not play a 4k file on an iPhone… it permits the server admin to segregate files into separate libraries that are not shared to those users…

So you expect every user to always have to check what version they are playing or even if there are multiple versions of a file? End users don’t know or care about the server or the fact it’s chewing through CPU on the backend converting things. All they know is that the movie is or isn’t playing on their side.

in stead you want them do program some artificial intelligence that is supposed to read your mind on which quality file you want played and will likely end badly for the user experience as plex has enough trouble making the basic functions work correctly…
This isn’t anywhere near AI. This is a rather simple check of a couple of things and nothing more. This goes for the client and also the server when it has to transcode. The server is just a guilty of picking the wrong file to use when transcoding is needed.

moreover… its been said here many times… plex IS NOT READY for 4k… still way too many issues and way too few users so its not a high priority for plex
Yes, it needs work in a lot of areas before you would want to have both a 1080 and 4K version in the same directory/library. For now it’s best to keep the content in a different library that you can control sharing.

Maybe now with the idea of collections Plex can tap that UI to also work with multiple versions to make them more obvious. But even with this there will still be issues.

@cayars

yes… I expect that the people in my family will use it properly… the people here that share their servers with the masses… on top of being highly illegal … should be smart enough admins to not even make those files available…

if plex turned around and forced the server to start transcoding already transcoded content. (which by the way will look worse) … then all of those folks would complain that they wanted the server to transcode the master content so the quality was better… so here we are asking plex to fix something that is not broken if used correctly by the 99% of people here with an IQ about 80… to cater to people who have friends dumb enough to request a 4k file over cellular… brilliant…

way to go @cayers . showing off your true brilliance yet again… oh … and your suggestion that we can use collections… yeah… that feature is working real great too… half my movies that are in ā€˜collections’ should not even be in collections as they are one-offs…

I have all my master content (blu ray and dvd MKV from my original disks) in separate libraries that only get made available to clients hooked up to TVs… problem solved…

plex needs to fix a laundry list of REAL problems before catering to stuff like this…

This is a real problem, that said I’m not suggesting it’s ultra urgent and I’m sure there are more pressing issues than this. Thanks for your comments on this issue dragonmel, maybe leave it now though as I don’t think we’re making any progress on the topic

@dragonmel said:
@cayars

yes… I expect that the people in my family will use it properly… the people here that share their servers with the masses… on top of being highly illegal … should be smart enough admins to not even make those files available…

The issue many have is there is no easy way to know what is 4K and what isn’t. This is a display issue. If you have 1000 movies and 50 4K movies do you really think your family is going to check every movie to see if there are multiple versions? Or do you think they will just hit play? Then due to the way Plex works, it will play the ā€œoriginalā€ version which is the version it found first or will transcode from it.

if plex turned around and forced the server to start transcoding already transcoded content. (which by the way will look worse) … then all of those folks would complain that they wanted the server to transcode the master content so the quality was better… so here we are asking plex to fix something that is not broken if used correctly by the 99% of people here with an IQ about 80… to cater to people who have friends dumb enough to request a 4k file over cellular… brilliant…

Well you are showing your ignorance here. First Plex will transcode from the ā€œoriginalā€ which is the first it added. So if you had a 720p, 1080p and 4K loaded in that order then when transcoding is needed it will use the 720p version. This is what I referred to when I said there is work to be done on the backend. If you don’t believe me then setup a movie like this. Try it then go look at your logs.

If you want the 4K version to be the ā€œoriginalā€ you need to add the 4K content. Scan the library and then when finished go back and add the 2nd version. However unlike your thinking I would do the opposite and make sure the 1080 version is first and the 4K is 2nd. I don’t want it to transcode from 4K but from 1080p [ because I KNOW it will look better.

What you fail to realize is that when Plex has to transcode in real-time it is no where near optimized as it would be if you did the conversion offline. If the 4K file is HDR such as HDR10 or Dolby Vision you have additional problems as the transcoded files will be washed out color wise as Plex doesn’t tone map the colors during the transcode.

So yes, I would do a 1080p conversion offline from the 4K HDR media getting the color mapping correct, getting the file into H.264 and it will beat the 4K transcode every single time!

So in my world if a user needs 720p/3Mb it will use my H.264 1080p file as the source and for you it would use your 4K HDR file. The 720p version served up from my system will look better then from your server every time.

way to go @cayers . showing off your true brilliance yet again… oh … and your suggestion that we can use collections… yeah… that feature is working real great too… half my movies that are in ā€˜collections’ should not even be in collections as they are one-offs…

I didn’t say they need to present or use collections. I said it’s one way they could do it. They could also recognize 4K files and allow you to share these or not separate from other library items. They could also always simply prompt the user when multiple files are available and let the user choose (based on access). Can’t get simpler than that. However what a collection like view could do for example when loading Avatar on my system is show:
MVC Avatar
3D Avatar
1080 Avatar
4K Avatar
Again depending on privs the user could then pick the version to play.

If collections aren’t working for you then you need to do what many of us have done and clean them up manually to get the ball rolling. For many people it might be easier to remove all tags (mass edit) then create your own tags as needed when you add media.

I have all my master content (blu ray and dvd MKV from my original disks) in separate libraries that only get made available to clients hooked up to TVs… problem solved…
I do the same in Plex as well because there is no easy way to do this in the system. In Emby I do have all versions present as one library item as it prompts the user which to play (simple). It’s also smart enough to use the 1080 (not 4K) version if transcoding is needed or to use the proper 3D version if that’s what the user chose to play.

With Plex currently if you stack a normal version and a 3D version the first file is the ā€œoriginalā€ and will be used for transcoding which is faulty as hell.

plex needs to fix a laundry list of REAL problems before catering to stuff like this…
We agree on this!

1 Like

@cayers

all of these ā€˜issues’ that you bring up are never going to get fixed… one… because the plex teams programming skills with databases is non existent… its like watching hellen keller juggle chainsaws… and they have worked their way into a very inefficient database structure that frankly will never have the smart capabilities that it should

the ONLY way to work around all this is to have you content separated out into separate libraries… because you can have the same item in multiple libraries and they have their own database entry… not only that but again because plex does not understand databases… if you pull up a movie in one library and look at an actor… it will only see other movies that actor is in … in that library… not the others… completely stovepiped. the only way movies get ā€˜stacked’ where you can use the ā€˜play version’ is when the multiple versions are in the same library… not necessarily in the same folder that does not matter… in the same library. conversely… in order to be able to present and or segregate the 4k from the 1080… they do have to be in separate folder structures not in the same folder … so that you can point the libraries at different paths…

again only presenting libraries with contented sized/bitrated that you server can handle/transcode to remote users is the only way… and again… I really don’t see them going back to the board and re-doing their database structure from scratch… so learn to live with it…

I don’t hold high hopes to see this working any time soon for sure. There probably just aren’t enough people in their eyes wanting this to warrant it. But us users obviously see the need for it and it’s growing every day with more H.265 media available.

I’m a fan of the way Emby handles this where I can have everything (3D, 1080/720, 4K) all linked to the same library ID with a choice given at playback and with transcoding always using the best version (and appropriate type).

BTW, we didn’t even touch on 10 bit or 12 bit handling of GPU/HW transcoding (or lack of) either. LOL

Carlo

1 Like