4k playback issue for specific file

Server Version#: 1.16.2.1297-4bb7ace214 (running on Synology DS2415+)
Player Version#: 3.107.1 (running on LG OLED65B6P WebOS 3.3.0)

So I’m playing 4k MKV’s off my NAS through a hard wired network connection. Playback for most of the files goes off without a hitch. I have read through Plex 4k playback FAQ and so am aware of playback limitations with subtitles and various audio formats and how those can trigger transcoding.

So I’m trying to figure out why a certain file that seems to meet the right criteria is transcoding instead of direct playing.

So here’s the details of the file from the Plex dashboard during playback along with an example file that plays back just fine. You can see both show the same video format (4k HEVC with HDR10), the same audio format (AC3 5.1) and doesn’t contain subtitles.

19%20PM 33%20PM

If it helps, attached is the console log when it plays the problematic video. console-log.txt (16.2 KB)

So I’m hoping for some help with getting this video to playback without transcoding. Not sure if this is a Plex server issue or a Plex app issue.

1 Like

In this case definitely not a data rate issue as you can see in the example above that does play back correctly actually has a data rate almost 2x higher.

I do use Handbrake on my blu ray rips, but the problem with 4k is that Handbrake does not yet support HDR, so the colors end up being washed out. That’s why I’m using the original ripped MKV files.

1 Like

Might I make a suggestion?

Rather than using Handbrake, which actually re-encodes the video, use mkvtoolnix which remuxes the media. Doing this allows you to remove those streams you do not want without altering other streams. You get the content pure. Handbrake is “transcoding right out the box”. IMHO, why damage the 4K experience if not necessary?

Yea, I definitely remove out the unneeded streams that aren’t used. I’m just trying to figure out a couple specific files that seem like they should be playing back without Plex trying to transcode but aren’t. So I’m trying to figure out what the issue is so I can make sure my MKV files all conform to the profile requirements. This is where I’m a bit at a loss. Trying to figure out if there’s just a server or player setting I’m missing? If it’s a limitation of the specific player and maybe a player on a different device might work better? Or exactly what?

The decision chain goes this way:

  1. App reads player capabilities
  2. App communicates these capabilities to server with Playback request.
  3. Server looks at baseline device profile and augments or limits based on device reported capabilities.
  4. Server then looks at streams available to play.
    a. If can direct play (e.g. 100% container compatible) - direct play is selected
    b. If container not compatible, but audio and video are, Remux is selected (DirectStream)
    c. If audio is not compatible but video is, Audio transcode selected (shows as audio transcode)
    d. If video is not compatible, video transcode is selected.

Hi Chuck-
So how can I figure out where the issue is? I provided the log file output, but am not seeing anything glaringly obvious.

Full mediainfo and ffmpeg analysis.
If it’s an actual rip (which you did), and giving you this much trouble, then do it again because the file is damaged.
If it’s a “rip” someone else did, and it’s not full sized file, then it’s been processed. Time to dump it and replace it.

ffmpeg -i filename will tell you everything FFMPEG sees. If it’s been encoded by anything except the studio, you will see the metadata / writing signatures.

Hi Chuck-
By rip I didn’t mean that it is converted other than a full disc copy using MakeMKV. It hasn’t been transcoded at all. The file does playback if I use something like VLC on my desktop machine. It is definitely not damaged from what I can tell. And it’s not that the file can’t be played, it’s that Plex is transcoding it instead of playing it direct.

Here’s the details from Mediainfo

We must keep VLC and Plex completely distinct. Reason being:

  1. VLC reads and renders directlty onto the glass. (Thick Client)
  2. Plex reads, translates to match the client’s needs, transmits, the client renders. ( Thick Server / thin client)

Can you get a full listing of all the tracks?

This is my rip (from the media) of Apollo 13.
This is the detail I’m looking for between the two files.

