Jump to content

AAC 5.1 only plays sound through TV speakers, not surround system


Recommended Posts

Posted

Problem

  • AAC 5.1 no longer plays sound through my surround system (it used to), but can still play through TV speakers (eww)

 

History

  • My setup worked correctly for years with AAC 5.1 files direct playing to the surround system. In fact, AC3 file were problematic on this Roku stick when I first set up my media server a few years ago. So now I have thousands of files in my library that I have deliberately curated to use AAC.
  • I assume something must have auto-updated, but I'm not sure if it was the Roku OS, the Emby app on Roku, or the EmbyServer.

 

Setup

  • Official EmbyServer version 4.9.3.0, running as Docker on Unraid
  • Roku Streaming Stick (Roku OS 15.2, app version Roku SG 4.1.59, latest available)
  • Surround sound system connected via HDMI eARC

 

Things I've tried/ruled out

  • Surround system hardware is fine — AC3 5.1 works perfectly and plays sounds on all speakers+sub; so does live TV through the Roku app
  • Ensured Roku OS is using latest version
  • Reinstalled Emby app on Roku to latest version
  • Reinstalled official EmbyServer docker on unraid
  • Confirmed Night Mode and Auto Leveling are both OFF
  • Roku audio settings are NOT using"Auto" (the two settings are set to Dolby, and Custom > Dolby Digital Plus)
  • Set "Convert Multi-Channel AAC" to YES in the Emby Roku app
  • Deleted the device from Emby Server to forced re-registration, then power-cycled everythin

 

 What I assume is the root cause

  • Client tells the server that it does not support AAC 5.1
  • Setting "Convert Multi-Channel AAC" to YES in the Roku app has no effect on the reported device profile; the "authentication.db" capabilities JSON remains unchanged after the above. The Roku app is still reporting AAC as 2-channel-only, regardless of this setting.

Every time the Roku requests playback of an AAC 5.1 stream, the server logs show:

Profile: VideoAudioCodecProfile, DirectPlay=false. 
Reason=Roku SG.AudioChannels Condition: LessThanEqual. ConditionValue: 2. IsRequired: True.

And the resulting transcode URL contains `aac-audiochannels=2`, meaning the server is capping AAC to 2 channels. The device profile stored in authentication.db confirms the Roku app is reporting:

json{"Type":"VideoAudio","Conditions":[{"Condition":"LessThanEqual","Property":"AudioChannels","Value":"2","IsRequired":true}],"ApplyConditions":[],"Codec":"aac"}

 

Additional diagnostic info
Using a test file with 4 audio streams (AAC 5.1, AC3 5.1, AAC 2.0, AC3 2.0):

  • AAC 5.1 → server transcodes it and plays fine on TV speakers, but no sound when switching to surround speakers
  • AC3 5.1 → direct plays correctly on both TV and surround speakers
  • AAC 2.0 → direct plays on TV speakers; no sound when switching to surround speakers
  • AC3 2.0 → direct plays on TV speakers; no sound when switching to surround speakers

The transcode URL when AC3 is requested contains ac3-audiochannels=6, confirming the server knows the Roku can handle 6-channel AC3.

So as far as I can tell, the issue is purely the AAC channel limit being hardcoded to 2 in the reported profile, and I can't figure out how to change that.

 

Final Questions

  • Is the "Convert Multi-Channel AAC" setting currently broken in the Roku app?
  • Does it no longer update the capability profile sent to the server?
  • If so, is there a server-side workaround that won't get overwritten every time the Roku reconnects?
  • Should I just give up and begin the long process of re-encoding my entire library to AC3?
  • Should I just buy a non-Roku option like NVIDIA shield?


Thank you in advance for any help.
 

Posted

Hi. Please post the ffmpeg log from this playback.

24 minutes ago, threnos said:

when switching to surround speakers

Exactly what does this mean?  How do you do that?  What are these hooked up to?

Posted (edited)

image.thumb.png.52c7357864939d93a07d02529324997a.png

