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!

Chromecast Ultra profile doesn't support HEVC

chrisbaneschrisbanes Members, Plex Pass Posts: 3 Plex Pass
edited November 2016 in Google Chromecast

Trying to cast a 1080p HEVC file and it's transcoding. Couple of things I notice from the log below:

  • It's choking on the HEVC level. What is level 120? I thought that the level system was similar to H264.
  • No mention of DTS or AC3 in the supported audio list

If I manually change the Chromecast profile to be more lenient it all suddenly starts working.

Log:

Nov 11, 2016 16:36:18.629 [0x7f276ebff700] INFO - [Chromecast] [MDE] Augmented profile: { "directPlay": { "mp4": { "mimeType": "video/mp4; codecs=\"avc1.42E01E\"", "video": { "codecs": { "h264": {}, "hevc": {} }, "maxBitDepth": 8, "maxFrameRate": 60, "maxLevel": 42, "maxWidth": 3840, "maxHeight": 2160, "maxBitrate": 8000, "maxVideoResolution": "1080" }, "audio": { "codecs": { "aac": { "maxSamplingRate": 48000 }, "mp3": {}, "ac3": {}, "eac3": {} } } }, "mkv": { "mimeType": "video/webm", "video": { "codecs": { "h264": {}, "vp8": {}, "hevc": {} }, "maxBitDepth": 8, "maxFrameRate": 60, "maxLevel": 42, "maxWidth": 3840, "maxHeight": 2160, "maxBitrate": 8000, "maxVideoResolution": "1080" }, "audio": { "codecs": { "aac": {}, "mp3": {}, "vorbis": { "maxChannels": 2 }, "ac3": {}, "eac3": {} } } } }, "directStream": { "video": { "codecs": { "h264": {}, "hevc": {} }, "maxBitDepth": 8, "maxLevel": 42, "maxWidth": 3840, "maxHeight": 2160, "maxBitrate": 8000, "maxVideoResolution": "1080" }, "audio": { "codecs": { "mp3": {}, "aac": {}, "opus": {} }, "maxChannels": 6 } } }
Nov 11, 2016 16:36:18.630 [0x7f27703fe700] DEBUG - Auth: Came in with a super-token, authorization succeeded.
Nov 11, 2016 16:36:18.632 [0x7f27623fe700] DEBUG - Request: [127.0.0.1:58986 (Loopback)] GET /library/metadata/5260 (14 live) GZIP Signed-in Token (XXXXX)
Nov 11, 2016 16:36:18.642 [0x7f27623fe700] DEBUG - We're going to try to auto-select an audio stream for account 1.
Nov 11, 2016 16:36:18.642 [0x7f27623fe700] DEBUG - Selecting best audio stream for part ID 8404 (autoselect: 1 language: en)
Nov 11, 2016 16:36:18.643 [0x7f27623fe700] DEBUG - We're going to try to auto-select a subtitle.
Nov 11, 2016 16:36:18.643 [0x7f27623fe700] DEBUG - Audio Stream: 128520, Subtitle Stream: -1
Nov 11, 2016 16:36:18.643 [0x7f27623fe700] DEBUG - It took 0.0 sec to serialize a list with 1 elements.
Nov 11, 2016 16:36:18.644 [0x7f275f3f8700] DEBUG - HTTP 200 response from GET http://127.0.0.1:32400/library/metadata/5260?X-Plex-Token=xxxxxxxxxxxxxxxxxxxx08f-4794-aa48-6f493d16376a
Nov 11, 2016 16:36:18.645 [0x7f275f3f8700] DEBUG - MDE: analyzing media item 7996
Nov 11, 2016 16:36:18.645 [0x7f275f3f8700] DEBUG - MDE: XXXXX: Direct Play is disabled
Nov 11, 2016 16:36:18.646 [0x7f275f3f8700] DEBUG - MDE: XXXXX: no direct play video profile exists for http/mkv/hevc
Nov 11, 2016 16:36:18.646 [0x7f275f3f8700] DEBUG - MDE: XXXXX: no direct play video profile exists for http/mkv/hevc/aac
Nov 11, 2016 16:36:18.646 [0x7f275f3f8700] DEBUG - Contrapasso - video.level limitation applies: 120 > 42
Nov 11, 2016 16:36:18.646 [0x7f275f3f8700] DEBUG - MDE: XXXXX: no remuxable profile found, so video stream will be transcoded
Nov 11, 2016 16:36:18.646 [0x7f275f3f8700] DEBUG - MDE: computed resolution bounding box of 1920x1080.
Nov 11, 2016 16:36:18.646 [0x7f275f3f8700] DEBUG - Scaled up video bitrate to 10035Kbps based on 4.500000x fudge factor.
Nov 11, 2016 16:36:18.646 [0x7f275f3f8700] DEBUG - MDE: XXXXX: selected media 0 / 7996
Nov 11, 2016 16:36:18.646 [0x7f275f3f8700] DEBUG - Streaming Resource: Adding session 0x7f2751c864a0:12p0rcinh3o8nbulufljv8ia4i which is using transcoder slot.  Used slots is now 1
Nov 11, 2016 16:36:18.646 [0x7f275f3f8700] DEBUG - Streaming Resource: Added session 0x7f2751c864a0:12p0rcinh3o8nbulufljv8ia4i
Nov 11, 2016 16:36:18.646 [0x7f275f3f8700] DEBUG - Streaming Resource: Reached Decision id=5260 codes=(General=1001,Direct play not available; Conversion OK. Direct Play=3000,App cannot direct play this item. Direct play is disabled. Transcode=1001,Direct play not available; Conversion OK.) media=(id=7996 part=(id=8404 decision=transcode container=mkv protocol=http streams=(Video=(id=128519 decision=transcode bitrate=8000 encoder=libx264 width=1920 height=1080) Audio=(id=128520 decision=copy channels=6 rate=48000))))
Tagged:
«13456

