Jump to content

Classic Chromecast Transcoding Issue


sfcredfox
Go to solution Solved by sfcredfox,

Recommended Posts

sfcredfox

Issue:  Transcoding a video that should direct-play.

Observations:  Same video direct plays correctly when casting from Pixel Phone to Vizio TV (smartcast), but not when casting to Google Chromecast Ultra.

Log indicates resolution issue: 

Reason=Unnamed.Width Condition: LessThanEqual. ConditionValue: 1920. IsRequired: False.

I have reviewed the media info for the video file, and it looks like it fits Chromecast Direct (almost).

  • MKV/HEVC 265/AC3

(MKV should cause direct streaming since CCU wants MP4, but not transcoding)

Any videos that are MKV/264/AC3 direct stream

 

Related Details:

  • Emby Server 4.6.7.0, also tried 4.7.6.0.  (Same result)
    • Running on Rocky Linux 8.6, 8 vCPU, 4GB RAM
  • Vizio 4K Smart TV with Smartcast (Netflix does 4K fine)
    • very good connectivity
  • Chromecast Ultra (Netflix does 4K fine)
    • very good connectivity
  • Google Pixel 5 and Samsung A7 Lite tablet
    • Android: Emby for Android App 3.2.77
    • Android device casts to TV or CC Ultra, then directs playing the content
    • App settings on both devices specify local lan and chromecast playback 4K 160mbps

Any change there is an issue with the Emby for Adroid App not passing the right device info for the chromecast?  Or another Google Chromecast change causing Emby to think the max resolution is 1920?

What am I messing up?

embyserver.txt ffmpeg-transcode-4e3291b7-abab-4599-92de-7d613c594c91_1.txt

Link to comment
Share on other sites

hi @sfcredfox can you please try this again and let me know if you're still running into this? I tested on my chromecast ultra and was able to play 4k just fine. Thanks !

Link to comment
Share on other sites

sfcredfox
On 10/6/2022 at 12:26 PM, Luke said:

hi @sfcredfox can you please try this again and let me know if you're still running into this? I tested on my chromecast ultra and was able to play 4k just fine. Thanks !

Did you test with version 4.7.8.0?

I upgrade again and test.

Link to comment
Share on other sites

sfcredfox
On 10/6/2022 at 12:26 PM, Luke said:

hi @sfcredfox can you please try this again and let me know if you're still running into this? I tested on my chromecast ultra and was able to play 4k just fine. Thanks !

I tested again today on 4.6.70, same result.  It thinks the resolution is not supported.  Just not sure what's not configured right.

ffmpeg-transcode-8b121b46-2736-4892-b607-9da5da67af5c_1.txt

Link to comment
Share on other sites

sfcredfox
On 10/6/2022 at 12:26 PM, Luke said:

hi @sfcredfox can you please try this again and let me know if you're still running into this? I tested on my chromecast ultra and was able to play 4k just fine. Thanks !

Did the second log show anything more useful than the first?  My wife's android device was used on the second attempt in case there was something wrong with mine app.

 

Thanks.

Link to comment
Share on other sites

sfcredfox
On 10/6/2022 at 12:26 PM, Luke said:

hi @sfcredfox can you please try this again and let me know if you're still running into this? I tested on my chromecast ultra and was able to play 4k just fine. Thanks !

@Luke

Upgraded to 4.7.8.  Issue still exists for me.

 

Same error posted:

022-10-13 14:57:58.088 Info App: User policy for c3. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
2022-10-13 14:57:58.091 Info App: Profile: VideoCodecProfile, DirectPlay=false. Reason=Unnamed.Width Condition: LessThanEqual. ConditionValue: 1920. IsRequired: False. Path: \\172.20.16.205\Media\Movies\Harry Potter And The Philosophers Stone (2001)\Harry.Potter.and.the.Philosophers.Stone.2001.Bluray-2160p.x265.AC3.5.1.mkv
2022-10-13 14:57:58.129 Info App: Profile: VideoCodecProfile, DirectPlay=false. Reason=Unnamed.Width Condition: LessThanEqual. ConditionValue: 1920. IsRequired: False. Path: \\172.20.16.205\Media\Movies\Harry Potter And The Philosophers Stone (2001)\Harry.Potter.and.the.Philosophers.Stone.2001.Bluray-2160p.x265.AC3.5.1.mkv
2022-10-13 14:57:58.136 Info App: Profile: VideoCodecProfile, DirectPlay=false. Reason=Unnamed.Width Condition: LessThanEqual. ConditionValue: 1920. IsRequired: False. Path: \\172.20.16.205\Media\Movies\Harry Potter And The Philosophers Stone (2001)\Harry.Potter.and.the.Philosophers.Stone.2001.Bluray-2160p.x265.AC3.5.1.mkv

