H264 to h264 transcoding chromecast ultra. Plex bug?

Hi, Plex is transcoding h264 files to h264. Looking at the logs it seems to be because of bitrate level (file is 5.1). Is it possible to override this?
Other players have no problem to direct stream the same file to Chromecast ultra without transcoding.
Thanks

Edit: other players can stream because it is actually supported by Chromecast ultra according to https://developers.google.com/cast/docs/media

Chromecast Ultra

  • H.264 High Profile up to level 5.2 (2160p/30fps max)
  • VP8 (2160p/30fps)
  • HEVC / H.265 Main and Main10 Profiles up to level 5.1 (2160p/60fps)
  • VP9 Profile 0 and Profile 2 up to level 5.1 (2160p/60fps)High Dynamic Range (HDR)
    • DolbyÂź Visionℱ
    • HDR10Dolby Vision is a trademark of Dolby Laboratories, Inc.
1 Like

Could you please post the content of the Plex XML info of such an affected video?

Please do also note which audio and saubtitle tracks you have selected (in case there are more than one of those).

Thank you Otto!

Audio is EAC3, but is streaming it with no transcoding, which is what I want. It is only transcoding video.
No subtitles
Inside the ZIP file is the XML file.

Chromecast.zip (737 Bytes)

Sorry, this is not the Plex XML info I was asking about.

If you edited this device XML profile yourself, remove it.
Restore the default XML which comes with Plex server.
Reboot the plex server.
Try again.

Sorry, I sent the configuration XML.

Here it is the media XML info.

<MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="1" librarySectionTitle="Series de TV" librarySectionUUID="1d0a5192-592b-4f25-8ecc-c16a4c80038e" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1552487975">
  <Video ratingKey="40" key="/library/metadata/40" parentRatingKey="37" grandparentRatingKey="36" guid="com.plexapp.agents.thetvdb://xxxxxxxxxxxx/4/3?lang=en" librarySectionTitle="Series de TV" librarySectionID="1" librarySectionKey="/library/sections/1" type="episode" title="----------------" titleSort="---------------" grandparentKey="/library/metadata/36" parentKey="/library/metadata/37" grandparentTitle="xxxxxxxxxxxxxxx" parentTitle="Temporada 4" contentRating="TV-MA" summary="----------------." index="3" parentIndex="4" viewOffset="67000" lastViewedAt="1553610179" year="2018" thumb="/library/metadata/40/thumb/1553559615" art="/library/metadata/36/art/1553559615" parentThumb="/library/metadata/37/thumb/1553559615" grandparentThumb="/library/metadata/36/thumb/1553559615" grandparentArt="/library/metadata/36/art/1553559615" grandparentTheme="/library/metadata/36/theme/1553559615" duration="3591968" originallyAvailableAt="2018-11-18" addedAt="1553559510" updatedAt="1553559615">
    <Media id="72" duration="3591968" bitrate="49661" width="3840" height="2160" aspectRatio="1.78" audioChannels="6" audioCodec="eac3" videoCodec="h264" videoResolution="4k" container="mkv" videoFrameRate="24p" videoProfile="high">
      <Part accessible="1" exists="1" id="72" key="/library/parts/72/1553489704/file.mkv" duration="3591968" file="/data-tvshows/xxxxxxxxxxx/Season 4/xxxxxxxxxxx.S04E03/xxxxxxxxxxx.S04E03.mkv" size="22297613562" container="mkv" deepAnalysisVersion="2" requiredBandwidths="119906,105010,95136,84654,82399,81755,78310,72644" videoProfile="high">
        <Stream id="211" streamType="1" default="1" codec="h264" index="0" bitrate="49021" language="English" languageCode="eng" bitDepth="8" chromaLocation="left" chromaSubsampling="4:2:0" frameRate="23.976" hasScalingMatrix="0" height="2160" level="51" profile="high" refFrames="4" requiredBandwidths="119255,104369,94496,84013,81759,81115,77670,72003" scanType="progressive" width="3840" displayTitle="4K (H.264)"/>
        <Stream id="212" streamType="2" selected="1" default="1" codec="eac3" index="1" channels="6" bitrate="640" language="English" languageCode="eng" audioChannelLayout="5.1(side)" requiredBandwidths="640,640,640,640,640,640,640,640" samplingRate="48000" displayTitle="English (EAC3 5.1)"/>
        <Stream id="213" streamType="3" codec="srt" index="2" bitrate="0" language="English" languageCode="eng" requiredBandwidths="1,1,1,1,1,1,1,1" title="SDH" displayTitle="English (SRT)"/>
        <Stream id="214" streamType="3" codec="srt" index="3" bitrate="0" language="Ű§Ù„ŰčŰ±ŰšÙŠŰ©" languageCode="ara" requiredBandwidths="1,1,1,1,1,1,1,1" title="Arabic" displayTitle="Ű§Ù„ŰčŰ±ŰšÙŠŰ© (SRT)"/>
        <Stream id="215" streamType="3" codec="srt" index="4" bitrate="0" language="Deutsch" languageCode="ger" requiredBandwidths="1,1,1,1,1,1,1,1" title="German" displayTitle="Deutsch (SRT)"/>
        <Stream id="216" streamType="3" codec="srt" index="5" bitrate="0" language="Español" languageCode="spa" requiredBandwidths="1,1,1,1,1,1,1,1" title="Spanish" displayTitle="Español (SRT)"/>
        <Stream id="217" streamType="3" codec="srt" index="6" bitrate="0" language="Français" languageCode="fre" requiredBandwidths="1,1,1,1,1,1,1,1" title="French" displayTitle="Français (SRT)"/>
        <Stream id="218" key="/library/streams/218" streamType="3" codec="srt" format="srt" displayTitle="Desconocido (SRT Externo)"/>
      </Part>
    </Media>
  </Video>