Input #0, matroska,webm:
  Metadata:
    title           : 
    encoder         : libebml v1.3.5 + libmatroska v1.4.8
    creation_time   : 2017-12-01T15:24:36.000000Z
  Duration: 02:20:20.95, start: 0.000000, bitrate: 44016 kb/s
    Chapter #0:0: start 0.000000, end 579.120000
    Metadata:
      title           : The Moon Walk (Main Titles)
    Chapter #0:1: start 579.120000, end 1189.355000
    Metadata:
      title           : A Slight Change in Destination
    Chapter #0:2: start 1189.355000, end 2061.851000
    Metadata:
      title           : Mattingly and the Measles
    Chapter #0:3: start 2061.851000, end 2715.338000
    Metadata:
      title           : The Lift-Off
    Chapter #0:4: start 2715.338000, end 2978.184000
    Metadata:
      title           : Hello, World
    Chapter #0:5: start 2978.184000, end 3719.674000
    Metadata:
      title           : Houston, We Have a Problem...
    Chapter #0:6: start 3719.674000, end 3952.657000
    Metadata:
      title           : The Special Report
    Chapter #0:7: start 3952.657000, end 4205.451000
    Metadata:
      title           : The Close-Out
    Chapter #0:8: start 4205.451000, end 4508.045000
    Metadata:
      title           : The Dark Side
    Chapter #0:9: start 4508.045000, end 4628.040000
    Metadata:
      title           : Failure Is Not an Option
    Chapter #0:10: start 4628.040000, end 4781.610000
    Metadata:
      title           : The Simulator Gambit
    Chapter #0:11: start 4781.610000, end 5712.582000
    Metadata:
      title           : The Co2 Problem
    Chapter #0:12: start 5712.582000, end 5951.154000
    Metadata:
      title           : A Little Medical Mutiny
    Chapter #0:13: start 5951.154000, end 6501.495000
    Metadata:
      title           : The Earth in the Window
    Chapter #0:14: start 6501.495000, end 6999.618000
    Metadata:
      title           : Four More Amps
    Chapter #0:15: start 6999.618000, end 7129.914000
    Metadata:
      title           : The Damage Done
    Chapter #0:16: start 7129.914000, end 7518.094000
    Metadata:
      title           : Farewell, Aquarius
    Chapter #0:17: start 7518.094000, end 7747.156000
    Metadata:
      title           : Falling to Earth
    Chapter #0:18: start 7747.156000, end 8046.538000
    Metadata:
      title           : Welcome Home
    Chapter #0:19: start 8046.538000, end 8420.954000
    Metadata:
      title           : End Credits
    Stream #0:0(eng): Video: hevc (Main 10), yuv420p10le(tv, bt2020nc/bt2020/smpte2084), 3840x2160 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
    Stream #0:1(eng): Audio: dts (DTS-HD MA), 48000 Hz, 7.1, s32p (24 bit) (default)
At least one output file must be specified
[chuck@lizum Apollo 13 (1995).244]$

Here’s one I just ripped.

Input #0, matroska,webm:
  Metadata:
    encoder         : libebml v1.3.6 + libmatroska v1.4.9
    creation_time   : 2019-07-17T03:55:33.000000Z
  Duration: 01:28:18.75, start: 0.000000, bitrate: 41250 kb/s
    Chapter #0:0: start 0.000000, end 472.889067
    Metadata:
      title           : Chapter 01
    Chapter #0:1: start 472.889067, end 846.804289
    Metadata:
      title           : Chapter 02
    Chapter #0:2: start 846.804289, end 1373.663956
    Metadata:
      title           : Chapter 03
    Chapter #0:3: start 1373.663956, end 1783.198067
    Metadata:
      title           : Chapter 04
    Chapter #0:4: start 1783.198067, end 2149.856022
    Metadata:
      title           : Chapter 05
    Chapter #0:5: start 2149.856022, end 2648.103778
    Metadata:
      title           : Chapter 06
    Chapter #0:6: start 2648.103778, end 2999.496489
    Metadata:
      title           : Chapter 07
    Chapter #0:7: start 2999.496489, end 3361.524822
    Metadata:
      title           : Chapter 08
    Chapter #0:8: start 3361.524822, end 3742.572156
    Metadata:
      title           : Chapter 09
    Chapter #0:9: start 3742.572156, end 4216.962733
    Metadata:
      title           : Chapter 10
    Chapter #0:10: start 4216.962733, end 4475.721244
    Metadata:
      title           : Chapter 11
    Chapter #0:11: start 4475.721244, end 5048.918867
    Metadata:
      title           : Chapter 12
    Chapter #0:12: start 5048.918867, end 5298.752000
    Metadata:
      title           : Chapter 13
    Stream #0:0(eng): Video: h264 (High), yuv420p(progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 47.95 tbc (default)
    Stream #0:1(eng): Audio: dts (DTS-HD MA), 48000 Hz, 5.1(side), s32p (24 bit) (default)
    Stream #0:2(eng): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s
    Stream #0:3(fre): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s
    Stream #0:4(spa): Audio: ac3, 48000 Hz, 5.1(side), fltp, 640 kb/s
    Stream #0:5(eng): Subtitle: hdmv_pgs_subtitle (default)
