We’ve been working on improving the logic for how Plex Media Server burns in subtitles when hardware transcoding in order to achieve a significant performance boost (especially for low powered CPUs) and we’re looking for additional testing and feedback.
Nvidia and Intel devices have been improved on Windows systems and Nvidia, Intel, and AMD (assuming no ToneMapping is required) devices have been improved on Linux based systems.
Assuming no significant issues are discovered this thread will be closed on August 12th and we’ll proceed with the release process to include the improvements in 1.41.0.
We will be updating the download links below as new builds are issued.
Finally, please provide feedback by directly replying to this thread, and exclusively about these changes, off topic posts will be silently removed.
So just to confirm, there should be performance improvements for subtitle burn-in, for every scenario on Linux running on Intel, unless it’s a tone-mapped transcode?
@JoshUK Unless issues are discovered this is the final iteration for now. If additional functionality is added to ffmpeg upstream we will add it to PMS at that point.
@DaveBinM The tone mapping comment is only relevant to AMD devices because we do not support HW tone mapping on AMD at this time which prevents us from taking full advantage of these changes.
@tissaka31 We do not officially support test builds on docker at this time. This is because our docker images pull from the official update channels (Public, Beta, ect). While you won’t be able to help test, you can take advantage of the functionality when it hits the beta channel (hopefully in ~2 weeks assuming no major issues are found)
Awesome, this is a massive performance increase and I am going to ask my friends to try subtitles out again! They are used to knocking quality down to potato levels if they REALLY must have subs.
I will report back should I find any issues OR if I find that none of my friends are reporting issues/Im seeing any.
Blu-ray rip of Gravity (1080p), but it seems like it happens with any video I’ve tried with PGS subs on Windows+Nvidia. I can confirm that HW transcoding is enabled during playback.
General
Unique ID : 4191508429996900539771062350046223428 (0x3274152263603F85250AD27883ADC44)
Complete name : D:\plex\test content\1080p_sdr_sample.mkv
Format : Matroska
Format version : Version 4
File size : 868 MiB
Duration : 5 min 0 s
Overall bit rate mode : Variable
Overall bit rate : 24.3 Mb/s
Frame rate : 23.976 FPS
Movie name : Gravity Diamond Luxe Edition
Encoded date : 2022-12-30 22:16:43 UTC
Writing application : mkvmerge v72.0.0 ('Minuano (Six-eight)') 64-bit
Writing library : libebml v1.4.4 + libmatroska v1.7.1
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings : CABAC / 2 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 2 frames
Format settings, Slice count : 4 slices per frame
Codec ID : V_MPEG4/ISO/AVC
Duration : 5 min 0 s
Bit rate mode : Variable
Bit rate : 20.0 Mb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.403
Time code of first frame : 00:59:58:00
Stream size : 716 MiB (83%)
Language : English
Default : Yes
Forced : No
Audio #1
ID : 2
Format : MLP FBA 16-ch
Format/Info : Meridian Lossless Packing FBA with 16-channel presentation
Commercial name : Dolby TrueHD with Dolby Atmos
Codec ID : A_TRUEHD
Duration : 5 min 0 s
Bit rate mode : Variable
Bit rate : 2 891 kb/s
Maximum bit rate : 8 823 kb/s
Channel(s) : 8 channels
Channel layout : L R C LFE Ls Rs Lb Rb
Sampling rate : 48.0 kHz
Frame rate : 1 200.000 FPS (40 SPF)
Compression mode : Lossless
Stream size : 103 MiB (12%)
Title : TrueHD Atmos 7.1
Language : English
Default : Yes
Forced : No
Number of dynamic objects : 11
Bed channel count : 1 channel
Bed channel configuration : LFE
Audio #2
ID : 3
Format : AC-3
Format/Info : Audio Coding 3
Commercial name : Dolby Digital
Format settings : Dolby Surround EX
Codec ID : A_AC3
Duration : 5 min 0 s
Bit rate mode : Constant
Bit rate : 384 kb/s
Channel(s) : 6 channels
Channel layout : L R C LFE Ls Rs
Sampling rate : 48.0 kHz
Frame rate : 31.250 FPS (1536 SPF)
Compression mode : Lossy
Stream size : 13.7 MiB (2%)
Title : AC3 5.1-EX
Language : English
Service kind : Complete Main
Default : No
Forced : No
Dialog Normalization : -31 dB
compr : 0.53 dB
dynrng : 0.27 dB
cmixlev : -3.0 dB
surmixlev : -3 dB
dmixmod : Lt/Rt
ltrtcmixlev : -3.0 dB
ltrtsurmixlev : -3.0 dB
lorocmixlev : -3.0 dB
lorosurmixlev : -3.0 dB
dialnorm_Average : -31 dB
dialnorm_Minimum : -31 dB
dialnorm_Maximum : -31 dB
Text #1
ID : 4
Format : PGS
Muxing mode : zlib
Codec ID : S_HDMV/PGS
Codec ID/Info : Picture based subtitle format used on BDs/HD-DVDs
Duration : 3 min 55 s
Bit rate : 77.5 kb/s
Frame rate : 0.719 FPS
Count of elements : 169
Stream size : 2.17 MiB (0%)
Title : English (SDH)
Language : English
Default : Yes
Forced : No
I would like to test this version, but I’m running the LSIO PMS container. How can I update the container? I understand that a restart will kill that update, but I could test it still.
@thirty31@FizzBEAUC I asked around and the best way to test this on docker is to remote into the container (usually via ssh) and install it by hand. for example