Plex Web not Direct Streaming w/ Multiple Versions

If I have a single 2Mbps MKV with the following specs (see below), then Plex will Direct Stream the Audio/Video and Convert from MKV to MP4 with the default 2Mbps Quality Profile (See Image01 below).

If I have the same 2Mbps MKV and an additional version (typically higher quality), then Plex will select the same 2Mbps MKV (because of the same 2Mbps Quality Profile) but Transcode the Audio/Video instead of Direct Stream (See Image02 below).

It will do this any time there is a version that exceeds the current Quality Profile. So if I have a 12Mbps file, an 8Mbps MKV that can Direct Stream on its own, and an 8Mbps Streaming Limit set, then it will Transcode the 8Mbps file. If the 12Mbps file is removed then it will Direct Stream again.

My expectation would be that if Plex can Direct Stream a file when there is one version, that it should also be able to Direct Stream when there are multiple versions.

The only workaround I’ve found is to convert the MKV to MP4 so the Plex Web client can Direct Play to clients (see Image03 below).

Image01:
Image01

Image02:
Image02

Image03:
Image03

Specs of 2Mbps MKV that only Direct Streams when there’s a single version, but not when there are multiple versions:

General
Format                                   : Matroska
Format version                           : Version 4
File size                                : 1.84 GiB
Duration                                 : 2 h 12 min
Overall bit rate                         : 1 986 kb/s
Writing application                      : mkvmerge v74.0.0 ('You Oughta Know') 64-bit
Writing library                          : libebml v1.4.4 + libmatroska v1.7.1

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main@L3.1@Main
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 2 h 12 min
Bit rate                                 : 1 918 kb/s
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 2.40:1
Original display aspect ratio            : 2.40:1
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0 (Type 0)
Bit depth                                : 8 bits
Bits/(Pixel*Frame)                       : 0.087
Stream size                              : 1.78 GiB (97%)
Language                                 : English
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Audio
ID                                       : 2
Format                                   : AAC LC SBR
Format/Info                              : Advanced Audio Codec Low Complexity with Spectral Band Replication
Commercial name                          : HE-AAC
Format settings                          : Explicit
Codec ID                                 : A_AAC-2
Duration                                 : 2 h 12 min
Bit rate                                 : 66.2 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 23.438 FPS (2048 SPF)
Compression mode                         : Lossy
Delay relative to video                  : 40 ms
Stream size                              : 62.4 MiB (3%)
Language                                 : English
Default                                  : Yes
Forced                                   : No

Text
ID                                       : 3
Format                                   : UTF-8
Codec ID                                 : S_TEXT/UTF8
Codec ID/Info                            : UTF-8 Plain Text
Duration                                 : 2 h 3 min
Bit rate                                 : 80 b/s
Frame rate                               : 0.245 FPS
Count of elements                        : 1820
Stream size                              : 72.8 KiB (0%)
Language                                 : English
Default                                  : No
Forced                                   : No

Specs of the 2Mbps MP4 that Direct Plays regardless of how many versions there are:

General
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/mp41)
File size                                : 1.85 GiB
Duration                                 : 2 h 12 min
Overall bit rate mode                    : Variable
Overall bit rate                         : 1 994 kb/s
Writing application                      : Lavf59.27.100

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main@L3.1@Main
Codec ID                                 : hev1
Codec ID/Info                            : High Efficiency Video Coding
Duration                                 : 2 h 12 min
Bit rate                                 : 1 918 kb/s
Width                                    : 1 280 pixels
Height                                   : 720 pixels
Display aspect ratio                     : 2.40:1
Original display aspect ratio            : 2.40:1
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0 (Type 0)
Bit depth                                : 8 bits
Bits/(Pixel*Frame)                       : 0.087
Stream size                              : 1.78 GiB (96%)
Writing library                          : x265 3.5+1-f0c1022b6:[Windows][GCC 10.2.0][64 bit] 8bit+10bit+12bit
Encoding settings                        : cpuid=1111039 / frame-threads=4 / numa-pools=24 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1280x720 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=5 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-eob / no-eos / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=24 / keyint=240 / gop-lookahead=0 / bframes=8 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=40 / lookahead-slices=0 / scenecut=40 / no-hist-scenecut / radl=0 / no-splice / no-intra-refresh / ctu=32 / min-cu-size=8 / rect / amp / max-tu-size=32 / tu-inter-depth=3 / tu-intra-depth=3 / limit-tu=4 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=100 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=4 / limit-refs=1 / limit-modes / me=3 / subme=4 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / weightb / no-analyze-src-pics / deblock=0:0 / sao / no-sao-non-deblock / rd=4 / selective-sao=2 / no-early-skip / no-rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=4.00 / psy-rdoq=5.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=abr / bitrate=1918 / qcomp=0.60 / qpstep=1 / stats-write=0 / stats-read=2 / cplxblur=20.0 / qblur=0.5 / ipratio=1.20 / pbratio=1.10 / aq-mode=1 / aq-strength=0.50 / no-cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=255 / sar-width / : / sar-height=1080:803 / overscan=0 / videoformat=5 / range=0 / colorprim=1 / transfer=1 / colormatrix=1 / chromaloc=1 / chromaloc-top=0 / chromaloc-bottom=0 / display-window=0 / cll=0,0 / min-luma=0 / max-luma=255 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-sbrc / no-hdr10 / no-hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / scenecut-aware-qp=0conformance-window-offsets / right=0 / bottom=0 / decoder-max-rate=0 / no-vbv-live-multi-pass / no-mcstf
Language                                 : English
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709
mdhd_Duration                            : 7953612
Codec configuration box                  : hvcC