</MediaContainer>

Now it gets worse. It transcodes everything, including audio, an it also downgrades de video to 1080 instead of leaving it 4k. The previous version transcode from h264 to h264 but keeping it in 4K.

Settings - Server - Network - ‘Show Advanced’ - “LAN Networks”
Put in there the network address of your local network, e.g. 192.168.1.0/24
Reboot both the server and the Chromecast.

I don’t have this option, I think it’s available only for active plex pass suscription members.

Do you have a log file where it shows the transcoding decision?
(Usually lines starting with MDE:)
You need to have ‘debug’ logging activated.
(please don’t activate ‘verbose’ logging!)

Mar 28, 2019 17:41:57.234 [0x7f532effd700] DEBUG - [Now] Adding 1 sessions.
Mar 28, 2019 17:41:57.235 [0x7f5367fff700] DEBUG - Completed: [192.168.0.37:60548] 200 GET /status/sessions (16 live) TLS GZIP 1ms 1984 bytes (pipelined: 4)
Mar 28, 2019 17:41:57.248 [0x7f532d7fa700] DEBUG - Scaled up video bitrate to 73531Kbps based on 1.500000x fudge factor.
Mar 28, 2019 17:41:57.248 [0x7f532d7fa700] DEBUG - MDE: Selected protocol http; container: mkv
Mar 28, 2019 17:41:57.249 [0x7f532d7fa700] DEBUG - MDE: analyzing media item 72
Mar 28, 2019 17:41:57.249 [0x7f532d7fa700] DEBUG - MDE: E3 - The False Bride: Direct Play is disabled
Mar 28, 2019 17:41:57.249 [0x7f532d7fa700] DEBUG - The False Bride - video.level limitation applies: 51 > 42
Mar 28, 2019 17:41:57.249 [0x7f532d7fa700] DEBUG - The False Bride - video.level limitation applies: 51 > 42
Mar 28, 2019 17:41:57.249 [0x7f532d7fa700] DEBUG - MDE: E3 - The False Bride: no remuxable profile found, so video stream will be transcoded
Mar 28, 2019 17:41:57.249 [0x7f532d7fa700] DEBUG - The False Bride - video.level limitation applies: 51 > 42
Mar 28, 2019 17:41:57.249 [0x7f532d7fa700] DEBUG - MDE: Cannot direct stream video stream due to profile or setting limitations