At least one output file must be specified
[chuck@lizum mmg.226]$

Sure, what did you use to generate that output?

Hi, try this;

  • go to plex web > Plex > settings > console
  • type MDE: in the filter field
  • play your problem video
  • monitor the console log for the MDE lines, these will explain why plex is transcoding.

you can also check the lines before/after the MDE lines for other possibly helpful info (clear filter).

As Tekno points out, there are multiple ways.

  1. I pulled it directly from the file ffmpeg -i filename.ext
  2. An alternative: Hover over the item, Expose ellipsis, Get Info, View XML
  3. ffmpeg and XML values should match

Hey @TeknoJunky, I actually did include that log at the end of the original post above. I didn’t see anything specific in there though. It could just be that I don’t know how to read it well.

Server DEBUG logs , searching for MDE tells a great deal as well.

If you understand how to read the profile XML (not the easiest), you can see how PMS used the augmented feature flags sent by the player to make its decision. All this is in the server log.

Ok, here’s the file info. across-the-universe-info.txt (12.1 KB)

<Part accessible="1" exists="1" id="99585" key="/library/parts/99585/1562623383/file.mkv" duration="7997990" file="/volume1/video/4k/Across The Universe.mkv" size="54956010372" container="mkv" deepAnalysisVersion="3" requiredBandwidths="97614,91862,83230,76098,70050,67976,64633,61048" videoProfile="main 10">
<Stream id="247868" streamType="1" codec="hevc" index="0" bitrate="54330" language="English" languageCode="eng" bitDepth="10" chromaSubsampling="4:2:0" colorPrimaries="bt2020" colorRange="tv" colorSpace="bt2020nc" colorTrc="smpte2084" frameRate="23.976" height="2160" level="153" profile="main 10" refFrames="1" requiredBandwidths="90093,84315,75587,68486,64505,62388,58693,55089" width="3840" displayTitle="4K (HEVC Main 10 HDR)" />
<Stream id="247869" streamType="2" default="1" codec="truehd" index="1" channels="8" language="English" languageCode="eng" audioChannelLayout="7.1" bitDepth="24" requiredBandwidths="6750,6443,6129,5775,5454,5259,5185,5185" samplingRate="48000" title="Surround 7.1" displayTitle="English (TRUEHD 7.1)" />
<Stream id="247870" streamType="2" selected="1" codec="ac3" index="2" channels="6" bitrate="640" language="English" languageCode="eng" audioChannelLayout="5.1(side)" requiredBandwidths="640,640,640,640,640,640,640,640" samplingRate="48000" title="Surround 5.1" displayTitle="English (AC3 5.1)" />
</Part>

TrueHD will bitstream to the TV if the TV supports it. We know LG supports TrueHD natively (model specific). The nVidia Shield supports it as well.

PMS will always default to the first track found in the file.

The transcoder will start if the audio must be converted,
It will convert the audio,
the resync the new audio output with the video passing through it.

Correct, but I am playing it with the ac3 track (the one listed below it).

If it’s overriding the app/ignoring it, APP error.

Swap the track order, or tag AC-3 as the default for experimentation purposes.

I can certainly try. How would I go about swapping the track orders?

Just as a comparison, here’s an example of a 4k file that plays fine that has the same track order for the audio streams. blade-runner-info.txt (9.0 KB)