DVR Quality Scale Explainer

Server Version#: 1.41.2.9200
Player Version#:
Tuner Make/Model:
Guide/Lineup name:
Using XMLTV?:
Channel number/Name:
<If providing server logs please do NOT turn on verbose logging, only debug logging should be enabled>

With the latest version of Plex we now have a quality setting to use hardware (nvenc in my case) trancoding. I would like a clearer ezplaination of what the quality scale means. Can I translate the scale to a resolution,bitrate, audio bitrate… Or the ffmpeg cfr setting?

“Quality scale of 99 (High) - 0 (Low) where the higher quality also results in a higher filesize”
This is a clip of my previous post processing settings ‘FFV_CODEC=“libx264 -preset veryfast -crf 20”’

I tend to use a crf of 20 with ffmpeg when I used to run my own post-processing script, and would like to recreate that.

Bump, perhaps a Plex team member can provide some guidance? Is there a translation to a target bitrate or other setting?

I just did a quick test (macOS, PMS version 1.41.2.9200). The top log entry shows the Plex Transcoder command-line with convert while recording set to transcode with a quality of 39. The bottom is the same but with the quality set to 99.

Plex Transcoder -codec:0 mpeg2video -live_start_index 0 -probesize 20000000 -i "http://127.0.0.1:32400/livetv/sessions/nnn/index.m3u8?offset=48.731589&X-Plex-Token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -filter_complex "[0:0]scale=w=852:h=480:force_divisible_by=4[0]" -map "[0]" -codec:0 h264_videotoolbox -b:0 1273k -r:0 29.969999999999999 -map 0:1 -metadata:s:1 language=eng -codec:1 copy -copypriorss:1 0 -f mpegts -map_metadata -1 -map_chapters -1 "/Volumes/Seagate 8 TB/Media/Movies2/.grab/nnn/Jeepers Creepers 2 (2003).ts" -init_hw_device videotoolbox=videotoolbox: -filter_hw_device videotoolbox -y -nostats -loglevel quiet -loglevel_plex error -xioerror -progressurl http://127.0.0.1:32400/video/:/transcode/session/yyy/progress

Plex Transcoder -codec:0 mpeg2video -live_start_index 0 -probesize 20000000 -i "http://127.0.0.1:32400/livetv/sessions/nnn/index.m3u8?offset=23.387359&X-Plex-Token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -filter_complex "[0:0]scale=w=852:h=480:force_divisible_by=4[0]" -map "[0]" -codec:0 h264_videotoolbox -b:0 2000k -r:0 29.969999999999999 -map 0:1 -metadata:s:1 language=eng -codec:1 copy -copypriorss:1 0 -f mpegts -map_metadata -1 -map_chapters -1 "/Volumes/Seagate 8 TB/Media/Movies2/.grab/nnn/Jeepers Creepers 2 (2003).ts" -init_hw_device videotoolbox=videotoolbox: -filter_hw_device videotoolbox -y -nostats -loglevel quiet -loglevel_plex error -xioerror -progressurl http://127.0.0.1:32400/video/:/transcode/session/yyy/progress

As far as I can tell, the only thing which changes is the output bitrate:

  • 39 = 1273kbps
  • 99 = 2000kbps

These are both from the same program which was being broadcast at 480p, mpeg2video. Those bitrates are not fixed however; I also tested with a 1080i stream set to a quality of 99 and Plex Transcoder requested a video output bitrate of 20000kbps in that case.

Plex Transcoder" -codec:0 mpeg2video -live_start_index 0 -probesize 20000000 -i "http://127.0.0.1:32400/livetv/sessions/nnn/index.m3u8?offset=35.901528&X-Plex-Token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -filter_complex "[0:0]yadif[0];[0]scale=w=1920:h=1080:force_divisible_by=4[1]" -map "[1]" -codec:0 h264_videotoolbox -b:0 20000k -r:0 29.969999999999999 -map 0:1 -metadata:s:1 language=eng -codec:1 copy -copypriorss:1 0 -map 0:2 -metadata:s:2 language=spa -codec:2 copy -copypriorss:2 0 -f mpegts -map_metadata -1 -map_chapters -1 "/Volumes/Seagate 8 TB/Media/DVR TV/.grab/nnn/College Football (2008) - 2024-11-23 07 00 00 - USC at UCLA.ts" -init_hw_device videotoolbox=videotoolbox: -filter_hw_device videotoolbox -y -nostats -loglevel quiet -loglevel_plex error -xioerror -progressurl http://127.0.0.1:32400/video/:/transcode/session/yyy/progress

So, it appears that the transcode quality may just affect bitrate, configuring it to be some ratio to the input stream. Maybe.

Note: This is on a Mac, so their VideoToolbox library is being used for hardware accelerated transcoding. Perhaps different strategies for determining quality are used on different platforms. Also, these log entries have been sanitized a bit to remove long identifiers which aren’t relevant here.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.