Unfortunately due to platform limitations, AAC is the only
mutli-channel audio codec supported in my use case. However, I do not see,
at a glance, where the AAC specification mandates that if there are 6
channels, that channel 4 must be a 128hz LFE channel. AAC also supports the
6.0 channel layout for example, which does not include LFE. Ffmpeg appears
to be making assumptions at channel layout, as well as doing corresponding
upmixing schemes, with no way to override or disable. This is does not
appear to be an AAC problem

On Thu, Jun 23, 2022 at 4:04 PM Paul B Mahol <[email protected]> wrote:

> On Thu, Jun 23, 2022 at 8:43 PM Jeremy F <[email protected]> wrote:
>
> > That's what I thought! However, here are some commands showing this. I
> set
> > the lowpass to be 10khz on channel4 just to prevent any confusion (it
> > should clearly _not_ sound like any kind of real low pass filter). With
> an
> > input of "vid.mp4" that has standard stereo, run the following:
> >
> > ffmpeg -i vid.mp4 -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=10000[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 vid1.mp4
> >
> > Then to extract channel 4 (since its zero based it's labeled 3):
> >
> > ffmpeg -i vid1.mp4 -map_channel 0.1.3 ch4.mp3
> >
> > ch4.mp3 will be a 128hz lowpass filtered version of the audio, despite me
> > never specifying that.
> >
> >
> Stop transcoding to aac.
>
>
>
> >
> > On Thu, Jun 23, 2022 at 1:48 PM Paul B Mahol <[email protected]> wrote:
> >
> > > On Thu, Jun 23, 2022 at 7:09 PM Jeremy F <[email protected]> wrote:
> > >
> > > > 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.
> > > >
> > >
> > > That directly contradicts with reality.
> > >
> > > FFmpeg never applies lowpass to LFE channels, unless you call lowpass
> > > filter or similar filter on it.
> > >
> > >
> > > >
> > > > On Thu, Jun 23, 2022 at 12:55 PM Paul B Mahol <[email protected]>
> > wrote:
> > > >
> > > > > On Thu, Jun 23, 2022 at 6:45 PM Jeremy F <[email protected]>
> > 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
> > > > > > [email protected]
> > > > > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
> > > > > >
> > > > > > To unsubscribe, visit link above, or email
> > > > > > [email protected] with subject "unsubscribe".
> > > > > >
> > > > > _______________________________________________
> > > > > ffmpeg-user mailing list
> > > > > [email protected]
> > > > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
> > > > >
> > > > > To unsubscribe, visit link above, or email
> > > > > [email protected] with subject "unsubscribe".
> > > > >
> > > >
> > > >
> > > > --
> > > > Sincerely,
> > > >
> > > > Jeremy
> > > > _______________________________________________
> > > > ffmpeg-user mailing list
> > > > [email protected]
> > > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
> > > >
> > > > To unsubscribe, visit link above, or email
> > > > [email protected] with subject "unsubscribe".
> > > >
> > > _______________________________________________
> > > ffmpeg-user mailing list
> > > [email protected]
> > > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
> > >
> > > To unsubscribe, visit link above, or email
> > > [email protected] with subject "unsubscribe".
> > >
> >
> >
> > --
> > Sincerely,
> >
> > Jeremy
> > _______________________________________________
> > ffmpeg-user mailing list
> > [email protected]
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-user
> >
> > To unsubscribe, visit link above, or email
> > [email protected] with subject "unsubscribe".
> >
> _______________________________________________
> ffmpeg-user mailing list
> [email protected]
> https://ffmpeg.org/mailman/listinfo/ffmpeg-user
>
> To unsubscribe, visit link above, or email
> [email protected] with subject "unsubscribe".
>


-- 
Sincerely,

Jeremy
_______________________________________________
ffmpeg-user mailing list
[email protected]
https://ffmpeg.org/mailman/listinfo/ffmpeg-user

To unsubscribe, visit link above, or email
[email protected] with subject "unsubscribe".

Reply via email to