VacuumTube with Multichannel Audio

  • Ok, I can confirm that this works with Opus multichannel tracks.

    Dolby Digital and Dolby Digital Plus tracks are apparently beyond reach, unless somebody decides to do some serious forking/maintenance of the packages involved. I detailed in a previous post why Gemini claimed this.
    Basically Chromium by default specifically refuses to use ffmpeg to decode Dolby encoded content to multichannel PCM.


    Apparently that's due to internal upmixing that's been recently disabled: RE: Chromium, Firefox, RetroArch, SuperTuxKart and Terminal addons for LE13

    If that is the case, unless you select upmixing in your AVR, stereo content should drive just your front left and front right speakers.

    thanks for confirming. I'm working on seeing if we can get dolby digital tracks. will report soon

  • ashlar yes I understand, I was the one that flagged this in the first place Flatpak Multichannel Audio over HDMI

    In a perfect world we would do what Kodi does and change the output channel count to match various content, but in a Flatpak environment with pulse audio and whatever application we are running that unlikely to ever to a possiblity, but maybe I'm wrong I'm no pulseaudio expert.

    So we are probably stuck with fixed multichannel or fixed stereo output, and if you do choose multichannel I'm not sure if the pulseaudio up mixing is clever enough to not up-mix if all channels are output but start up-mixing when there is a 2 channel input, as I said too complicated for my liking when 99% of YouTube content is stereo.

  • JACK won't help here (and it's also mostly been replaced by pipewire) as the flatpaks want a pulseaudio sink - which means either running a pulseaudio server (which is what we are currently doing) or running a pipewire server, which also provides pulseaudio (and jack) interfaces for clients.

    Another option would be to allow AC3/DTS passthrough in addition to stereo PCM, but it seems most programs (Chromium/Electron, Moonlight, Steam Link) don't support this at all.

    so long,

    Hias

  • In a perfect world we would do what Kodi does and change the output channel count to match various content, but in a Flatpak environment with pulse audio and whatever application we are running that unlikely to ever to a possiblity, but maybe I'm wrong I'm no pulseaudio expert.

    So we are probably stuck with fixed multichannel or fixed stereo output, and if you do choose multichannel I'm not sure if the pulseaudio up mixing is clever enough to not up-mix if all channels are output but start up-mixing when there is a 2 channel input, as I said too complicated for my liking when 99% of YouTube content is stereo.

    I don't get it... it seemed to me, by reading the Moonlight discussion you opened, that the "upmixing everything" problem had been solved. Was this not the case?


    thanks for confirming. I'm working on seeing if we can get dolby digital tracks. will report soon

    I'd be very curious because, as far as I understood things, without patching Chromium itself, this shouldn't be possible (unfortunately).

    Edited once, last by ashlar: Merged a post created by ashlar into this post. (November 9, 2026 at 4:56 PM).

  • I don't get it... it seemed to me, by reading the Moonlight discussion you opened, that the "upmixing everything" problem had been solved. Was this not the case?

    Ok one last time, I'll try to explain myself better :)

    In my case 6 channel output without any upmixing is fine for Moonlight as all the games I'm playing supprt 5.1 audio. So the current state is perfect.

    For VacuumTube even if the app is updated to output 5.1 channel audio for some videos and 2 channel audio for others (assuming this is possible) if we then enabled 6 channel output on Pulseaudio for the VacuumTube flatpak (just like you can currently in Moonlight) the HDMI signalling would be fixed to 6 channels. For 5.1 channel content this is fine but for stereo content you would get the left and right channels playing correctly, but silence on centre, rears and LFE. This isn't wrong but for me in my setup I do not want this, my AVR refuses to enable it's own up-mixing when it receives a 6 channel signal.

    If we did enable Pulseaudio upmixing for VacuumTube the stereo videos would output on all channels (potentially still not as well as my AVR can up-mix), but I'm not sure the 5.1 channel videos would work correctly anymore, as it might ignore the surround channels and just up-mix left and right

    I hope that explains my thinking.

  • For 5.1 channel content this is fine but for stereo content you would get the left and right channels playing correctly, but silence on centre, rears and LFE. This isn't wrong but for me in my setup I do not want this, my AVR refuses to enable it's own up-mixing when it receives a 6 channel signal.

    I quote only the relevant part but thank you for the thorough explanation. I get it now, when 6 channels are active, you get front left and front right content, plus four other silent channels for C, SL, SR and SW.

    I personally listen to stereo music in stereo, using only FL and FR, and in any case Auro-3D upmixing can upmix even 5.1 content to my 5.1.4 setup (although I've never tried what the results would be in the case of a 5.1 stream with only Front Left and Front Right carrying content).

    I don't know if a solution is possible for this. But, at the end of the day, as far as unprocessed output is concerned, one gets stereo content with stereo sources and multichannel content with multichannel sources. The fact that stereo sources can't be further upmixed is... an inconvenience, in my opinion. Not much more.


    If we did enable Pulseaudio upmixing for VacuumTube the stereo videos would output on all channels (potentially still not as well as my AVR can up-mix), but I'm not sure the 5.1 channel videos would work correctly anymore, as it might ignore the surround channels and just up-mix left and right

    And actually, even if Pulseaudio upmixing was smart enough to upmix only when less than 6 channels are received, I am not sure that would be an ideal solution, as that would stop people from being able to listen to stereo music in stereo. I'm not a purist, far from it, but being unable to listen to music the way it was conceived by the artists is less than ideal.

    Edited once, last by ashlar: Merged a post created by ashlar into this post. (November 9, 2026 at 6:09 PM).

  • I got as far as this


    Not sure if it will help. solving Dolby digital seems way to involved and I'd need a build environment to do it which I don't have, this is far as I go. if you want me to add the source code for able to see the audio outputs, let me know

  • Which LE image are you running? Upmixing was recently disabled - so audio output should have been 6ch but only left and right having audio, the other channels silent.

    When you say recently, could you point to a commit in the code? Just to understand what to check for. Thanks in advance.

    EDIT: I suppose it was this. https://github.com/LibreELEC/LibreELEC.tv/pull/11986 . I first looked for an issue that was closed. But you directly applied for a PR, since you had the solution.

  • Yes, this was the change (merged last Friday).

    If you're unsure if this commit is included in the build just check /etc/pulse/daemon.conf - if it contains "; remixing-use-all-sink-channels = no" it's missing (the commit removes the semicolon in that line).

    so long,

    Hias

  • If you're unsure if this commit is included in the build just check /etc/pulse/daemon.conf - if it contains "; remixing-use-all-sink-channels = no" it's missing (the commit removes the semicolon in that line).

    Ok, in my daemon.conf the semicolon is still there.

    While I wait for a custom Dolby Vision that includes the commit, is it enough for me to delete the semicolon and reboot, if I make the file writable?

    That group of lines has to be like this, correct?

    ; resample-method = speex-float-1
    ; avoid-resampling = false
    ; enable-remixing = yes
    remixing-use-all-sink-channels = no
    ; remixing-produce-lfe = no
    ; remixing-consume-lfe = no
    ; lfe-crossover-freq = 0

  • You can make a file as /storage/.config/pulse-daemon.conf.d/remix.conf

    And add the line:

    remixing-use-all-sink-channels = no

    This will survive updates and I'm not sure you can edit files in /etc anyway.

  • awesome work! congrats! if you got this you could add lots of other goodies!

    Thanks a lot for the congratulations. Coming from you, it means a lot, as I am absolutely not a developer. I had to do this, step by step with Gemini, not in agent mode (I don't even know if it supports it), lots of trial and errors... I was lucky that Thorium's patches were well documented. 95% of the work is from that developer (which I've discovered after I finished this work that will probably provide modified Electron builds, maybe those might be of interest to you, in case you don't want to include mine).

    What other goodies did you have in mind? :D

    EDIT: see, I'm no dev. It's not your decision to include or not my Electron build. It's up to VacuumTube's developer. Silly me...

  • Thanks a lot for the congratulations. Coming from you, it means a lot, as I am absolutely not a developer. I had to do this, step by step with Gemini, not in agent mode (I don't even know if it supports it), lots of trial and errors... I was lucky that Thorium's patches were well documented. 95% of the work is from that developer (which I've discovered after I finished this work that will probably provide modified Electron builds, maybe those might be of interest to you, in case you don't want to include mine).

    What other goodies did you have in mind? :D

    I don't know if I mentioned I am not a developer LOL. after your work I'd say I'm lower than you when it comes to vibe coding! you even set up your own repo which I haven't yet. haha so yeah we in the same boat. I don't even read the code.

    I'm currently feeding your repo and it's work into ChatGPT plus. I'm seeing if I can add your work into windows build plus the work I got earlier which was 5.1 not in Dolby, having both will be great and able to switch when you want. not sure I can get as close to your work, plus I haven't got LibreELEC installed.

    Other goodies.
    -decide what loads when vacuumtube starts, I've got this down, I can load into any menu, including subscriptions
    -default quality of video playback
    -hide watched videos
    -ability to long press on related videos to see menu where it shows add to playlist etc
    -I'm looking into adding a queue so in the context menu on videos we can queue videos
    -miniplayer at bottom, I've got this working! it loads a second window, it's allowed in electron, look into.

    these are the ones I can think of, but the true bea uty is , we can add lots of things , pick what you think will add to your experience. it's shaping up to be a great YouTube Addon! we just need HDR now

  • I don't know if I mentioned I am not a developer LOL

    Sorry, I confused you with HiassofT

    Thanks just the same, of course.


    having both will be great and able to switch when you want

    If you have the code in place to select the audio stream, it shouldn't be hard. Without that, by default, when E-AC3 is available, YouTube always picks that, as the best quality choice.

    Edited once, last by ashlar: Merged a post created by ashlar into this post. (November 11, 2026 at 2:25 PM).