Audio
ID                                       : 2
Format                                   : AAC LC SBR
Format/Info                              : Advanced Audio Codec Low Complexity with Spectral Band Replication
Commercial name                          : HE-AAC
Format settings                          : Explicit
Codec ID                                 : mp4a-40-2
Duration                                 : 2 h 12 min
Bit rate mode                            : Variable
Bit rate                                 : 66.2 kb/s
Maximum bit rate                         : 130 kb/s / 65.8 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 23.438 FPS (2048 SPF)
Compression mode                         : Lossy
Stream size                              : 62.4 MiB (3%)
Language                                 : English
Default                                  : Yes
Alternate group                          : 1

Text
ID                                       : 3
Format                                   : Timed Text
Muxing mode                              : sbtl
Codec ID                                 : tx3g
Duration                                 : 2 h 4 min
Bit rate mode                            : Variable
Bit rate                                 : 95 b/s
Frame rate                               : 0.487 FPS
Stream size                              : 86.4 KiB (0%)
Language                                 : English
Forced                                   : No

Here’s an example of what I see when there’s just a single version in Plex:
Single Version

Here’s an example of what I see when there are multiple versions in Plex:

Server Version#: 1.31.0.6654
Player Version#: 4.101.1

1 Like

@DaveBinM this is the issue I pinged you about on Discord when you were heading out Saturday night. Any chance you have any thoughts on this or know who might be able to help?

Without having logs, it’s hard to say exactly why this is happening. It should just Direct Stream it, but I’d need to see what the decision was here to give a definitive answer.

I’m more than happy to share logs. Want me to just repeat all the steps I described above and DM you the logs?

Also, how difficult is it to read through the logs? Is there any chance I might be able to understand them myself if I know what to look for?

The logs aren’t terribly hard to parse, things like looking for MediaDecisionEngine, or MDE help in cases like this. Just repeat the steps, and DM me the server logs :slight_smile:

1 Like

@DaveBinM I just DM’d you the Server Logs.

I did the following in order to reproduce:

  1. Placed a single 2Mbps MKV in my library that I know is capable of Direct Streaming to Chrome. Played this file and it Direct Streamed on its own (just MKV to MP4 container conversion).
  2. Placed an additional 4Mbps version of the same movie in my library and updated the library so both versions were listed together. Played the same 2Mbps MKV again and it Transcoded instead of Direct Streaming with no other changes.
  3. Replaced the 2Mbps MKV in my library with a 2Mbps MP4 of the exact same movie that I know is capable of Direct Playing. Played this 2Mbps file and it Direct Played.

Like I said in my first post… My expectation would be that if Plex can Direct Stream a file when there is one version, that it should also be able to Direct Stream when there are multiple versions.

Please let me know if you have any questions. Thanks!

@DaveBinM I looked through the logs myself and wasn’t able to figure out why it Direct Streams with a single version but Transcodes multiple versions exist. Do you see anything?

I’ve not looked yet, it was the middle of the night for me :sweat_smile:
I’ll take a look when I have some time this week

1 Like

@DaveBinM Any chance you’ll have time this week? :innocent:

It’s still on my list, not forgotten about.

1 Like

@DaveBinM any chance you can look into this still?

I’ve looked at it, but I don’t have anything further I can share at this time.

1 Like

Understood and thanks for the update @DaveBinM!

1 Like

Can another Plex employee look at this if @DaveBinM isn’t available to help with this anymore? I really think this would benefit Plex users to fix this.

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