Roku Plex ACC 5.1 to AC3 5.1 Transcode after latest update to V6.5.1

Server Version#: 1.19.1.2645
Player Version#: 6.5.1

I’m getting a few issues after the latest update to the to 6.5.1. I’m seeing an attempted transcode for media that used to direct stream (Chernobyl) and also seeing transcode of all AAC-5.1 audio stream down to AC3 across the board - this used to also direct stream.

I’ve attached log below but would really appreciate some help

Plex Media Server.log (4.7 MB)

Edit: Sorry, I forgot to add that I’m using a carrier branded Roku 4 ultra

Edit 2: Mods please close thread, I’ve managed to fix this - it was a Roku settings issue, not Plex itself.

XML - Chernobyl:

<MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="2" librarySectionTitle="TV Shows" librarySectionUUID="4ac687de-167f-4085-a1ac-e13e45392abc" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1586431890">
<Video ratingKey="2640" key="/library/metadata/2640" parentRatingKey="2639" grandparentRatingKey="2638" guid="com.plexapp.agents.thetvdb://360893/1/1?lang=en" parentGuid="com.plexapp.agents.thetvdb://360893/1?lang=en" grandparentGuid="com.plexapp.agents.thetvdb://360893?lang=en" type="episode" title="1:23:45" grandparentKey="/library/metadata/2638" parentKey="/library/metadata/2639" librarySectionTitle="TV Shows" librarySectionID="2" librarySectionKey="/library/sections/2" grandparentTitle="Chernobyl" parentTitle="Season 1" contentRating="TV-MA" summary="Plant workers and firefighters put their lives on the line to control a catastrophic 1986 explosion at a Soviet nuclear power plant." index="1" parentIndex="1" rating="8.6" year="2019" thumb="/library/metadata/2640/thumb/1586363924" art="/library/metadata/2638/art/1586362153" parentThumb="/library/metadata/2639/thumb/1586362153" grandparentThumb="/library/metadata/2638/thumb/1586362153" grandparentArt="/library/metadata/2638/art/1586362153" grandparentTheme="/library/metadata/2638/theme/1586362153" duration="3536126" originallyAvailableAt="2019-05-06" addedAt="1586168719" updatedAt="1586363924" chapterSource="media">
<Media id="5475" duration="3536126" bitrate="5479" width="1920" height="960" aspectRatio="1.85" audioChannels="6" audioCodec="aac" videoCodec="hevc" videoResolution="1080" container="mkv" videoFrameRate="24p" audioProfile="lc" videoProfile="main 10">
<Part accessible="1" exists="1" id="5501" key="/library/parts/5501/1586168719/file.mkv" duration="3536126" file="/media/Shared Videos/T.V Shows/Chernobyl (2019)/Chernobyl (2019) - S01E01 - 1.23.45 (1080p BluRay x265 Silence).mkv" size="2421711002" audioProfile="lc" container="mkv" videoProfile="main 10">
<Stream id="13650" streamType="1" default="1" codec="hevc" index="0" bitrate="5479" bitDepth="10" chromaSubsampling="4:2:0" codedHeight="960" codedWidth="1920" colorRange="tv" frameRate="23.976" height="960" level="120" profile="main 10" refFrames="1" width="1920" displayTitle="1080p (HEVC Main 10)"/>
<Stream id="13651" streamType="2" selected="1" default="1" codec="aac" index="1" channels="6" bitrate="410" language="English" languageCode="eng" profile="lc" samplingRate="48000" displayTitle="English (AAC 5.1)"/>
<Stream id="13652" streamType="3" forced="1" codec="pgs" index="2" bitrate="72" language="English" languageCode="eng" headerCompression="1" title="Forced" displayTitle="English Forced (PGS)"/>
<Stream id="13653" streamType="3" codec="pgs" index="3" bitrate="32" language="English" languageCode="eng" headerCompression="1" title="SDH" displayTitle="English (PGS)"/>
<Stream id="13654" streamType="3" codec="pgs" index="4" bitrate="15" language="Česky" languageCode="cze" headerCompression="1" displayTitle="Česky (PGS)"/>
<Stream id="13655" streamType="3" codec="pgs" index="5" bitrate="23" language="Dansk" languageCode="dan" headerCompression="1" displayTitle="Dansk (PGS)"/>
<Stream id="13656" streamType="3" codec="pgs" index="6" bitrate="22" language="Nederlands" languageCode="dut" headerCompression="1" displayTitle="Nederlands (PGS)"/>
<Stream id="13657" streamType="3" codec="pgs" index="7" bitrate="23" language="Suomi" languageCode="fin" headerCompression="1" displayTitle="Suomi (PGS)"/>
<Stream id="13658" streamType="3" codec="pgs" index="8" bitrate="23" language="Français" languageCode="fre" headerCompression="1" displayTitle="Français (PGS)"/>
<Stream id="13659" streamType="3" codec="pgs" index="9" bitrate="23" language="Norsk bokmål" languageCode="■■■" headerCompression="1" displayTitle="Norsk bokmål (PGS)"/>
<Stream id="13660" streamType="3" codec="pgs" index="10" bitrate="23" language="Español" languageCode="spa" headerCompression="1" displayTitle="Español (PGS)"/>
<Stream id="13661" streamType="3" codec="pgs" index="11" bitrate="28" language="Español" languageCode="spa" headerCompression="1" displayTitle="Español (PGS)"/>
<Stream id="13662" streamType="3" codec="pgs" index="12" bitrate="25" language="Svenska" languageCode="swe" headerCompression="1" displayTitle="Svenska (PGS)"/>
</Part>
</Media>
<Writer id="18297" filter="writer=18297" tag="Craig Mazin"/>
<Chapter id="8357" filter="thumb=8357" tag="" index="1" startTimeOffset="0" endTimeOffset="38038" thumb="/library/media/5475/chapterImages/1"/>
<Chapter id="8357" filter="thumb=8357" tag="" index="2" startTimeOffset="38038" endTimeOffset="394894" thumb="/library/media/5475/chapterImages/2"/>
<Chapter id="8357" filter="thumb=8357" tag="" index="3" startTimeOffset="394894" endTimeOffset="998163" thumb="/library/media/5475/chapterImages/3"/>
<Chapter id="8357" filter="thumb=8357" tag="" index="4" startTimeOffset="998163" endTimeOffset="1591214" thumb="/library/media/5475/chapterImages/4"/>
<Chapter id="8357" filter="thumb=8357" tag="" index="5" startTimeOffset="1591214" endTimeOffset="2136676" thumb="/library/media/5475/chapterImages/5"/>
<Chapter id="8357" filter="thumb=8357" tag="" index="6" startTimeOffset="2136676" endTimeOffset="2858438" thumb="/library/media/5475/chapterImages/6"/>
<Chapter id="8357" filter="thumb=8357" tag="" index="7" startTimeOffset="2858438" endTimeOffset="3376414" thumb="/library/media/5475/chapterImages/7"/>
<Chapter id="8357" filter="thumb=8357" tag="" index="8" startTimeOffset="3376414" endTimeOffset="3536126" thumb="/library/media/5475/chapterImages/8"/>
<Extras size="0"> </Extras>
</Video>
</MediaContainer>