Interesting error as well:

22-10-13 14:48:59.987 Debug Dlna: Attempting to create PlayToController from location http://172.20.16.202:10184/
2022-10-13 14:48:59.998 Debug HttpClient: GET http://172.20.16.202:10184/
2022-10-13 14:49:00.002 Error HttpClient: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>The requested URL could not be retrieved</title>
    <link href="http://passthrough.fw-notify.net/static/default.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="http://passthrough.fw-notify.net/static/default.js"></script>
  </head>
  <body onload="checkResize();">
    <div id="emsg_large"></div>
    <div id="page">
      <div id="header">
        <div><img src="http://passthrough.fw-notify.net/static/topbar_left.png" width="6" height="72" border="0" /></div>
        <div id="company_logo"><img src="http://passthrough.fw-notify.net/static/logo.png" border="0" /></div>
        <div id="company_text"><h1 class="orange">UTM 9   http://www.sophos.com<br><br><span id='homeuse' style='font-size: 14px;font-weight: bold;color: red;'>LICENSED FOR HOME USE ONLY, NOT FOR BUSINESS USE.</span>
</h1></div>
        <div><img src="http://passthrough.fw-notify.net/static/topbar_right.png" width="6" height="72" border="0" /></div>
      </div>
      <br class="clearer" />

      <div id="content">
        <img src="http://passthrough.fw-notify.net/static/warning.png" border="0" align="left" />
        <h1 class="orange">An error occurred while handling your request</h1>

        <div class="line">
          <div class="label">While trying to retrieve the URL:</div>
          <div class="desc"> 
            <span>http://172.20.16.202:10184/</span>
          </div>
        </div>

        <div class="line">
          <div class="label">The content could not be delivered due to the following condition:</div>
          <div class="desc"> 
            Target service not allowed
          </div>
        </div>

        <div class="line">
          <div class="label">Your cache administrator is:</div>
          <div class="desc"> 
            
          </div>
        </div>
        <br class="clearer" />
      </div> <!-- END: div#content -->
      <br class="clearer" />

      <div id="footer">
        <div><a href="http://www.sophos.com" target="_blank" title="Sophos"><img src="http://passthrough.fw-notify.net/static/footer_left.png" width="136" height="33" border="0" /></a></div>
        <div class="orange" id="copyright">Powered by UTM Web Protection</div>
        <div><img src="http://passthrough.fw-notify.net/static/footer_right.png" width="6" height="33" border="0" /></div>
      </div> <!-- END: div#footer -->
    </div> <!-- END: div#page -->
  </body>
</html>