image.thumb.png.8abc62f4e7c28d23c2b5c9b72f3727b1.png

image.thumb.png.25146f2ec71d527489b5988329a9b4bc.png

What do you have set for the options above on your Roku? Realize that "Auto" will only detect things correctly if your TV and AVR are turned on before the Roku is turned on. You might just need to restart the Roku (while TV and AVR are turned ON first) and let the auto-detect run again and it might work. The order the devices are turned on matters when Auto is used.

You can also choose to use Dolby for Preferred Streaming Format and then use Custom in Digital Output Format. Then on the Custom make sure Dolby is selected and DTS is not. If your audio equipment is capable of supporting DTS too. You can choose Auto for Streaming Format and on Custom choose both Dolby and enable DTS.

Certain Roku devices will convert 5.1 AAC into 2.0 AAC on the device. Other Roku devices do not support AAC 5.1 at all. The setting is to keep the devices which do not support AAC 5.1 from getting fed it. It also works on the devices which support AAC 5.1 to not allow the Roku to strip the extra channels and reduce it to AAC 2.0. You want that setting set to YES if you expect surround sound. AAC should be told to only send in 2 channel when that setting is set. This is what alerts the server it shouldn't go above that with AAC.

Edited by speechles
Posted

Thanks for the replies so far.

To clarify, "switching to surround speakers" means using the TV remote to select a different audio-output device. My soundbar/surround system is plugged in via a single HDMI eARC cable. The TV then sees two options for audio out: either the TV speakers, or the soundbar. It's easy to toggle back and forth between them when anything is playing. I usually don't have to, though, because I have previously always just left it on the soundbar 100% of the time.

Regarding the audio setting screenshots, I most recently tried with "Preferred streaming format" set to Dolby, and "Digital output format" set to "Custom", where I then select "Dolby Digital", where I then select "Dolby Digital Plus". Before this issue, I wasn't aware of these settings, and they were both on Auto, and I never had problems. Only from reading other posts did I become aware of them, but honestly in the 6+ hours I've spent on this problem before posting to the forum, I tried every possible combination of these settings (with a restart after each change) and nothing affected the issue.

I will try to post complete logs soon.

 

Posted

Logs attached.

I restarted the emby server to get some clean logs, so it should only have the 4 attempts I just made to play the single file with the 4 different audio tracks.

 

embyserver.txt

Posted
2 hours ago, ebr said:

Please post the ffmpeg log from this playback.

 

Posted

Just an additional heads up that all AAC 6 channel files suddenly stopped working for me as well (movies wouldn't even start).  Like you, I've been playing these movies for years with the same tv, roku stick, server, etc.  The only thing that may have changed is auto updates to emby server, emby client, or roku.

Once I went into Roku and forced everything to Dolby/stereo, everything's working okay again (which is fine as I'm just playing through this TV).  Attaching the relevant debug data from embyserver.txt.  I'm back up and running sufficiently, but hoping it helps gives some clues for the problem threnos is hitting.

 

2026-05-06 22:00:01.932 Debug EncodingManager: KillTranscodingJob - JobId cf20eb47-db09-43c2-b366-1588c9027849 PlaySessionId 143fb49421974b878b976ca5d73e23b7. Killing transcoding
2026-05-06 22:00:01.932 Error DynamicHlsService-0HNKV6226T45R:00000001: Error processing request
    *** Error Report ***
    Version: 4.9.3.0
    Command line: C:\Users\Byron\AppData\Roaming\Emby-Server\system\EmbyServer.dll -noautorunwebapp
    Operating system: Microsoft Windows 10.0.19045
    OS/Process: x64/x64
    Framework: .NET 8.0.22
    Runtime: C:/Users/Byron/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll
    Processor count: 8
    Data path: C:\Users\Byron\AppData\Roaming\Emby-Server\programdata
    Application path: C:\Users\Byron\AppData\Roaming\Emby-Server\system
    Emby.Server.MediaEncoding.Unified.Ffmpeg.FfRunException: Emby.Server.MediaEncoding.Unified.Ffmpeg.FfRunException: Error starting ffmpeg
