Welcome to our forums! Please take a few moments to read through our Community Guidelines (also conveniently linked in the header at the top of each page). There, you'll find guidelines on conduct, tips on getting the help you may be searching for, and more!

'Augmented profiles' breaks HEVC playback on Cromecast Ultra

JulioQcJulioQc Members, Plex Pass Posts: 7 Plex Pass

I have a 4K TV with a recently bought Chromecast Ultra for which I use the Android Plex app to cast videos. Problem is the Plex server keeps transcoding the 4K HVEC media when I stream to the CCU...

Here is what I see on the server: Info on stream
Here is the Chromecast.xml on the server:

<?xml version="1.0" encoding="utf-8"?>
<Client name="Chromecast">
<TranscodeTargets>
    <VideoProfile protocol="http" container="matroska" codec="h264,h265,hevc" audioCodec="eac3,ac3,aac,mp3" context="streaming">
    </VideoProfile>
    <MusicProfile container="matroska" codec="mp3"/>
    <PhotoProfile container="jpeg"/>
  </TranscodeTargets>
<DirectPlayProfiles>
    <VideoProfile container="mp4" codec="hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="eac3,ac3,aac,mp3,mp2"/>
    <VideoProfile container="mkv" codec="vp9,hevc,h265,mpeg1video,mpeg2video,h264,mpeg4" audioCodec="eac3,ac3,aac,mp3,mp2,pcm,flac,alac" subtitleFormat="srt,ass"/>
    <MusicProfile container="mp3" codec="mp2,mp3"/>
    <MusicProfile container="ac3" codec="ac3"/>
    <MusicProfile container="mp4" codec="aac"/>
    <MusicProfile container="flac" codec="flac"/>
    <MusicProfile container="wav" codec="pcm"/>
    <PhotoProfile container="jpeg,png,gif"/>
  </DirectPlayProfiles>
<CodecProfiles>
    <VideoCodec name="h265,hevc,vp9">
      <Limitations>
        <UpperBound name="video.width" value="3840"/>
        <UpperBound name="video.height" value="2176"/>
        <UpperBound name="video.bitrate" value="75000"/>
      </Limitations>
    </VideoCodec>
    <VideoCodec name="h264,mpeg4">
      <Limitations>
        <UpperBound name="video.width" value="3840"/>
        <UpperBound name="video.height" value="2176"/>
        <UpperBound name="video.bitrate" value="75000"/>
      </Limitations>
    </VideoCodec>
    <VideoAudioCodec name="*">
      <Limitations>
        <UpperBound name="audio.channels" value="6"/>
      </Limitations>
    </VideoAudioCodec>
</CodecProfiles>
</Client>

And here is the media info:

Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L5@High
Codec ID : V_MPEGH/ISO/HEVC
Duration : 50 min 49 s
Bit rate : 29.4 Mb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 25.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0 (Type 2)
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.142
Stream size : 10.4 GiB (73%)
Writing library : x265 2.3+23-97435a0870be:[Windows][GCC 6.3.0][64 bit] 10bit

So what is going on? I feel like the XML is being ignored altogether...
I'm running PMS 1.7.6.4058 on Lubuntu 17.04 (KVM with 4x Xeon 2.4Ghz / 4GB)

EDIT: So after looking in the logs, I think I found what is the cause of the issue. The XML is indeed ignored because it receives an 'Augmented Profile' from the Plex app on the server side:

Jul 16, 2017 17:46:14.188 [0x7ff1dbffd700] INFO - [Chromecast] [MDE] Augmented profile: { "directPlay": { "mp4": { "mimeType": "video/mp4; codecs=\"avc1.42E01E\"", "video": { "codecs": { "h264": {} }, "maxBitDepth": 8, "maxFrameRate": 60, "maxLevel": 42, "maxWidth": 1920, "maxHeight": 1080, "maxBitrate": 20000, "maxVideoResolution": "1080" }, "audio": { "codecs": { "aac": { "maxSamplingRate": 48000, "maxChannels": 2 }, "mp3": {}, "ac3": {} } } }, "mkv": { "mimeType": "video/webm", "video": { "codecs": { "h264": {}, "vp8": {} }, "maxBitDepth": 8, "maxFrameRate": 60, "maxLevel": 42, "maxWidth": 1920, "maxHeight": 1080, "maxBitrate": 20000, "maxVideoResolution": "1080" }, "audio": { "codecs": { "aac": { "maxSamplingRate": 48000, "maxChannels": 2 }, "mp3": {}, "vorbis": { "maxChannels": 2 }, "ac3": {} } } } }, "directStream": { "video": { "codecs": { "h264": {} }, "maxBitDepth": 8, "maxLevel": 42, "maxWidth": 1920, "maxHeight": 1080, "maxBitrate": 20000, "maxVideoResolution": "1080" }, "audio": { "codecs": { "aac": { "maxSamplingRate": 48000, "maxChannels": 2 }, "mp3": {}, "opus": {} }, "maxChannels": 6 } } }

This is caused by the "Home streaming" quality setting in the app which is impossible to set to "Original" as seen here, thus forcing the transcoding...

And when attempting to set the quality back to 'Original 4K' during playback, I see this error in the logs:

Jul 16, 2017 17:47:03.277 [0x7ff1d47fe700] WARN - Got a request to stop a transcode session without a session GUID (or with an invalid one).
Jul 16, 2017 17:47:03.416 [0x7ff1e2bff700] WARN - Failed to obtain a streaming resource for transcode of key /library/metadata/2546

So yeah... it's broken when using the Android app.

Answers

  • JulioQcJulioQc Members, Plex Pass Posts: 7 Plex Pass

    If anyone is wondering, simply had to revert to an older build of the Android app (5.9.0.707) and I can Direct Stream in 4K in Original quality :D

Sign In or Register to comment.