All 4K HEVC content is being transcoded. Why?

xbox-one

#1

Hi,

With the new HDR-capable release, I was very excited about the possibility of ditching my Shield TV in favor of my Xbox One X. I tried out the new Plex client and... well, something is clearly not working the way I am expecting it to.

As far as I can tell, -all- 4K HEVC videos are being transcoded (both video and audio).

As an example, consider this file which is typical of what I expect to be able to play:

Container: MKV, Bitrate 63711 kbps, Width 3840, Height 2160, Color Space bt2020nc, Frame Rate 23.976 fps
HEVC Level 5.1 Profile main 10 Ref Frames 1, Size: 58.08 GB

When I look at my log, this is what I see:

May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: analyzing media item 46716
May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: SampleFile: Direct Play is disabled
May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: SampleFile: media must be transcoded in order to use the dash protocol
May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: SampleFile: no direct play video profile exists for http/mkv/hevc/truehd
May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: SampleFile: no direct play video profile exists for http/mkv/hevc/dca
May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: SampleFile: no direct play video profile exists for http/mkv/hevc/eac3
May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: SampleFile: no direct play video profile exists for http/mkv/hevc/eac3
May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: SampleFile: no direct play video profile exists for http/mkv/hevc/eac3
May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: SampleFile: no direct play video profile exists for http/mkv/hevc/eac3
May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: SampleFile: no direct play video profile exists for http/mkv/hevc/eac3
May 06, 2018 16:09:47.818 [13368] DEBUG - Sample File - video.bitrate limitation applies: 58463 > 4000
May 06, 2018 16:09:47.818 [13368] DEBUG - Sample File - audio.channels limitation applies: 8 > 6
May 06, 2018 16:09:47.818 [13368] DEBUG - Sample File - video.bitrate limitation applies: 58463 > 4000
May 06, 2018 16:09:47.818 [13368] DEBUG - MDE: SampleFile: no remuxable profile found, so video stream will be transcoded

It seems pretty clear that it thinks Direct Play is disabled, except... it isn't. On the Xbox One X, in settings, I have:

Allow Direct Play: checked
Allow Direct Stream: checked
Allow HDR: checked
Local Quality: original

What am I doing wrong? It feels like this video should not be being transcoded, but it is.


#2

Odd that I can’t edit my post, but:

  1. I did see this thread: https://forums.plex.tv/discussion/294993/xbox-one-x-directplay-and-4k#latest which indicates that with HEVC that Plex will have to transcode if anything at all needs transcoding (ie: audio) but I tried selecting different audio streams all the way down to stereo.

  2. It is worth mentioning that this same file, streamed from the same device, through the same network, plays just fine through Kodi on the Shield TV.


#3

If your cpu isn’t powerful enough it will transcode even if allow direct stream is checked.


#4

If my CPU isn’t powerful enough… for what? The whole point of direct play is to avoid needing a powerful CPU by simply streaming the content to the device and letting the device handle it through hardware decoding (which the XBOX One X is capable of doing).

I feel like there is definitely an issue here. I could see it thinking it needed to transcode if there wasn’t sufficient network bandwidth, but the Shield TV is sitting right beside the Xbox and using the same network segments and pulling the content from the same file-server, so I can’t imagine that’s the issue.


#5

@TheRealDeria said:
If my CPU isn’t powerful enough… for what? The whole point of direct play is to avoid needing a powerful CPU by simply streaming the content to the device and letting the device handle it through hardware decoding (which the XBOX One X is capable of doing).

I feel like there is definitely an issue here. I could see it thinking it needed to transcode if there wasn’t sufficient network bandwidth, but the Shield TV is sitting right beside the Xbox and using the same network segments and pulling the content from the same file-server, so I can’t imagine that’s the issue.

Disable subtitles, even forced one. And try 5.1 audio


#6

video.bitrate limitation applies: 58463 > 4000

Your video stream is being transcoded because the quality limit is not set to Original. That bitrate limit value is the default value for remote servers, so I suspect that the Xbox One cannot reach your server locally for whatever reason. You can confirm this by going to the Media Server Status menu item and check whether your server is remote or local. Check out our support article for DNS rebinding issues, or you can work around it by increasing the quality limit for remote servers to Original.


#7

Ok, so this took a bit of time to investigate. Sorry for the delay in responding.

I’ve moved my Xbox One X to the same network segment as my Plex Server, and now in Media Server Status it says “Nearby”.

When I try to play the same file now, it does indeed switch to HDR mode and if I press the hamburger button (three stacked lines) on the controller it says “canDirectStreamVideo: true” on the left which makes me think that all is well except that 5-15 seconds later the following happens:

  1. a buffering message appears
  2. after a few seconds of that, the HDR mode on the TV turns off
  3. eventually the video starts playing again (without HDR)

I don’t particularly want to post my server logs in a forum, but I do want to help. I’m not sure if it is possible to send a DM on these forums, but I’ll try.


#8

That is exactly what is happening on my end too. maybe 30 seconds of HDR, then buffering and then no HDR


#9

@TheRealDeria You can PM me your logs if you wish and I’ll make sure they get to @Moussa


#10

I sent them to him as a PM. I was just not familiar with this particular forum package, but it only took a minute to figure out. Hopefully he can use them to figure our what might be happening here.


#11

I have seen the same, video will start HDR then buffer and transcode video/audio.


#12

Same here. I hope someone can get this addressed soon. Basically 4k is useless right now.


#13

Same problem


#14

yes same problem here. It starts fine, then anywhere between 2 - 8 mins stops, buffers, and turns off HDR. I tested my network, and streamed the same file through the Xbox One S “Movies and TV” app, via the plex media server as you can do that, and the content streams fine, however that Xbox app does not support all audio formats so its useless to me. I noticed on this issue my “Plextranscoder.exe” is trying to use CPU of almost 100%… which is not helping… definitely a problem with Plex. FIX IT PLEX.


#15

I submitted a sample file to Moussa that illustrates the problem in a repeatable way, so hopefully he can see it and solve it.


#16

yer well lets hope they fix this issue. all my 4k content is sitting there unwatched because these guys havent got their â– â– â– â–  together to fix the Plex Xbox app/Media server problem


#17

Same issue here. My brand new 4K tv is sad.


#18

I had some time and did some research on this today, here is what i found:

4K HEVC/Dolby Atmos - Plex Server transcodes to H264/AC3.
4K HEVC/AC3 - Plex Server shows Direct Stream for both video and audio, I checked my server and CPU was running at 100%. With some research I learned that Plex is unable to Direct Stream HEVC and it was actually transcoding to H264. I assume that this means Plex does not support HEVC/AC3 in and MKV container on Xbox One as both formats should be supported.
4K HEVC/AAC - Plex Server uses Direct Play for 60 seconds and then switches to Direct Stream which was established to be a false indication and actually a transcode to H264.

Obviously I wish all of the above worked without issue but I am unsure as to why 4K HEVC/AAC works for 60 seconds and then switches to Direct Stream/Transcoding.


#19

I just ran a final test and removed all audio and their was no buffering.


#20

@kqmaverick said:
I just ran a final test and removed all audio and their was no buffering.

What are you you using to strip the audio? I’ve heard that HEVC/AC3 will work in an MP4 container but all my movies are mkv and I haven’t been able to find something to easily change container.