-loglevel +timing -y -print_graphs_file "C:\Users\Byron\AppData\Roaming\Emby-Server\programdata\logs\ffmpeg-transcode-cf20eb47-db09-43c2-b366-1588c9027849_1graph.txt" -copyts -start_at_zero -f mp4 -c:v:0 h264 -noautorotate -i "H:\Movies\Ocean's Eleven (2001)\Ocean's Eleven (2001).m4v" -map 0:0 -map 0:1 -sn -c:v:0 libx264 -g:v:0 90 -maxrate:v:0 1866630 -bufsize:v:0 3733260 -sc_threshold:v:0 0 -keyint_min:v:0 90 -r:v:0 29.970029830932617 -pix_fmt:v:0 yuv420p -preset:v:0 veryfast -profile:v:0 high -x264opts:v:0 "subme=0:me_range=4:rc_lookahead=10:partitions=none" -crf:v:0 23 -c:a:0 ac3 -ab:a:0 384000 -ar:a:0 48000 -ac:a:0 6 -disposition:a:0 default -max_delay 5000000 -avoid_negative_ts disabled -f segment -map_metadata -1 -map_chapters -1 -segment_format mpegts -segment_list "C:\Users\Byron\AppData\Roaming\Emby-Server\programdata\transcoding-temp\D95AD5\D95AD5.m3u8" -segment_list_type m3u8 -segment_time 00:00:03.000 -segment_start_number 0 -individual_header_trailer 0 -write_header_trailer 0 -segment_write_temp 1 "C:\Users\Byron\AppData\Roaming\Emby-Server\programdata\transcoding-temp\D95AD5\D95AD5_%d.ts"

22:00:01.836 ffmpeg version 5.1-emby_2023_06_25_p4 Copyright (c) 2000-2022 the FFmpeg developers and softworkz for Emby LLC
    22:00:01.836   built with gcc 12.2.0 (Rev10, Built by MSYS2 project)
    22:00:01.836 Execution Date: 2026-05-06 22:00:01
    22:00:01.891 Guessed Channel Layout for Input Stream #0.1 : 5.1
    22:00:01.891 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'H:\Movies\Ocean's Eleven (2001)\Ocean's Eleven (2001).m4v':
    22:00:01.891   Metadata:
    22:00:01.891     major_brand     : M4V 
    22:00:01.891     minor_version   : 512
    22:00:01.891     compatible_brands: M4V isomiso2avc1
    22:00:01.891     encoder         : Lavf59.27.100
    22:00:01.891   Duration: 01:56:34.66, start: 0.000000, bitrate: 1025 kb/s
    22:00:01.891   Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(progressive), 720x480 [SAR 32:27 DAR 16:9], 622 kb/s, Level 30, 29.97 fps, 29.97 tbr, 30k tbn (default)
    22:00:01.892     Metadata:
    22:00:01.892       handler_name    : VideoHandler
    22:00:01.892       vendor_id       : [0][0][0][0]
    22:00:01.892   Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, 5.1, fltp, 394 kb/s (default)
    22:00:01.892     Metadata:
    22:00:01.892       handler_name    : SoundHandler
    22:00:01.892       vendor_id       : [0][0][0][0]
    22:00:01.898 Stream mapping:
    22:00:01.898   Stream #0:0 -> #0:0 (h264 (native) -> h264 (libx264))
    22:00:01.898   Stream #0:1 -> #0:1 (aac (native) -> ac3 (native))
    22:00:01.898 Press [q] to stop, [?] for help
    22:00:01.903 [Parsed_anull_0 @ 0000017181eeff00] Channel layout change is not supported
    22:00:01.903 Error while filtering: Not yet implemented in FFmpeg, patches welcome
    22:00:01.903 Failed to inject frame into filter network: Not yet implemented in FFmpeg, patches welcome
    22:00:01.903 Error while processing the decoded data for stream #0:1
    22:00:01.908 Conversion failed!
    22:00:01.908 EXIT

 

 

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...