Plex’s transcoder is a highly customized version of FFMPEG which has been accumulating bugfixes and features since it was forked back in 2012. With such a large number of differences, upgrading from the upstream repository became increasingly more difficult and took up more and more time. We decided it was time to clear out the bloat and start over, creating a brand new fork from ffmpeg 6.1 and only bringing over features necessary for the function of Plex Media Server. Additional work was done to make upgrading a much smoother process in the future.
While we are confident most bugs were fixed upstream, it’s possible some slipped through the cracks. That’s where you guys come in!
Known Issues:
On screen duration is updated during playback of certain files (PM-3653)
Live tv fails to transcode when transcoding to hevc (PM-3757)
Live tv fails to transcode when the stream incluses ASTC A53 CC subtitles (PM-3775)
framedrop bitstream filter not found (PM-3777)
DOVI profile 8 Tone mapping produces flashes of color on MACOS (PM-3816)
Transcoding using an intel gpu on windows can result in unexpected behavior (server crash, sw decoing, ect)
Some live tv video streams were generating errors
How it Works:
While this build does not have any new features, we have noticed performance boosts in certain scenarios as well as the previously mentioned bug fixes. The best way to help us test this upgrade is to install this forum preview build and then use plex as you normally would. While any issues you encounter are of interest we are primarily interested in achieving parity with the current version of the transcoder. Whenever possible please validate that any issue you encounter is not also an issue in the public or beta versions of PMS.
Before you proceed:
The server builds listed below are pre-alpha releases and have not been fully tested so we always advise caution. Make sure you have recent database backups and preferably run these builds independently from your main media server if possible and create new libraries to test pre-release software.
With that out the way…
Downloads (Updated 2025/08/13)
Docker
For instructions on how to install preview builds in our docker container please see HERE
This article was reading so well, until I got to your comment and now it’s far less exciting…
Especially if they’re literally starting from scratch and re-forking… It really doesn’t make much sense to start from scratch with an already out-dated version…
With starting from scratch it was more important to have a stable base from which to start than to get all the shiny new features. At the time this work was started 7.1 was still very much in active development, and to some extent that is still the case. I believe it is unfair to say that 6.1 is 2 years old as it is still getting bugfixes as little as 2 weeks ago. The changelog was also examined and the small number of features of 7.x we were interested in were easily backported. As @ChuckPa pointed out part of the work done was to ensure that future updates are measured in weeks instead of months which should lead to more frequent updates.
Just how much of the ffmpeg codebase is changed in your fork? It seems to me duplicating work, backporting changes and the like is a lot of work that could also be achieved with a simple wrapper, which would also means issues like GPL compliance and rolling updates would be a lot easier (as you just compile your shipped version from source, or link to a system-provided binary).
I believe ffmpeg 7.1 provides full Dolby Vision support, which is one of the main things missing from Plex transcoding right now.
Dolby Vision is a proprietary codec that requires a license to use legally. If Plex used the implementation in ffmpeg 7.1, they’d get the pants sued off them. Until such a time that Plex manages to license Dolby Vision decoding and encoding from Dolby, they will not be able to support it. Even then, they would need to follow Dolby’s specification and implementation guide, and pass their auditing, as they did with TrueHD and Dolby Digital Plus. They wouldn’t be able to use what’s in ffmpeg.
Dave is 100% correct. It is unlikely we will have DOVI support for anything except direct play until the patents expire. One of the biggest changes in our fork is the ability to compile codecs into shared libraries which can be delivered on demand. This allows us to track and serve up the licensed codecs as needed to keep licensing fees from skyrocketing. This cannot be achieved via a wrapper and is very unlikely to be accepted upstream. There are also changes that were needed in order to comply with our licensing agreement with dolby which have similar issues.
It seems to me that support for loading codecs at runtime (rather than building them into the binary at compile time), and having a standardized plugin architecture to build them off of, would be something the developers of ffmpeg would like to have. Have you tried suggesting a pull request to the ffmpeg group to introduce this kind of functionality?
In regard to this forum preview, is this ffmpeg upgrade limited to the transcoder or is it system wide ?
One example for asking is that plex coded around bugs with the older version of ffmpeg related to extracting embedded ID3v2.4 tags from mp3’s files. So if this preview does anything which could impact this then I’d take a look.
@Anaerin this functionality was implemented before my time and the developer who added it is no longer with the company but i was told by others it was submitted years ago and rejected.
Hey @chris_decker08, awesome work here, excited to try it out when I get back home at the end of the weekend!
Curious if yadif2x or hardware accelerated deinterlacing (yadif_videotoolbox in my case) is included or is planning to be included?
Unfortunately the new app force transcodes live tv meaning any interlaced content (All OTA channels in Aus) get deinterlaced to 25fps and it looks very bad. Would be awesome to have it deinterlace to 50fps on the new app.
Even if the new app were to direct play and deinterlace (I think was planned at one point), having ‘proper’ deinterlacing would be good for situations where you need to lower the bitrate in remote situations and still have 50fps.
One of the things that this update will enable in the future is more hw capabilities on mac. It sounds like i will need to work with the player team to get interlacing correct when that happens.
Is there a thread in which you don’t bully other users if they dare to say something you don’t agree with? Please tell us about your viewpoint rather than telling people how they are somehow wrong, Mr. Kent.
I am glad this is a project that is on its way now… thank you for that. I understand the reasons given for not using the latest version. Stability should be always top priority. I am looking forward to see this project evolve into beta and production releases, finally. Again, thank for for being transparent here.
Right out the gate with this update, LiveTV now works on the tvOS beta 2025.19 with 1080i content, something that has been non functional since the new experience beta launched on tvOS.