NVIDIA Shield 2019 Pro Transcoding HDR Video When Atmos Track Transcoding

Hi all,

I just got the NVIDIA Shield 2019 Pro this weekend and have been trying to figure this out without any luck. Disclaimer: I do not have an Atmos Receiver so I am fully well expecting the audio to be transcoded but I would think the video should still be direct played (Video is 4K HEVC HDR), but the video is being transcoded to 4K H264 (Stripping away HDR and causing heavy buffering) every single time an TrueHD 7.1 Atmos track is present on a media file on the NVIDIA Shield. When playing this file with any other supported format of audio, the video Direct Plays no problem. I have another Sony Android TV and that 'Direct Stream’s (rather than Direct Play) the video while transcoding the Atmos track to EAC3 (but HDR is intact), and otherwise Direct Plays (Video and Audio) for everything. I’ve tried things like going completely hardwired gigabit for the Shield, Audio HDMI Passthrough On/Off. At this point, I’ve just about given up being able to view a file in HDR with an Atmos Track on the Shield. Looking forward to your input.

I believe this is the relevant portion of the log that’s causing the video transcoding to happen. It’s complaining about video profile, but seems like a bug as it direct plays HDR video just fine when playing a non-Atmos track. Server version is 1.21.1.3830 and client is: 8.11.0.22186. I had a similar error on my Chromecast as well which was resolved by turning off the ‘Enable HDR Tone Mapping’ option, but this option is not helping this Atmos issue:

