Chromecast Ultra profile doesn't support HEVC

@adamcr said:

To be certain, it is a Plex issue. The CCU is officially capable of handling 4K/HEVC/HDR material. We have also proven it’s possible with the custom profiles and, according to @shivalwolf, Emby also works, as does LocalCast for Android (and probably some other methods I have forgotten).

We need to be careful with statements like this, as it depends on other things such as the file format and audio encoding.

For instance, recently I finally received the following response directly from the ChromeCast support and engineering teams:

“The Chromecast [Ultra] only supports 2 channel stereo for OPUS and does not support the 5.1. I’m not sure if there are any plans to support 5.1 going forward”

So yeah, it might support 4K/HEVC/HDR, but if your file (e.g. WEBM) has OPUS 5.1 audio, then the ChromeCast Ultra cannot play it directly. And it is also worth noting that MKV format is not officially supported either (even though it does appear to work in many situations).

What “premium”, “4K Ultra HD” device do you know that doesn’t always “support surround sound”? ChromeCast Ultra…
So I just returned mine and got a refund for false advertising regarding their claim of “supports surround sound”.
I am now free! (although without a solution - although I hear good things about the nvidia shield (SHIELD TV Streaming Media Players | NVIDIA)…

I am far from singing CCU’s praises, but I don’t see how pointing out an obscure, unsupported audio format is relevant here. Whether Google have supported 5.1 OPUS is something you might have wanted to find out pre-purchase, if that is something important to you.

The current situation is that the CCU can handle 4K/HEVC/HDR material and Plex is unnecessarily transcoding it (and recently forcing 1080p). If the container isn’t supported, Plex should be able to change the container without transcoding. The problem is they have seemingly prioritized the CC and not yet created a seperate working profile for the CCU.

@only1hammy said:
I am far from singing CCU’s praises, but I don’t see how pointing out an obscure, unsupported audio format is relevant here. Whether Google have supported 5.1 OPUS is something you might have wanted to find out pre-purchase, if that is something important to you.

Perhaps you might consider adjusting your attitude towards other people in the community who also are genuinely trying to help the community and may have experiences in areas that you don’t.

Sorry for trying to be helpful to everyone here who has struggled with the CCU and direct streaming, with any media format and media server such as plex, emby, or universal media server.

The ChromeCast support site said it supported OPUS and WebM and Surround Sound, but apparently 1+1 != 2. It never mentioned only supporting stereo with OPUS or that there was a limitation there.

“OPUS… obscure”? Okay…

Fact 1: OPUS replaces Vorbis
Fact 2: OPUS and Vorbis are the only audio formats supported in WebM - which makes WebM/VP9/OPUS the primary and preferred open format and codec to compete with HEVC and be in use all over the open web.
Fact 3: OPUS exhibits higher quality for the same bitrate, and a lower delay than AAC which makes it a better codec for streaming and file size - something that transcoders might want to pay attention to.
Fact 4: MKV/HEVC/OPUS stereo makes the CCU stutter (yes, MKV is not officially supported, but it plays MKV/HEVC/AAC 5.1 just fine)
Fact 5: MKV/HEVC/OPUS 5.1 does not play at all on the CCU
Fact 6: As I verified by the ChromeCast support team, CCU can only play WebM/OPUS stereo and not WebM/OPUS 5.1

Fact 7: There might be other people out there like me in the community who were trying to use the CCU with Plex and are trying to play HEVC/OPUS and experiencing issues with Plex profiles that don’t cater for OPUS correctly, which could be one reason that they see plex transcoding.

Thanks.

@adamcr said:

@only1hammy said:
I am far from singing CCU’s praises, but I don’t see how pointing out an obscure, unsupported audio format is relevant here. Whether Google have supported 5.1 OPUS is something you might have wanted to find out pre-purchase, if that is something important to you.

Perhaps you might consider adjusting your attitude towards other people in the community who also are genuinely trying to help the community and may have experiences in areas that you don’t.

Sorry for trying to be helpful to everyone here who has struggled with the CCU and direct streaming, with any media format and media server such as plex, emby, or universal media server.

The ChromeCast support site said it supported OPUS and WebM and Surround Sound, but apparently 1+1 != 2. It never mentioned only supporting stereo with OPUS or that there was a limitation there.

“OPUS… obscure”? Okay…

Fact 1: OPUS replaces Vorbis
Fact 2: OPUS and Vorbis are the only audio formats supported in WebM - which makes WebM/VP9/OPUS the primary and preferred open format and codec to compete with HEVC and be in use all over the open web.
Fact 3: OPUS exhibits higher quality for the same bitrate, and a lower delay than AAC which makes it a better codec for streaming and file size - something that transcoders might want to pay attention to.
Fact 4: MKV/HEVC/OPUS stereo makes the CCU stutter (yes, MKV is not officially supported, but it plays MKV/HEVC/AAC 5.1 just fine)
Fact 5: MKV/HEVC/OPUS 5.1 does not play at all on the CCU
Fact 6: As I verified by the ChromeCast support team, CCU can only play WebM/OPUS stereo and not WebM/OPUS 5.1

Fact 7: There might be other people out there like me in the community who were trying to use the CCU with Plex and are trying to play HEVC/OPUS and experiencing issues with Plex profiles that don’t cater for OPUS correctly, which could be one reason that they see plex transcoding.

Thanks.

I apologize if you took my comments as argumentative. That’s a bad habit of mine.

So, the first thing you said, quoting my post, was “We need to be careful with statements like this, as it depends on other things such as the file format and audio encoding.”. In the scope of this thread, this is not correct. No matter the file format or audio encoding, HEVC is ALWAYS getting transcoded (assuming it plays at all).

Facts with bullet points can only end well :wink:

1-3 are irrelevant to this thread. If the hardware is not capable, it is not capable (not a Plex issue, at least).

  1. You say it plays MKV/HEVC/AAC 5.1 “just fine” but that would suggest it isn’t transcoding HEVC. Can you elaborate here? In my testing, it currently transcodes all HEVC content (regardless of resolution).

  2. I would have hoped OPUS 5.1 would at least get transcoded to a compatible format. At the very least it highlights the lack of CCU support. Perhaps create a thread asking for this to be supported going forwards?

  3. Also irrelevant to this thread.

  4. Fair point. I imagine 5.1 OPUS would require relatively light transcoding, whereas the unnecessary video stream transcoding can throttle a CPU very easily.

I see a difference between trying to make hardware do something it was never intended to do versus something it is technically capable of doing, yet can’t, due to lack of support.

@adamcr it does appear that Plex is the issue and not CCU as if for example I use Emby to play content (4K, HEVC) it plays fine. Plex doesn’t work at the moment. Changing settings doesn’t help and editing the chromecast.xml also doesn’t work (and its being overwritten by the augmented profile that we were discussing earlier) and @shivalwolf did more digging into and found the player being used on the CCU that Plex send it is using the wrong settings (that’s a very basic summary of the issue)

My set up has Chromecast 2nd Gen and a Chromecast Ultra so while I’ve had some success editing the Chromecast.xml to get 4K HEVC playback on the ultra it breaks some playback on the 2nd Gen.

My current solution has been to enable the dlna server in my plex server settings and using the “LocalCast” app on my iPhone to cast 4K HEVC content to my Ultra. (Not sure if any other dlna casting apps work. I haven’t tried)
That’s resulted in pretty much all my content being direct played by the Ultra.

I ran into the same problem before finding this trend. I believe most has been covered and the issue resides in the ‘Augmented profile’ sent by the casting device (Android app for me). The lack of ‘Original’ quality in the app settings might be causing this issue I believe. If it can help, here is a post I made with some details: https://www.reddit.com/r/PleX/comments/6nodo9/plex_keeps_transcoding_hvec_to_chromacast_ultra/

Issue was fixed for me by reverting back to an old Android build which still offer the ‘Quality over WiFi’ global setting in the app! Everything 4K direct streams to CCU now! Hope it can help someone

@JulioQc said:
Issue was fixed for me by reverting back to an old Android build which still offer the ‘Quality over WiFi’ global setting in the app! Everything 4K direct streams to CCU now! Hope it can help someone

Thanks Julio! Confirmed that the last working build I could find for the Android app is 5.9.1.758. This + custom xml profile allows most HEVC and HDR to be played without transcoding.

A̶n̶y̶ ̶i̶d̶e̶a̶s̶ ̶o̶n̶ ̶h̶o̶w̶ ̶t̶o̶ ̶g̶e̶t̶ ̶s̶o̶m̶e̶ ̶o̶f̶ ̶t̶h̶e̶ ̶L̶G̶ ̶H̶D̶R̶ ̶t̶e̶s̶t̶ ̶c̶l̶i̶p̶s̶ ̶p̶l̶a̶y̶i̶n̶g̶ ̶a̶g̶a̶i̶n̶?̶ ̶ ̶C̶h̶e̶s̶s̶ ̶a̶n̶d̶ ̶C̶y̶m̶a̶t̶i̶c̶ ̶J̶a̶z̶z̶ ̶a̶r̶e̶ ̶t̶w̶o̶ ̶o̶f̶ ̶m̶y̶ ̶f̶a̶v̶o̶u̶r̶i̶t̶e̶s̶ ̶w̶h̶i̶c̶h̶ ̶s̶t̶i̶l̶l̶ ̶w̶o̶n̶’̶t̶ ̶d̶i̶r̶e̶c̶t̶ ̶s̶t̶r̶e̶a̶m̶. It was related to the audio tracks. Flagging them in MKVToolNix from “Undetermined” to “English (eng)” allows also those to be directly streamed using Julio’s xml profile.

@only1hammy glad it could help!

After some testing, I don’t think the profile changed things much since DirectPlay isn’t a thing due to most audio (I removed the mkv directplay profile since) being transcoded but the resolution ‘limitation’ tags seem to be important.

Anyhow, I hope PLEX fixes this someday… Can’t believe I paid for a subscription and company support is null :frowning:

annnd server update to 1.8.0 seems to force HEVC to h264 transcoding even with custom profile and old android app build

Ok so after some more digging, I doubt this will be ever resolved by the community since, as pointed before, the Chromecast grabs the plex app logic online at https://chromecast.plex.tv/production/js/plex.js and uses the profile provided which is basically this JS function:

define(“plex/chromecast/adapters/player/castPlayerProfile”, [], function() {
        var e = {
            capabilities: {
                embed: !1,
                redirect: !1
            },
            video: {
                directPlay: {
                    generic: {
                        video: {
                            maxBitrate: 12e3,
                            maxBitDepth: 8,
                            maxWidth: 1920,
                            maxHeight: 1280,
                            maxFrameRate: 60,
                            maxLevel: 42
                        }
                    },
                    mp4: {
                        mimeType: ‘video/mp4; codecs=“avc1.42E01E”’,
                        video: {
                            codec: “h264”
                        },
                        audio: {
                            codec: [“aac”, “mp3”]
                        }
                    },
                    mkv: {
                        mimeType: “video/webm”,
                        video: {
                            codec: [“h264”, “vp8”]
                        },
                        audio: {
                            codec: [“aac”, “mp3”, “vorbis”]
                        }
                    }
                },
                directStream: {
                    video: {
                        codec: “h264”,
                        maxBitrate: 12e3,
                        maxBitDepth: 8,
                        maxWidth: 1920,
                        maxHeight: 1280,
                        maxLevel: 42
                    },
                    audio: {
                        codec: “aac”,
                        maxBitrate: 768,
                        maxChannels: 6
                    }
                }
            },
            music: {
                directPlay: {
                    generic: {
                        maxBitrate: 350
                    },
                    mp4: {
                        mimeType: “audio/mp4”,
                        audioCodec: “aac”
                    },
                    mp3: {
                        mimeType: ‘audio/mpeg; codecs=“mp3”’,
                        audioCodec: “mp3”
                    },
                    ogg: {
                        mimeType: ‘audio/ogg; codecs=“vorbis”’,
                        audioCodec: “vorbis”
                    }
                },
                directStream: {
                    audio: {
                        codec: “mp3”,
                        maxBitrate: 320,
                        maxChannels: 2
                    }
                }
            }
        };
        return e

You can obviously see why the Ultra isn’t working as expected with 4K and Plex. This is a https request from the CC app so no easy URL redirect to your modified local version…

I’m wondering why they even bother with the XML profiles if this what defines the CC to the server in the end

I’m having the same basic issues, recent updates have resulted in the Chromecast.xml being ignore and an Augmented Profile being used at all times. Android and Plex Web both set to maximum quality, both using the very restricted profile instead of my own. Unfortunately this is causing a lot of videos that either direct streamed or direct played fine to transcode often due to simple things like having more than 2 channel audio. HEVC is a complete no go and VP9 which was fine with an updated custom profile and fully supported by the Chromecast is now also out. Also impacts the standard Chromecast 2.

@JulioQc that was the conclusion I think we arrived at earlier, that no matter what you do for profiles etc everything was being overwritten.
What I think we need to do is somehow serve up a CCU version of plex.js . Surely there is a way of having a local CCU version and whenever plex.js is requested, this CCU local version is served up instead. Hopefully there is someone with some knowledge on how something like this could be achieved (or not).

I just swapped my chromecast.xml profile for the updated one, then added chromecast.plex.tx to 127.0.0.1 in my hosts file on the server and added a firewall outgoing block to chromecast.plex.tv and at first glance it appears to be working. Hevc video was playing on chromecast and cpu on server was 20%. Log files are not showing the limitations or transcoding either.

I have to rush out but am going to try this some more tonight when I get home.

Maybe someone else wants to try and see their results?

Hmmm, nope. Plex web appears to work but still crap transcodes from iOS.

Nice work, I’ll give it a try over the weekend.

Just throwing this out there after reading this post and playing around with it for quite awhile on my servers, but I got direct play to work on my Chromecast Ultras. Here are some of the highlights:

  • Direct Play works for Video and Audio of 2-channel HEVC, and H264 video files.
  • Direct Play works for Video and Audio of multi-channel HEVC and H264 files on supported media centers
  • Direct Play video works while it transcodes multi-channel audio for H264 and H265 files to media players that only support 2-channel audio. (Which, I thought this wasn’t working with Plex based on multiple threads on this forum? I thought you couldn’t have it direct play video while only transcoding audio… but that works.)

Known issues:

  • HEVC on Chromecast 2 devices fails to cast. Likely because they don’t support HEVC… Haven’t figured out a way to force it to transcode HEVC for all other chromecasts besides the Ultra, so right now none of my Chromecast 2 devices can play any of my HEVC content, which is over half my library. I’ll need a fix for that since I have quite a few users that use Chromecast…

But for now, we at least have it working perfectly with Chromecast Ultras. If anyone wants to chip in on how I might be able to force Chromecast 2 devices to transcode HEVC, I’d definitely appreciate the input.

Here is my hybrid Chromecast.xml file, compiled from many different versions all across these forms and reddit:
pastebin.com/EWEqVJ5X

Come on plex. It’s almost a year since this has been reported, it should not be that hard to fix?
Just bought myself a chromecast ultra (HEVC was the main reason why I took an ultra and not a 2nd gen) and was disappointed to see plex not supporting it. As I’m also still using my old 1st gen chromecast I can’t use the hacks suggested here since I don’t want to break chromeast 1 support…
The box even has a nice plex logo on it, shame it does not fully support it: http://www.recordere.dk/wp-content/uploads/2016/11/Image7.jpg

btw: voted here: https://forums.plex.tv/discussion/255300/request-chromecast-ultra-offical-support

Having better support for these features would be really nice! Especially since casting to TVs is becoming the hot thing…

Hey, at least they updated the server today with LIVE NEWS CHANNELS! Because that’s more important than supporting devices which have been out for 357 days now.