XML - Westworld:

<MediaContainer size="1" allowSync="1" identifier="com.plexapp.plugins.library" librarySectionID="2" librarySectionTitle="TV Shows" librarySectionUUID="4ac687de-167f-4085-a1ac-e13e45392abc" mediaTagPrefix="/system/bundle/media/flags/" mediaTagVersion="1586431890">
<Video ratingKey="5751" key="/library/metadata/5751" parentRatingKey="5750" grandparentRatingKey="5749" guid="com.plexapp.agents.thetvdb://296762/1/1?lang=en" parentGuid="com.plexapp.agents.thetvdb://296762/1?lang=en" grandparentGuid="com.plexapp.agents.thetvdb://296762?lang=en" type="episode" title="The Original" titleSort="Original" grandparentKey="/library/metadata/5749" parentKey="/library/metadata/5750" librarySectionTitle="TV Shows" librarySectionID="2" librarySectionKey="/library/sections/2" grandparentTitle="Westworld" parentTitle="Season 1" contentRating="TV-MA" summary="As another day of fantasy plays out in Westworld — a vast, remote park where guests pay top dollar to share wild-west adventures with android “hosts” — top programmer Bernard Lowe alerts park founder Dr. Robert Ford about incidents of aberrant behavior cropping up in some recently re-coded hosts. Meanwhile, in the Westworld town of Sweetwater, a rancher’s daughter named Dolores encounters a gunslinger named Teddy in the street — but their predictable narrative is upended by the appearance of a ruthless Man in Black and, later, by a supporting host’s unscripted encounter with an artifact of the outside world." index="1" parentIndex="1" rating="8.1" year="2016" thumb="/library/metadata/5751/thumb/1586369098" art="/library/metadata/5749/art/1586365167" parentThumb="/library/metadata/5750/thumb/1586365163" grandparentThumb="/library/metadata/5749/thumb/1586365167" grandparentArt="/library/metadata/5749/art/1586365167" grandparentTheme="/library/metadata/5749/theme/1586365167" duration="4290619" originallyAvailableAt="2016-10-02" addedAt="1483268436" updatedAt="1586369098">
<Media id="8315" duration="4290619" bitrate="1633" width="1920" height="1080" aspectRatio="1.78" audioChannels="6" audioCodec="aac" videoCodec="hevc" videoResolution="1080" container="mkv" videoFrameRate="24p" audioProfile="he-aac" videoProfile="main">
<Part accessible="1" exists="1" id="8341" key="/library/parts/8341/1483268436/file.mkv" duration="4290619" file="/media/Shared Videos/T.V Shows/Westworld/Season 1/Westworld.S01E01.The.Original.1080p.WEB-DL.6CH.x265.HEVC-PSA.mkv" size="876921082" audioProfile="he-aac" container="mkv" deepAnalysisVersion="4" requiredBandwidths="3801,3801,3801,3801,3801,3801,3801,3801" videoProfile="main">
<Stream id="22339" streamType="1" default="1" codec="hevc" index="0" bitrate="1428" bitDepth="8" chromaSubsampling="4:2:0" codedHeight="1080" codedWidth="1920" colorPrimaries="bt709" colorRange="tv" colorSpace="bt709" colorTrc="bt709" frameRate="23.976" height="1080" level="120" profile="main" refFrames="1" requiredBandwidths="3709,3709,3709,3709,3709,3709,3709,3709" width="1920" displayTitle="1080p (HEVC Main)"/>
<Stream id="22340" streamType="2" selected="1" default="1" codec="aac" index="1" channels="6" bitrate="205" profile="he-aac" requiredBandwidths="213,213,213,213,213,213,213,213" samplingRate="48000" displayTitle="Unknown (HE-AAC 5.1)"/>
<Stream id="22341" streamType="3" default="1" codec="srt" index="2" bitrate="0" requiredBandwidths="1,1,1,1,1,1,1,1" displayTitle="Unknown (SRT)"/>
</Part>
</Media>
<Writer id="7665" filter="writer=7665" tag="Jonathan Nolan"/>
<Writer id="20235" filter="writer=20235" tag="Lisa Joy"/>
<Writer id="8082" filter="writer=8082" tag="Michael Crichton"/>
<Extras size="0"> </Extras>
</Video>
</MediaContainer>