Answers

  • amdchiptrooperamdchiptrooper Members, Plex Pass Posts: 3 Plex Pass

    mine also transcodes HEVC. Its a Chromecast Ultra aswell. I really would like to find an answer. I cant seem to find it.

  • pinkfloydhomerpinkfloydhomer Members Posts: 11 ✭✭

    Anyone from Plex, please?

  • bobokiboboki Members, Plex Pass Posts: 171 Plex Pass

    I too want an updated profile for ultra.

    Server:i7-4790k, 16gig ram, sabertooth z97/i7-2600k, 16gig ram, sabertooth z77/2x Xeon E5355, 32gig ram all load balanced using PRT 23TB Synology 1515+ port grouped
    Clients: 2 chromecast Ultra 4k, Samsung 8550 65", 4 Laptops (mac and win), 2 Samsung Note4s, iphone 5s, 2 Nexus 6P, Google Pixel XL

  • punthoofd07punthoofd07 Members, Plex Pass Posts: 4 Plex Pass

    Can someone from Plex please advise on using direct stream on an Chromecast Ultra?
    It's transcoding and choking/buffering every 5 seconds! CPU 98-100%. Not very optimal..
    Thanks

  • jonkvjonkv Members, Plex Pass Posts: 125 Plex Pass

    I don't have a Chromecast Ultra, but https://hevc.hhi.fraunhofer.de/HM-doc/_type_def_8h.html says:

    enum Level::Name {
    Level::NONE = 0, Level::LEVEL1 = 30, Level::LEVEL2 = 60, Level::LEVEL2_1 = 63,
    Level::LEVEL3 = 90, Level::LEVEL3_1 = 93, Level::LEVEL4 = 120, Level::LEVEL4_1 = 123,
    Level::LEVEL5 = 150, Level::LEVEL5_1 = 153, Level::LEVEL5_2 = 156, Level::LEVEL6 = 180,
    Level::LEVEL6_1 = 183, Level::LEVEL6_2 = 186, Level::LEVEL8_5 = 255
    }

    So it seems as if levels are "compressed" into integers, and 120 is the H265 representation of level 4 (maybe in order to fit a larger number of sub-levels such as 4.1.2 in the future). For H264 the representation is different, and 42 means level 4.2.

  • gordallottgordallott Members, Plex Pass Posts: 40 Plex Pass

    bump, maybe if we do this enough someone from plex might actually be looking at the forums accidentally and comment

  • DjcurleyDjcurley Members Posts: 12 ✭✭

    I've only got one HEVC file to play direct stream (both video and audio) through my 2016 Vizio P-series built in chromecast. The rest are transcoding the HEVC video to h264. My log shows something similar "no direct play video profile exists for http/mkv/hevc"

    What's the deal?

  • DjcurleyDjcurley Members Posts: 12 ✭✭

    Tried manually adding new direct play profiles to the chromecast profile and it no longer shows "no direct play video profile exists for http/mkv/hevc" But it is still showing "Direct Play is disabled" and "no remuxable profile found, so video stream will be transcoded" (which it also showed in the log before). Not sure what else to do at this point.

  • jonkvjonkv Members, Plex Pass Posts: 125 Plex Pass

    Do you get a log message similar to "Contrapasso - video.level limitation applies: 120 > 42", or what else does the log show?

    I'm not at home and can't check my own chromecast.xml file, but one I found on the net has this section:

    <VideoCodec name="*">
          <Limitations>
            <UpperBound name="video.width" value="1920" />
            <UpperBound name="video.height" value="1080" />
            <UpperBound name="video.bitDepth" value="8" isRequired="false" />
            <UpperBound name="video.level" value="42" isRequired="false" />
          </Limitations>
    </VideoCodec>
    

    If you have this as well, maybe you need to add a section setting a higher video.level specifically for HEVC. Or maybe that already exists in the current Chromecast XML file.

    Disclaimer: I have no HEVC-capable devices so I'm just speculating here...

  • DjcurleyDjcurley Members Posts: 12 ✭✭

    Still no fix on this eh? :(

  • Clmcm400Clmcm400 Members, Plex Pass Posts: 8 Plex Pass

    Ive spent the last 4 or so hours trying to get this to work - changing the profile according to:
    https://forums.plex.tv/discussion/250383/plex-wont-direct-play-stream-local-4k

    ...and still no dice. Any suggestions?

  • nuggravenuggrave Members, Plex Pass Posts: 3 Plex Pass

    I'm looking for a fix on this too. :(

  • Clmcm400Clmcm400 Members, Plex Pass Posts: 8 Plex Pass
    edited January 10

    edited cause I am a nub and don't know how to post the profile so the site displays correctly...

    More info... fixed my first problem and can now direct play the video successfully. Now:

    Jan 09, 2017 21:41:02.018 [0892] DEBUG - MDE: (2016): Direct Play is disabled
    Jan 09, 2017 21:41:02.018 [0892] DEBUG - MDE: (2016): media must be transcoded in order to use the hls protocol
    Jan 09, 2017 21:41:02.018 [0892] DEBUG - MDE: (2016): no direct play video profile exists for http/mkv/hevc
    Jan 09, 2017 21:41:02.018 [0892] DEBUG - MDE: (2016): no direct play video profile exists for http/mkv/hevc/dca
    Jan 09, 2017 21:41:02.018 [0892] DEBUG - MDE: (2016): no remuxable profile found, so video stream will be transcoded
    Jan 09, 2017 21:41:02.018 [0892] DEBUG - MDE: computed resolution bounding box of 1920x1080.
    Jan 09, 2017 21:41:02.018 [0892] DEBUG - Scaled up video bitrate to 268047Kbps based on 4.500000x fudge factor.
    Jan 09, 2017 21:41:02.018 [0892] DEBUG - Scaled maximum bitrate for resolution reduction to 67011Kbps.

    and I have added this to my profile:

    DirectPlayProfiles>
    VideoProfile audioCodec="aac,mp3,flac" codec="vp9,h265,h264,mpeg4" container="mp4,mkv"/>
    MusicProfile codec="aac" container="mp4"/>
    MusicProfile codec="mp3" container="mp3"/>
    PhotoProfile container="jpeg,gif,png"/>
    DirectPlayProfiles>
    CodecProfiles>
    VideoCodec name="h265,vp9">
    Limitations>
    UpperBound name="video.width" value="3840" isRequired="true"/>
    UpperBound name="video.height" value="2176" isRequired="true"/>
    UpperBound name="video.bitrate" value="75000"/>
    Limitations>

    What am I missing here? Maybe need to remove something from the transcodetargets section? From the error log seems like I did the profile wrong, need to add something for hls, or configure a remuxable profile (whatever that is?) Banging my head against the wall... Direct play works fine for video but no audio... no direct play and both video and audio gets transcoded and stutters cause the server isnt beefy enough. All I want is direct play video and transcoded audio!!! cry

  • jonkvjonkv Members, Plex Pass Posts: 125 Plex Pass

    More speculation: If it's looking for http/mkv/hevc and you write "h265", maybe it isn't smart enough to realize that hevc == h265? What happens if you explicitly add "hevc" (with that exact name) in the codec list(s)?

  • zpaolo11xzpaolo11x Members Posts: 988 ✭✭✭

    Sorry for the noob question, but how do you manually edit profiles? Where are they stored? And an edited profile affects also playback through clients or only through DLNA?

  • Clmcm400Clmcm400 Members, Plex Pass Posts: 8 Plex Pass

    jonkv -

    I tried that tonight. Added in hevc. Still have errors (although one less error line in the log... so making progress? lol):

    Jan 10, 2017 19:55:21.671 [4824] DEBUG - MDE: (2016): Direct Play is disabled
    Jan 10, 2017 19:55:21.671 [4824] DEBUG - MDE: (2016): media must be transcoded in order to use the hls protocol
    Jan 10, 2017 19:55:21.671 [4824] DEBUG - MDE: (2016): no direct play video profile exists for http/mkv/hevc/dca
    Jan 10, 2017 19:55:21.671 [4824] DEBUG - MDE: (2016): no remuxable profile found, so video stream will be transcoded

    Edited this line:
    VideoProfile audioCodec="aac,mp3,flac" codec="vp9,h265,h264,mpeg4" container="mp4,mkv"/>

    to:
    VideoProfile audioCodec="aac,mp3,flac" codec="hevc,vp9,h265,h264,mpeg4" container="mp4,mkv"/>

    Not sure. :(

  • jonkvjonkv Members, Plex Pass Posts: 125 Plex Pass

    My interpretation of that (and I'm no expert!) would be:

    Plex tries direct play, which essentially means transmitting the file "as is" with no recoding and no remuxing. The profile now accepts http/mkv/hevc for direct play, but not http/mkv/hevc/dca. DCA is the formal name for what we normally call DTS, so the file contains DTS audio and the profile doesn't allow DTS audio to be passed through as is. I don't think the Chromecast supports DTS directly, so disabling direct play is probably correct.

    Then Plex tries "direct stream", AKA remuxing -- it should be able to keep the video part of the stream as it is, but still transcode the DTS audio to for example AAC, which is much cheaper than video transcoding. Then it should repackage this combination into MP4 or MKV. But while it allows HEVC in direct play, it doesn't want to keep HEVC when remuxing for some reason, and then falls back to H264.

    This might be controlled by another part of the XML file, in TranscodeTargets. Speculation: If you add another VideoProfile there to allow HEVC as a transcode target, maybe it will allow HEVC to be remuxed rather than transcoded? It seems strange that TranscodeTargets would affect what does NOT have to be transcoded, but who knows...

    Or maybe you've already done that? Could you post the complete profile as it looks now?

  • zpaolo11xzpaolo11x Members Posts: 988 ✭✭✭

    @jonkv said:

    Then Plex tries "direct stream", AKA remuxing -- it should be able to keep the video part of the stream as it is, but still transcode the DTS audio to for example AAC, which is much cheaper than video transcoding.

    AFAIK if Plex is "direct streaming" then it is just repackaging the audio and video streams in a different container. If the audio needs transcoding then Plex has to use HLS for streaming, and this requires the video to be in H264 format. I had this experience in the past that even if the video is in a supported format (different from H264), if the audio needs transcoding then the video will transcode to H264.

  • jonkvjonkv Members, Plex Pass Posts: 125 Plex Pass

    Thanks for the clarification! I was sloppy in my interpretation of direct streaming, and I wasn't aware of the limitations (Plex having to use HLS when transcoding audio, and HLS not supporting HEVC).

    Then one workaround might be to use (for example) ffmpeg to transform the file relatively "cheaply", by copying the video track while transcoding DTS into AAC. That should result in a file where both video and audio are in a supported format, so that Plex can direct play or direct stream it.

    With a somewhat more complex call to ffmpeg it should be possible to both copy the audio and transcode it into AAC. Then Plex might be able to extract the supported streams in direct stream mode, while the DTS track remains available for the future?

  • Clmcm400Clmcm400 Members, Plex Pass Posts: 8 Plex Pass

    jonkv - Let me get back to you on the whole profile. I found another one on the forums I want to tweak and prob going to start from scratch with the original. Currently testing.

    What about using ffmpeg? I don't know how to test that at all :)

«13456
Sign In or Register to comment.