[FFmpeg-user] Forced upmixing scheme with no way to disable

Jeremy F advanced4 at gmail.com
Thu Jun 23 20:08:11 EEST 2022


A more succinct way of putting it: if I channelsplit (or any other type of
upmixing as far as I'm aware) into 6 channels, channel 4 always has a 128hz
low pass filter applied to it. I do not want this

My particular use case is I play a game that supports multi-channel live
audio streams, but no filters on any audio. So I apply filters myself and
position them as appropriate in the game (i.e. a reverb/echo effect in a
hallway, a 550hz lowpass outside the main area, etc.). More generally,
ffmpeg should allow me to apply any effect to any channel, but it would
appear ffmpeg sees me using 6 channels, and decides to use the default
5.1(side) upmixing scheme. I could find little documentation on this
behaviour, but this page very briefly mentions this behaviour about halfway
down https://trac.ffmpeg.org/wiki/AudioChannelManipulation

Also my provided command was a bit verbose. I could simply channelsplit L &
R into 3 channels each without any modification to any individual channels.
All channels will be duplicates of its original L or R channel, but channel
4 will have a 128hz low pass on it.

On Thu, Jun 23, 2022 at 12:55 PM Paul B Mahol <onemda at gmail.com> wrote:

> On Thu, Jun 23, 2022 at 6:45 PM Jeremy F <advanced4 at gmail.com> wrote:
>
> > Hi I'm probably using ffmpeg in an edge-case way, but I simply want to
> take
> > 2 channels/stereo, and end up with 6 channels of audio, where I can
> > apply/modify/filter each channel as I please. And I figured out the
> ffmpeg
> > magic to do this, but along my dive into this it appears that no matter
> the
> > method used to upmix (of which there are many such as "-ac 6", "asplit",
> > "pan", "channelsplit") it appears no matter what, I'm forced to use the
> > upmixing scheme that always sets channel 4 to a lowpass filter of 128hz,
> > rendering it useless for my case.
> >
> > There doesn't appear to be a way to disable this that I can find, and it
> > seems like there should be
> >
> > My current command I'm using, which works great except for channel 4
> > (labeled r2 in here). No matter what filter I apply, it always ends up
> > being a lowpass of 128.
> >
> > -err_detect ignore_err -filter_complex
> >
> >
> [0:a]channelsplit[left][right];[left]asplit=3[l1][l2][l3];[l1]aecho=1.0:0.7:25|60:0.5|0.3[l1];[l2]lowpass=f=550[l2];[l3]adelay=1,aecho=1.0:0.7:25|60:0.5|0.3[l3];[right]asplit=3[r1][r2][r3];[r1]aecho=1.0:0.7:25|60:0.5|0.3[r1];[r2]lowpass=f=550[r2];[r3]adelay=1,aecho=1.0:0.7:25|60:0.5|0.3[r3];[l1][r1][l2][r2][l3][r3]amerge=inputs=6[a]
> > -map 0:v -map [a] -acodec aac -c:v copy
> >
> >
> > The code, at a glance, seems to corroborate this, but it's a bit beyond
> my
> > depth to do anything further (and I don't want to compile / make a custom
> > version of ffmpeg)
> >
> >
> https://github.com/FFmpeg/FFmpeg/blob/9aa20d28cdda0dcaa4daa2848670a6530c6ba26a/libavfilter/af_surround.c
> >
> > So, if possible, how can I disabled the upmixing scheme?
> >
>
> The surround filter have nothing to do with that filtergraph above.
>
> And I really failed to understand what you are trying to do.
>
>
>
> > Thanks!
> > --
> > Sincerely,
> >
> > Jeremy
> > _______________________________________________
> > ffmpeg-user mailing list
> > ffmpeg-user at ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
> >
> _______________________________________________
> ffmpeg-user mailing list
> ffmpeg-user at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> ffmpeg-user-request at ffmpeg.org with subject "unsubscribe".
>


-- 
Sincerely,

Jeremy


More information about the ffmpeg-user mailing list