crossfeed¶
Watch on youtube.comThis filter is not available on ffmpeg 3.x.
The description in the official documentation:
Apply headphone crossfeed filter.
Crossfeed is the process of blending the left and right channels of stereo audio recording. It is mainly used to reduce extreme stereo separation of low frequencies.
The intent is to produce more speaker like sound to the listener.
The filter accepts the following options:
strength
Set strength of crossfeed. Default is 0.2. Allowed range is from 0 to 1. This sets gain of low shelf filter for side part of stereo image. Default is -6dB. Max allowed is -30db when strength is set to 1.
range
Set soundstage wideness. Default is 0.5. Allowed range is from 0 to 1. This sets cut off frequency of low shelf filter. Default is cut off near 1550 Hz. With range set to 1 cut off frequency is set to 2100 Hz.
level_in
Set input gain. Default is 0.9.
level_out
Set output gain. Default is 1.
- see also
To arbitrarily create targets that show significant differences due to “crossfeed”,
I think it is easy to use acrossover
and pan
.
See changing the mixing amount for each frequency band.
Each segment of the uploaded video was created with the following script:
#! /bin/sh
#
# crossfeed and acrossover can be used in ffmpeg 4.1+.
ffmpeg411="/c/Program Files/ffmpeg-4.1.1-win64-shared/bin/ffmpeg"
#
"${ffmpeg411}" -y -filter_complex "
amovie='input.mp4'
,acrossover=split='110|220|880|1500'[ab0_0][ab1_0][ab2_0][ab3_0][ab4_0];
[ab0_0]aformat=channel_layouts=stereo[ab0];
[ab1_0]aformat=channel_layouts=stereo[ab1];
[ab2_0]aformat=channel_layouts=stereo[ab2];
[ab3_0]aformat=channel_layouts=stereo[ab3];
[ab4_0]aformat=channel_layouts=stereo[ab4];
[ab0][ab1][ab2][ab3][ab4]amerge=5[sm];
[sm]pan='stereo|
c0 < 0.0 * c0 + 2.2 * c2 + 0.0 * c4 + 1.4 * c6 + 1.0 * c8
|
c1 < 2.2 * c1 + 0.0 * c3 + 1.4 * c5 + 0.0 * c7 + 1.0 * c9'
,volume=3
,crossfeed=strength=0.2:range=0.5
,asplit=2[out1],channelsplit[a1][a2];
[a1]showcqt=s=1600x360,crop=1280:360:0,setsar=1[v1];
[a2]showcqt=s=1600x360,crop=1280:360:0,setsar=1,vflip[v2];
[v1][v2]vstack
[out0]
" -map '[out0]' -map '[out1]' output.mp4