I assume the branded Roku is actually a variation of the 4640x, a 5th gen Roku Ultra. This model was the only one that has “advanced” Dolby Digital support. It can convert multi-channel AAC to AC3 internally, so while it’s direct playing, you are still receiving a converted AC3 stream. This internal process however does not produce good results (missing channels, muted volume, etc). Therefore we now use the PMS for converting multi-channel AAC to AC3. This has always been the case for every other Roku.

It sounds though like you are also noticing some videos converting during this transcode session, instead of being copied. It should Direct Stream and copy the video (if compatible), and only convert the AAC 5.1 audio to AC3.

Please verify you have the local/remote quality set to Original, in the Plex settings on the Roku. If this does not fix the issue, please follow these steps so we can troubleshoot further.

  • Open the Plex channel
  • Enable Remote Logging in the settings
  • Play the media that converts the video stream
  • Let is buffer and start, then stop it.
  • Disable Remote Logging
  • Report back with the time/timezone and username once complete.

Yes, I would also assume it to be the 4640x as it was definitely direct streaming before. I noticed the transcoding after the recent update and incorrectly assumed something had broken. If this is intentional then I can confirm it’s all good.

The video transcoding was due to an oversight on my part. In trying to fix the perceived audio transcode issue I uninstalled and reinstalled the Plex app. I didn’t set the quality back to original after doing this, resulting in the bandwidth limits forcing a transcode.

Thanks for such a thorough response, much appreciated

1 Like

Also, I was having a look through the device profiles for Android, Roku and W10 and noticed that Android has the following:

<VideoAudioCodec name="aac">
      <Limitations>
        <UpperBound name="audio.channels" value="2" />
      </Limitations>
    </VideoAudioCodec>

while Roku 7.x has the following:

<VideoAudioCodec name="aac,mp3,mp2,pcm,flac,alac">
      <Limitations>
        <UpperBound name="audio.channels" value="6" />
        <LowerBound name="audio.samplingRate" value="22050" />
      </Limitations>
    </VideoAudioCodec>
    <VideoAudioCodec name="ac3">
      <Limitations>
        <LowerBound name="audio.channels" value="2" />
      </Limitations>
    </VideoAudioCodec>

Is there a reason behind limiting AC3 channels to 2 for Roku and AAC for Android?

I thought this would force a transcode on my Pixel 2 XL but it still seems to direct play as channels are being read as “0”:

Apr 12, 2020 16:33:03.666 [0x66bfe450] DEBUG - Streaming Resource: Reached Decision id=5751 codes=(MDE=1000,Direct play OK.) media=(id=8315 part=(id=8341 decision=direct play protocol=* streams=(Video=(id=22339 decision= width=1920 height=1080) Audio=(id=22340 decision= channels=0 rate=0))))

Are profiles adjusted beyond the scope of device XMLs?

Yep! The XML profile is really more of a baseline. Almost every client will augment the profile dynamically based on the current capabilities. Imagine you plug your Roku into an amplifier, which we’d detect 5.1 DTS, 5.1 AC3, among others, and we’ll augment the profile to include said capabilities. Using that same device, you may then plug in headphone, which limits the output to 2ch. Augmentations are primarily used on the Roku, which is why you haven’t seen an update to the profile in ages.

1 Like

Almost every client will augment the profile dynamically based on the current capabilities.

Ah, perfect - I thought this would be the case. Otherwise, it would be basically impossible to tweak to suit a person’s individual AV set up or their Roku client settings. Not to mention all the variations of Android phones/set top boxes with different HW decoding using the same profile

It all makes sense now, cheers!

2 Likes

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