Mar 28, 2019 17:41:56.974 [0x7f532d7fa700] INFO - [Chromecast] [MDE] Augmented profile: { “directPlay”: { “mp4”: { “mimeType”: “video/mp4; codecs=“avc1.42E01E””, “video”: { “codecs”: { “h264”: { “maxLevel”: 42 }, “hevc”: { “maxBitDepth”: 10, “maxFrameRate”: 60 }, “vp9”: { “maxBitDepth”: 10, “maxFrameRate”: 60 } }, “maxWidth”: 4096, “maxHeight”: 2160, “maxBitDepth”: 8, “maxFrameRate”: 60 }, “audio”: { “codecs”: { “aac”: { “maxSamplingRate”: 48000, “maxChannels”: 2 }, “mp3”: {}, “ac3”: {}, “eac3”: {} } } }, “mkv”: { “mimeType”: “video/webm”, “video”: { “codecs”: { “h264”: { “maxLevel”: 42 }, “vp8”: {}, “hevc”: { “maxBitDepth”: 10, “maxFrameRate”: 60 }, “vp9”: { “maxBitDepth”: 10, “maxFrameRate”: 60 } }, “maxWidth”: 4096, “maxHeight”: 2160, “maxBitDepth”: 8, “maxFrameRate”: 60 }, “audio”: { “codecs”: { “aac”: { “maxSamplingRate”: 48000, “maxChannels”: 2 }, “mp3”: {}, “vorbis”: {}, “ac3”: {}, “eac3”: {} } } }, “mpegts”: { “protocol”: “hls”, “video”: { “maxWidth”: 4096, “maxHeight”: 2160, “maxBitDepth”: 8, “maxFrameRate”: 60 }, “audio”: { “codecs”: { “ac3”: {}, “eac3”: {} } } } }, “directStream”: { “video”: { “maxWidth”: 4096, “maxHeight”: 2160, “maxBitDepth”: 8, “maxFrameRate”: 60, “codecs”: { “h264”: { “maxLevel”: 42 }, “hevc”: { “maxBitDepth”: 10, “maxFrameRate”: 60 }, “vp9”: { “maxBitDepth”: 10, “maxFrameRate”: 60 } } }, “audio”: { “codecs”: { “aac”: { “maxSamplingRate”: 48000, “maxChannels”: 2 }, “mp3”: {}, “opus”: {}, “vorbis”: {} }, “maxChannels”: 6 } } }
Mar 28, 2019 17:41:56.975 [0x7f5367fff700] DEBUG - Completed: [192.168.0.2:54708] 200 POST /log (14 live) TLS GZIP 4ms 274 bytes (pipelined: 4)
Mar 28, 2019 17:41:57.092 [0x7f532e7fc700] DEBUG - Request: [192.168.0.2:54708 (Subnet)] OPTIONS /video/:/transcode/universal/decision?hasMDE=1&path=%2Flibrary%2Fmetadata%2F40&mediaIndex=0&partIndex=0&protocol=http&fastSeek=1&directPlay=0&directStream=1&subtitleSize=100&audioBoost=100&location=lan&directStreamAudio=1&mediaBufferSize=30720&session=6k1jcr060ff8zj03tfowm7sx&offset=0&subtitles=auto&copyts=1 (14 live) TLS GZIP Signed-in Token ()
Mar 28, 2019 17:41:57.094 [0x7f536c8ae700] DEBUG - Completed: [192.168.0.2:54708] 200 OPTIONS /video/:/transcode/universal/decision?hasMDE=1&path=%2Flibrary%2Fmetadata%2F40&mediaIndex=0&partIndex=0&protocol=http&fastSeek=1&directPlay=0&directStream=1&subtitleSize=100&audioBoost=100&location=lan&directStreamAudio=1&mediaBufferSize=30720&session=6k1jcr060ff8zj03tfowm7sx&offset=0&subtitles=auto&copyts=1 (14 live) TLS GZIP 2ms 553 bytes (pipelined: 5)
Mar 28, 2019 17:41:57.133 [0x7f536c8ae700] DEBUG - Auth: authenticated user 1 as parosen
Mar 28, 2019 17:41:57.134 [0x7f532effd700] DEBUG - Request: [192.168.0.2:54710 (Subnet)] POST /log (15 live) TLS GZIP Signed-in Token (parosen)
Mar 28, 2019 17:41:57.135 [0x7f532effd700] INFO - [Chromecast] subtitles: auto
Mar 28, 2019 17:41:57.135 [0x7f532effd700] INFO - [Chromecast] offset: 0
Mar 28, 2019 17:41:57.136 [0x7f532effd700] INFO - [Chromecast] session: 6k1jcr060ff8zj03tfowm7sx
Mar 28, 2019 17:41:57.136 [0x7f532effd700] INFO - [Chromecast] X-Plex-Session-Identifier: ag4dk0mt37v2467yjcie2dix
Mar 28, 2019 17:41:57.136 [0x7f532effd700] INFO - [Chromecast] mediaBufferSize: 30720
Mar 28, 2019 17:41:57.136 [0x7f532effd700] INFO - [Chromecast] directStreamAudio: 1
Mar 28, 2019 17:41:57.136 [0x7f532effd700] INFO - [Chromecast] location: lan
Mar 28, 2019 17:41:57.136 [0x7f532effd700] INFO - [Chromecast] audioBoost: 100
Mar 28, 2019 17:41:57.136 [0x7f532effd700] INFO - [Chromecast] subtitleSize: 100
Mar 28, 2019 17:41:57.136 [0x7f532effd700] INFO - [Chromecast] directStream: 1
Mar 28, 2019 17:41:57.136 [0x7f532effd700] INFO - [Chromecast] directPlay: 0
Mar 28, 2019 17:41:57.136 [0x7f532effd700] INFO - [Chromecast] fastSeek: 1
Mar 28, 2019 17:41:57.137 [0x7f532effd700] INFO - [Chromecast] protocol: http
Mar 28, 2019 17:41:57.137 [0x7f532effd700] INFO - [Chromecast] partIndex: 0
Mar 28, 2019 17:41:57.137 [0x7f532effd700] INFO - [Chromecast] mediaIndex: 0
Mar 28, 2019 17:41:57.137 [0x7f532effd700] INFO - [Chromecast] path: /library/metadata/40
Mar 28, 2019 17:41:57.137 [0x7f532effd700] INFO - [Chromecast] hasMDE: 1
Mar 28, 2019 17:41:57.137 [0x7f532effd700] INFO - [Chromecast] [Transcoder] Video (decision) options
Mar 28, 2019 17:41:57.137 [0x7f532effd700] INFO - [Chromecast] X-Plex-Chunked: 1
Mar 28, 2019 17:41:57.137 [0x7f532effd700] INFO - [Chromecast] copyts: 1

Any clue what might be going on? Is it a bug?

Thanks!

Sorry, this logs snippet is too short. The most crucial part is omitted.

I started playing Apr 02, 2019 12:03, left it for a minute just in case

logs h264 to h264.zip (325.6 KB)

Thank you , but Chromecast ultra support up to 5.2. That’s why I think it’s a plex bug

Here is the information provided by Google:

Chromecast Ultra

  • H.264 High Profile up to level 5.2 (2160p/30fps max)
  • VP8 (2160p/30fps)
  • HEVC / H.265 Main and Main10 Profiles up to level 5.1 (2160p/60fps)
  • VP9 Profile 0 and Profile 2 up to level 5.1 (2160p/60fps)High Dynamic Range (HDR)
    • DolbyÂź Visionℱ
    • HDR10Dolby Vision is a trademark of Dolby Laboratories, Inc.

A bug has been identified which is causing wrong results when checking the device’s capabilities.

Thank you very much,
Is there something I can do while waiting for a plex fix? (like modifing some xml, or whatever)

Unfortunately not. You have already tried the XML, but as you have seen, it didn’t help much.

is there any ETA on the fix?

Sorry, no.