Dec 27, 2020 03:18:24.962 [8092] DEBUG - Request: [192.168.0.24:50798 (Subnet)] GET /video/:/transcode/universal/decision?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=209664&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F4396&protocol=&session=95544d9543d6cabf-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160 (14 live) TLS GZIP Signed-in Token (adminuser)
Dec 27, 2020 03:18:24.962 [8092] DEBUG - [Transcode] Found session GUID of 95544d9543d6cabf-com-plexapp-android in session start.
Dec 27, 2020 03:18:24.964 [8092] DEBUG - [Transcode] TranscodeUniversalRequest: using augmented profile Android
Dec 27, 2020 03:18:24.964 [8092] DEBUG - [Transcode] Downloading document http://127.0.0.1:32400/library/metadata/4396?includeBandwidths=1&offset=-1&X-Plex-Incomplete-Segments=1&X-Plex-Session-Identifier=95544d9543d6cabf-com-plexapp-android
Dec 27, 2020 03:18:24.965 [8092] DEBUG - [Transcode] Auth: authenticated user 1 as adminuser
Dec 27, 2020 03:18:24.971 [8092] DEBUG - [Transcode] It took 31.250000 ms to retrieve 103 items.
Dec 27, 2020 03:18:24.973 [8092] DEBUG - [Transcode] Audio Stream: 25567, Subtitle Stream: 0
Dec 27, 2020 03:18:24.975 [8092] DEBUG - [Transcode] Scaled up video bitrate to 36459Kbps based on 4.500000x fudge factor.
Dec 27, 2020 03:18:24.976 [8092] DEBUG - [Transcode] Codecs: testing aac_mf (encoder)
Dec 27, 2020 03:18:24.977 [8092] INFO - [Transcode] [FFMPEG] - MFT name: ‘Microsoft AAC Audio Encoder MFT’
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] MDE: Selected protocol hls; container: mkv
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] MDE: analyzing media item 10710
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] MDE: The LEGO Movie 2: The Second Part (2019): Direct Play is disabled
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] MDE: The LEGO Movie 2: The Second Part (2019): media must be transcoded in order to use the hls protocol
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] MDE: The LEGO Movie 2: The Second Part (2019): no direct play video profile exists for http/mkv/hevc
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] MDE: The LEGO Movie 2: The Second Part (2019): no direct play video profile exists for http/mkv/hevc/truehd
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] MDE: The LEGO Movie 2: The Second Part (2019): no direct play video profile exists for http/mkv/hevc/ac3
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] MDE: The LEGO Movie 2: The Second Part (2019): no direct play video profile exists for http/mkv/hevc/ac3
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] The LEGO Movie 2: The Second Part - video.colorTrc limitation applies: smpte2084 != bt709|bt470m|smpte240m|smpte170m|bt470bg|bt2020-10 [list]
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] MDE: The LEGO Movie 2: The Second Part (2019): no remuxable profile found, so video stream will be transcoded
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] MDE: Cannot direct stream video stream due to profile or setting limitations
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] Scaled up video bitrate to 36459Kbps based on 4.500000x fudge factor.
Dec 27, 2020 03:18:24.980 [8092] DEBUG - [Transcode] Codecs: testing aac_mf (encoder)
Dec 27, 2020 03:18:24.982 [8092] INFO - [Transcode] [FFMPEG] - MFT name: ‘Microsoft AAC Audio Encoder MFT’
Dec 27, 2020 03:18:24.984 [8092] DEBUG - [Transcode] MDE: Cannot direct stream audio stream due to codec truehd when profile only allows aac
Dec 27, 2020 03:18:24.984 [8092] DEBUG - [Transcode] MDE: The LEGO Movie 2: The Second Part (2019): selected media 0 / 10710
Dec 27, 2020 03:18:24.984 [8092] DEBUG - [Transcode] Streaming Resource: Adding session 0xa710470:95544d9543d6cabf-com-plexapp-android which is using transcoder slot. Used slots is now 1
Dec 27, 2020 03:18:24.984 [8092] DEBUG - [Transcode] Streaming Resource: Added session 0xa710470:95544d9543d6cabf-com-plexapp-android
Dec 27, 2020 03:18:24.984 [8092] DEBUG - [Transcode] Streaming Resource: Reached Decision id=4396 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=10710 part=(id=10710 decision=transcode container=mkv protocol=hls streams=(Video=(id=25566 decision=transcode bitrate=36459 encoder=libx264 width=3840 height=1606) Audio=(id=25567 decision=transcode bitrate=774 encoder=aac_mf channels=6 rate=48000))))
Dec 27, 2020 03:18:24.986 [6096] DEBUG - Completed: [192.168.0.24:50798] 200 GET /video/:/transcode/universal/decision?audioBoost=100&autoAdjustQuality=0&directPlay=0&directStream=1&directStreamAudio=1&fastSeek=1&hasMDE=1&location=lan&maxVideoBitrate=200000&mediaBufferSize=209664&mediaIndex=0&partIndex=0&path=%2Flibrary%2Fmetadata%2F4396&protocol=
&session=95544d9543d6cabf-com-plexapp-android&subtitleSize=100&videoBitrate=200000&videoQuality=100&videoResolution=3840x2160 (14 live) TLS GZIP 24ms 3786 bytes (pipelined: 1)
Dec 27, 2020 03:18:25.189 [15292] DEBUG - It took 0.000000 ms to retrieve 109 items.
Dec 27, 2020 03:18:25.197 [15292] DEBUG - It took 0.000000 ms to retrieve 103 items.
Dec 27, 2020 03:18:25.204 [15292] DEBUG - It took 0.000000 ms to retrieve 129 items.
Dec 27, 2020 03:18:25.234 [15292] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Dec 27, 2020 03:18:25.234 [15292] DEBUG - Selecting best audio stream for part ID 10749 (autoselect: 0 language: en)
Dec 27, 2020 03:18:25.234 [15292] DEBUG - Audio Stream: 25651, Subtitle Stream: -1
Dec 27, 2020 03:18:25.234 [15292] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Dec 27, 2020 03:18:25.234 [15292] DEBUG - Selecting best audio stream for part ID 8120 (autoselect: 0 language: en)
Dec 27, 2020 03:18:25.234 [15292] DEBUG - Audio Stream: 19807, Subtitle Stream: -1
Dec 27, 2020 03:18:25.235 [15292] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Dec 27, 2020 03:18:25.235 [15292] DEBUG - Selecting best audio stream for part ID 9196 (autoselect: 0 language: en)
Dec 27, 2020 03:18:25.235 [15292] DEBUG - Audio Stream: 22266, Subtitle Stream: -1
Dec 27, 2020 03:18:25.236 [15292] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Dec 27, 2020 03:18:25.236 [15292] DEBUG - Selecting best audio stream for part ID 1383 (autoselect: 0 language: en)
Dec 27, 2020 03:18:25.236 [15292] DEBUG - Audio Stream: 3311, Subtitle Stream: -1
Dec 27, 2020 03:18:25.237 [15292] DEBUG - We’re going to try to auto-select an audio stream for account 1.
Dec 27, 2020 03:18:25.237 [15292] DEBUG - Selecting best audio stream for part ID 8723 (autoselect: 0 language: en)
Dec 27, 2020 03:18:25.237 [15292] DEBUG - Audio Stream: 21156, Subtitle Stream: -1
Dec 27, 2020 03:18:25.242 [6464] DEBUG - Completed: [192.168.0.24:50796] 200 GET /library/metadata/4396?includeChapters=1&includeLoudnessRamps=1&includeMarkers=1&includeRelated=1 (15 live) TLS GZIP 482ms 21839 bytes (pipelined: 1)

Hope someone can help or at least help me confirm it’s a bug.

I have had the exact same issue ever since owning a shield (going back to 2017). I just hooked up the 2019 shield after about a year or so of giving up. Thought they fixed it…nope!

I’ve nailed it down to when transcoding an atmos track becomes necessary. When direct playing it’s fine. I have tried every variation of settings and nothing…

in order to direct play, you must either have a compatible receiver (ie with truehd/atmos), or you must disable pass through on the shield (the shield will then decode internally and output PCM).

note there are 2 hdmi/pass through settings, in the shield system settings, and in the plex settings.

I have tried passthrough on and off, HDR video will simply always transcode when Atmos track selected. I can’t find any passthrough setting on server level, only on the client. As I said in my initial post, I’m not expecting to direct play Atmos but it shouldn’t need to transcode the HDR video as it direct plays in any other circumstance unless my logic is amiss.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.