2022-10-13 14:49:00.010 Error Dlna: Error creating PlayTo device.
	*** Error Report ***
	Version: 4.7.8.0
	Command line: /opt/emby-server/system/EmbyServer.dll -programdata /opt/emby-data/ -ffdetect /opt/emby-server/bin/ffdetect -ffmpeg /opt/emby-server/bin/ffmpeg -ffprobe /opt/emby-server/bin/ffprobe -restartexitcode 3 -updatepackage emby-server-rpm_{version}_x86_64.rpm
	Operating system: Linux version 4.18.0-372.19.1.el8_6.x86_64 (mockbuild@dal1-prod-builder001.bld.equ.rockylinux.org) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-10) (GCC
	Framework: .NET 6.0.8
	OS/Process: x64/x64
	Runtime: opt/emby-server/system/System.Private.CoreLib.dll
	Processor count: 8
	Data path: /opt/emby-data/
	Application path: /opt/emby-server/system
	MediaBrowser.Model.Net.HttpException: MediaBrowser.Model.Net.HttpException: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
	<html>
	  <head>
	    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	    <title>The requested URL could not be retrieved</title>
	    <link href="http://passthrough.fw-notify.net/static/default.css" rel="stylesheet" type="text/css" />
	    <script type="text/javascript" src="http://passthrough.fw-notify.net/static/default.js"></script>
	  </head>
	  <body onload="checkResize();">
	    <div id="emsg_large"></div>
	    <div id="page">
	      <div id="header">
	        <div><img src="http://passthrough.fw-notify.net/static/topbar_left.png" width="6" height="72" border="0" /></div>
	        <div id="company_logo"><img src="http://passthrough.fw-notify.net/static/logo.png" border="0" /></div>
	        <div id="company_text"><h1 class="orange">UTM 9   http://www.sophos.com<br><br><span id='homeuse' style='font-size: 14px;font-weight: bold;color: red;'>LICENSED FOR HOME USE ONLY, NOT FOR BUSINESS USE.</span>
	</h1></div>
	        <div><img src="http://passthrough.fw-notify.net/static/topbar_right.png" width="6" height="72" border="0" /></div>
	      </div>
	      <br class="clearer" />
	
	      <div id="content">
	        <img src="http://passthrough.fw-notify.net/static/warning.png" border="0" align="left" />
	        <h1 class="orange">An error occurred while handling your request</h1>
	
	        <div class="line">
	          <div class="label">While trying to retrieve the URL:</div>
	          <div class="desc"> 
	            <span>http://172.20.16.202:10184/</span>
	          </div>
	        </div>
	
	        <div class="line">
	          <div class="label">The content could not be delivered due to the following condition:</div>
	          <div class="desc"> 
	            Target service not allowed
	          </div>
	        </div>
	
	        <div class="line">
	          <div class="label">Your cache administrator is:</div>
	          <div class="desc"> 
	            
	          </div>
	        </div>
	        <br class="clearer" />
	      </div> <!-- END: div#content -->
	      <br class="clearer" />
	
	      <div id="footer">
	        <div><a href="http://www.sophos.com" target="_blank" title="Sophos"><img src="http://passthrough.fw-notify.net/static/footer_left.png" width="136" height="33" border="0" /></a></div>
	        <div class="orange" id="copyright">Powered by UTM Web Protection</div>
	        <div><img src="http://passthrough.fw-notify.net/static/footer_right.png" width="6" height="33" border="0" /></div>
	      </div> <!-- END: div#footer -->
	    </div> <!-- END: div#page -->
	  </body>
	</html>
	
	   at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsyncInternal(HttpRequestOptions options, String httpMethod)
	   at Emby.Server.Implementations.HttpClientManager.CoreHttpClientManager.SendAsync(HttpRequestOptions options, String httpMethod)
	   at Emby.Dlna.PlayTo.Device.CreateuPnpDeviceAsync(Uri url, IHttpClient httpClient, IServerConfigurationManager config, ILogger logger, CancellationToken cancellationToken)
	   at Emby.Dlna.PlayTo.PlayToManager.AddDevice(UpnpNotificationInfo info, String location, CancellationToken cancellationToken)
	   at Emby.Dlna.PlayTo.PlayToManager._deviceDiscovery_DeviceDiscovered(Object sender, GenericEventArgs`1 e)
	Source: Emby.Server.Implementations
	TargetSite: Void MoveNext()

 

Is the DLNA server service trying to contact the internet for something?  The media server and the chromecast ultra are on the same IP subnet for obvious reasons (since that's how DLNA/broadcast/chromecast/multicast/etc works).

 

embyserver.txt ffmpeg-transcode-405d969d-dfc9-4839-b162-3cb4bf2dc5c1_1.txt

Edited by sfcredfox
Link to comment
Share on other sites

sfcredfox

I think I can assume this is Emby trying to auto udpdate?

Command line: /opt/emby-server/system/EmbyServer.dll -programdata /opt/emby-data/ -ffdetect /opt/emby-server/bin/ffdetect -ffmpeg /opt/emby-server/bin/ffmpeg -ffprobe /opt/emby-server/bin/ffprobe -restartexitcode 3 -updatepackage emby-server-rpm_{version}_x86_64.rpm

 

Link to comment
Share on other sites

sfcredfox

@Luke

Would you be willing to look at how the application handles:

App: GetPostedPlaybackInfo request:

I can't really tell if this is something queried from the device, or just showing the profile you have coded into the app.

The response I get when casting to a Chromecast Ultra and a Vizio Smartcast TV are almost identical.  The chromecast ultra supports more formats in for video/audio, but the app still forces transcoding when playing HEVC to a CC Ultra:

 

 

 

 

 

Here's where it decides to transcode, look at the end of the line:

Info Server: http/1.1 GET http://172.20.16.201:8096/emby/videos/21821/stream.mkv?DeviceId=chromecast_1666214891320&MediaSourceId=e4f53893c2a1a336d1ef10d41d60a590&StartTimeTicks=26296440000&PlaySessionId=5e9306293d3a497ab0d2094ffb539a99&VideoCodec=h264,h265,hevc,vp8,vp9&AudioCodec=ac3,eac3,aac,mp3,opus,flac,vorbis&VideoBitrate=159360000&AudioBitrate=640000&MaxWidth=1920&AudioStreamIndex=1&TranscodingMaxAudioChannels=6&CopyTimestamps=true&h264-profile=high,main,baseline,constrainedbaseline&h264-level=62&aac-audiochannels=2&TranscodeReasons=VideoResolutionNotSupported.
Quote
TranscodeReasons=VideoResolutionNotSupported

 

Looks like this part of the codec profile:

"CodecProfiles": [
  {
    "Type": "VideoAudio",
    "Conditions": [
      {
        "Condition": "Equals",
        "Property": "IsSecondaryAudio",
        "Value": "false",
        "IsRequired": false
      },
      {
        "Condition": "LessThanEqual",
        "Property": "AudioChannels",
        "Value": "2",
        "IsRequired": true
      }
    ],
    "ApplyConditions": [

    ],
    "Codec": "aac"
  },
  {
    "Type": "VideoAudio",
    "Conditions": [
      {
        "Condition": "Equals",
        "Property": "IsSecondaryAudio",
        "Value": "false",
        "IsRequired": false
      }
    ],
    "ApplyConditions": [

    ]
  },
  {
    "Type": "Video",
    "Conditions": [
      {
        "Condition": "LessThanEqual",
        "Property": "Width",
        "Value": "1920",
        "IsRequired": false
      },
      {
        "Condition": "EqualsAny",
        "Property": "VideoProfile",
        "Value": "high|main|baseline|constrained baseline",
        "IsRequired": false
      },
      {
        "Condition": "LessThanEqual",
        "Property": "VideoLevel",
        "Value": "62",
        "IsRequired": false
      }
    ],
    "ApplyConditions": [

    ],
    "Codec": "h264"
  },
  {
    "Type": "Video",
    "Conditions": [
      {
        "Condition": "LessThanEqual",
        "Property": "Width",
        "Value": "1920",
        "IsRequired": false
      }
    ],
    "ApplyConditions": [

    ],
    "Codec": "hevc"
  },
  {
    "Type": "Video",
    "Conditions": [
      {
        "Condition": "LessThanEqual",
        "Property": "Width",
        "Value": "1920",
        "IsRequired": false
      }
    ],
    "ApplyConditions": [

    ]
  }
],

 

Looks like even though it's a supported direct play file, it still doesn't like something about the "LessThanEqual" width 1920 and forces h264?

Here's the media info:

Title
4K HEVC HDR10
Codec
HEVC
Profile
Main 10
Level
153
Resolution
3840x1600
Aspect Ratio
2.40:1
Interlaced
No
Framerate
23.976
Bitrate
19 mbps
Video Range
HDR10
Color Primaries
bt2020
Color Space
bt2020nc
Color Transfer
smpte2084
Bit Depth
10 bit
Pixel Format
yuv420p10le
Reference Frames
1

 

embyserver.txt ffmpeg-transcode-ab31f837-b437-4f51-a5b0-470934340f31_1.txt

Link to comment
Share on other sites

I did make one change so please give it another try and let me know if that changes anything. Thanks.

Link to comment
Share on other sites

sfcredfox

 

11 hours ago, Luke said:

It's queried from the device so that's what makes this tricky. What is it plugged into?

It's plugged into a 4K TV, same Vizio TV that can direct play.

CEC is enabled, and the Ultra doesn't seem to do anything weird with 4K from streaming apps.

I would just drop the CC Ultra since the Smartcast is fine, but I use them for the other TVs, and no other smart TVs, so really hoping I can figure out why my setup is acting different.

Link to comment
Share on other sites

  • Solution
sfcredfox
20 hours ago, Luke said:

It's queried from the device so that's what makes this tricky. What is it plugged into?

For Vizio Users:

Figured this out, I'm pretty irritated about it. Turned out to be the TV's fault. 

Vizio put in a 'feature' in the firmware where each HDMI line can have the UHD (4K) turned off.  This wasn't an option when it was working correctly, so that's why it stopped working.

The query response now makes sense why it was saying it could only support 1080 in the conditions/parameters.

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...