Forget about transcoding for a minute and think about a way to achieve all of your files being played back as a direct stream. This is what I achieve and I have 25 users across 3 servers and very rare do I see anything transcode. Why is this? File size and the clients the users are utilizing to watch movies and TV shows.
So here it goes… I encode all of my movies and TV shows to h.265. you would think, wait… You are going to have transcoding issues when you play the h.265 files. Nope… And I’ll tell you why. For one, a movie that is in h264 usually has to be played anywhere from 6 Mbps to 10 Mbps due to file size. Most users are achieving lower speeds because their client is connecting to a WiFi router on the other side of the house and through walls and they just don’t understand the concept that though they may have download speeds of 25 Mpbs or more, they have to share that not just with all working devices in their homes, but also if they have cable internet instead of FiOS or something like FiOs, those Mbps are not dedicated to their home, but actually split up between 9 other homes in their loop so during peak hours when they are home trying to access your Plex server and watch something that requires 8M bps, they cannot achieve it and therefore they are forced to usually transcode down to 720p at 4 Mbps/2 Mbps or even sometimes standard def. You can stop me if you don’t see this pattern… Then what happens? Your server gets bogged down but a bunch of transcodes? How do you solve this issue? Well it’s most likely not a client issue. Most everyone has the newer Rokus, Apple TVs, Fire Sticks, Xbox One, or PS4 that they use as their client to stream on Plex. The 2018+ versions of the non game console clients and the current generation of gaming consoles can all play h264 and h265 in almost any container as a direct stream without any need to transcode. If this is the case, why are users still transcoding? Most likely because of their available internet speed at the time of their stream. You also want to make sure you are allowing them to play the videos at maximum size so they aren’t forced to transcode even when they have the available speeds. You can find the settings on your Plex Server to allow maximum size for streaming when allowing remote streaming. This should allow for them to direct stream your files. However, in your Plex Server settings, you will also want to set a maximum for how many total Mbps that you allow your servers to take from your upload speed. My upload speed at home is 100 Mbps so I don’t allow over 75 Mbps of total streaming on my Plex server. Therefore if a user tries to stream and I’m already at the max of 75 Mbps upload to other streamers, it will not allow the new stream and therefore not interrupt other users streams and not force them to begin transcoding to make way for the additional stream.
Coupled with the users having the proper clients to stream from your Plex server, and you ensuring your settings are proper on your server to reduce transcoding, in addition you will need to train your users to play their streams at “original size” instead of their client defaulting to 4 Mbps no matter what, which is how some clients are defaulted to. You can help them change this setting so it never becomes an issue again and they can always direct stream from having “original size” selected. But what about the file sizes? Some of the movies are too large and even with original size selected, some of my users don’t have the bandwidth to play 8 Mbps at original size so they auto transcode down to 4 Mbps on their clients… Well here is the solution for that… Re-encode every single movie and TV show you own from h264 to h265. You will reduce almost every file by 50 to 75%. For example, if you have a movie that is 8 GB in size at h264, you can expect that it will be reduced anywhere between a 2 GB to 4 GB file when converted to h265. TV Shows should almost never be larger than 1 GB after being converted to h265. None of my users ever have to transcode the TV shows cause the files are so small so they have enough bandwidth no matter what and all 25 of my users have clients that can play h265 as direct streams so no transcodes there. Now, the movies… I found that even after re-encoding the movies to h265, I had a few users that still had trouble with streaming movies without transcoding because of their bandwidth was so crappy. And they started transcoding the h265 to h264 from 1080p to 720p and depending on which server I have, only 1 to 4 of those can happen at a time before my servers start the throw up. So, I created a solution for that as well. I have optimized every single movie in my library (which is 1080p h265) to 720p h264 as a secondary version. So now my library has two versions… 1080p h265 (which about 22 of my users can play as direct streams) and then I have the 720p h264 versions of the same exact movies for the three users that were forced to transcode. There is a setting in Plex that allows you to optimize your movies to whatever size you want. I let my server with the Xeon processor become the work horse for this. I had over 1,000 movies when I started the optimization and I selected the entire library and told the machine to optimize it all to 720p h264 all at once. So it took the machine about a week and a half to complete the task. Now everytime I add a movie to the library, the server automatically converts the movie to 720p h264 and places it on my 720p folder on my file server. I also trained those 3 users on how to select the 720p version instead of them still defaulting to the 1080p versions (which will happen sometimes).
I know the above sounds like a lot of work and it was, but all of my users are able to either direct stream or transcode without issue and I now perform very little work on my end as one server is dedicated to creating 720p h264 versions of movies after I use my encoding machine to make my 1080p h265 versions with is now a drag and drop process for me and set and forget.
Feel free to ask me any questions you may have, but if you are looking for a replacement server, I’d say go with a used TS440 with a Xeon processor or go on Amazon right now and get a new Dell T30 Server for about $370 which has an even newer Xeon Processor.