ffmpeg音频合成命令全集
等有时间了再将其翻译一下,源网址->传送门
stereo → mono stream
Mix a single stereo
stream down to …
等有时间了再将其翻译一下,源网址->传送门
stereo → mono stream #
![stereo to mono diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/stereo_mono.png)Mix a single stereo
stream down to a mono stream. Both channels of the stereo stream will be
downmixed into the stream:
ffmpeg -i stereo.flac -ac 1 mono.flac
Note: Any out of phase stereo will cancel out.
stereo → 2 × mono files #
![stereo to 2 mono outputs diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/stereo_2mono_outputs.png)Output each
channel in stereo input to individual mono files:
ffmpeg -i stereo.wav -map_channel 0.0.0 left.wav -map_channel 0.0.1 right.wav
or with the pan audio filer:
ffmpeg -i stereo.wav -filter_complex "[0:0]pan=1c|c0=c0[left];[0:0]pan=1c|c0=c1[right]" -map "[left]" left.wav -map "[right]" right.wav
stereo → 2 × mono streams #
![stereo to 2 mono streams diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/stereo_2mono_streams.png)Output each
channel in stereo input to individual mono streams in one output file with the
channelsplit audio filter:
ffmpeg -i in.mp3 -filter_complex channelsplit=channel_layout=stereo out.mka
Note: Your player will likely play the first stream by default unless
your player allows you to select the desired stream.
mono → stereo #
![mono to stereo diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/mono_stereo.png)Create a stereo
output from one mono input:
ffmpeg -i input.mp3 -ac 2 output.m4a
or with the amerge audio filter:
ffmpeg -i input.mp3 -filter_complex "[0:a][0:a]amerge=inputs=2[aout]" -map "[aout]" output.m4a
Note: These examples will not magically create a “true” stereo output
from the mono input, but simply place the same audio into both the left and
right channels of the output (both channels will be identical).
2 × mono → stereo #
![2 mono files to stereo diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/2mono_stereo.png)Create a stereo
output from two mono inputs with the amerge audio filter:
ffmpeg -i left.mp3 -i right.mp3 -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" output.mka
6 × mono → 5.1 #
![6 mono inputs to 5.1 output](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/6mono_5point1.png)Combine 6 mono
inputs into one 5.1 (6 channel) output with the amerge audio filter:
ffmpeg -i front_left.wav -i front_right.wav -i front_center.wav -i lfe.wav -i back_left.wav -i back_right.wav \
-filter_complex "[0:a][1:a][2:a][3:a][4:a][5:a]amerge=inputs=6[aout]" -map "[aout]" output.wav
All inputs must have the same sample rate and format. If inputs do not have
the same duration the output will stop with the shortest.
5.1 → 6 × mono #
![5.1 to individual channels](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/5point1_6mono.png)Split a 5.1 channel
input into individual per-channel files:
ffmpeg -i in.wav \
-filter_complex "channelsplit=channel_layout=5.1[FL][FR][FC][LFE][BL][BR]" \
-map "[FL]" front_left.wav \
-map "[FR]" front_right.wav \
-map "[FC]" front_center.wav \
-map "[LFE]" lfe.wav \
-map "[BL]" back_left.wav \
-map "[BR]" back_right.wav
5.1 → stereo #
![5.1 to stereo diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/5point1_stereo.png)To downmix you can
simply use -ac 2
:
ffmpeg -i 6channels.wav -ac 2 stereo.wav
Notes:
- By default when using
-ac 2
the LFE channel is omitted. See “Digital Audio Compression Standard (Document A/52:2012)”, sections 6.1.12 and 7.8 for more downmixing info. ffmpeg
integrates a default down-mix (and up-mix) system that should be preferred (the-ac
option) over the pan filter unless you have very specific needs.
If you want to map specific channels and drop the rest you can use the pan
audio filter. This will map the FL
(Front Left) of the input to the FL
of
the output, and the FR
(Front Right) of the input to the FR
of the output:
ffmpeg -i 6channels.wav -af "pan=stereo|c0=FL|c1=FR" stereo.wav
You can also map specific channels by number. This example will map the first
and third channels of the input to the first and second channels of the
output.
ffmpeg -i 6channels.wav -af "pan=stereo|c0=c0|c1=c2" output.wav
If the =
in a channel specification is replaced by <
, then the gains for
that specification will be renormalized so that the total is 1, thus avoiding
clipping noise. See the pan audio filter documentation for additional
information and examples.
2 × stereo → stereo #
![2 stereo inputs to 1 stereo output diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/2stereo_stereo.png)Combine two stereo
inputs into one stereo output with the amerge and pan audio filters:
ffmpeg -i input1.wav -i input2.wav -filter_complex "[0:a][1:a]amerge=inputs=2,pan=stereo|c0<c0+c2|c1<c1+c3[aout]" -map "[aout]" output.mp3
Or use -ac 2
instead of the pan audio filter:
ffmpeg -i input1.wav -i input2.wav -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" -ac 2 output.mp3
Note: The output produced with the pan audio filter may not be identical
to the output produced with -ac 2
, so you’ll have to listen to your outputs
or view audio statistics to determine which output suits you.
![2 stereo inputs to 1 stereo output diagram, alt](https://trac.ffmpeg.org
/raw-attachment/wiki/AudioChannelManipulation/2stereo_stereob.png)A similar
situation as above, but instead use the left and right channels from the first
input to make the left channel out the output, and use the left and right
channels of the second input to make the right channel of the output. Just
change the channel specifications in the pan filter:
ffmpeg -i input1.wav -i input2.wav -filter_complex "[0:a][1:a]amerge=inputs=2,pan=stereo|c0<c0+c1|c1<c2+c3[aout]" -map "[aout]" output.mp3
The pan audio filter has to be used in this situation instead of -ac 2
unlike the previous example.
Mix both stereo channels to stereo #
![stereo to stereo mix diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/stereo_stereo_mix.png)The left and
right channels of the output will each contain both the left and right
channels of the input:
ffmpeg -i input.mp3 -af "pan=stereo|c0<c0+c1|c1<c0+c1" output.ogg
Switch stereo channels #
![switch stereo channels diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/switch_stereo_channels.png)Switch
left channel to right and right channel to left:
ffmpeg -i stereo.ogg -map_channel 0.0.1 -map_channel 0.0.0 output.wav
or with the pan audio filer:
ffmpeg -i stereo.ogg -af pan=stereo|c0=c1|c1=c0 output.wav
Virtual Binaural Acoustics #
FFmpeg can produce virtual binaural acoustics files using sofalizer filter,
most known channel layouts are supported for input, output is always stereo.
ffmpeg -i input.wav -af sofalizer=/path/to/sofa/file output.flac
SOFA files can be found on http://sofacoustics.org/data/database/ari/
Mute a channel #
![mute a stereo channel diagram](https://trac.ffmpeg.org/raw-
attachment/wiki/AudioChannelManipulation/mute_stereo_channel.png)This example
will mute the first channel (the left channel) but keep the second channel as
is:
ffmpeg -i stereo.wav -map_channel -1 -map_channel 0.0.1 output.wav
Statistics #
The astats audio filter can display information including length, DC offset,
min/max levels, peak/RMS level dB:
$ ffmpeg -i input.wav -af astats -f null -
…
[Parsed_astats_0 @ 0x168a260] Channel: 1
[Parsed_astats_0 @ 0x168a260] DC offset: -0.001829
[Parsed_astats_0 @ 0x168a260] Min level: -0.605072
[Parsed_astats_0 @ 0x168a260] Max level: 0.607056
[Parsed_astats_0 @ 0x168a260] Peak level dB: -4.335430
[Parsed_astats_0 @ 0x168a260] RMS level dB: -20.298984
[Parsed_astats_0 @ 0x168a260] RMS peak dB: -12.303891
[Parsed_astats_0 @ 0x168a260] RMS trough dB: -35.352893
[Parsed_astats_0 @ 0x168a260] Crest factor: 6.283154
[Parsed_astats_0 @ 0x168a260] Flat factor: 0.000000
[Parsed_astats_0 @ 0x168a260] Peak count: 2
[Parsed_astats_0 @ 0x168a260] Channel: 2
[Parsed_astats_0 @ 0x168a260] DC offset: -0.001826
[Parsed_astats_0 @ 0x168a260] Min level: -0.585999
[Parsed_astats_0 @ 0x168a260] Max level: 0.608490
[Parsed_astats_0 @ 0x168a260] Peak level dB: -4.314931
[Parsed_astats_0 @ 0x168a260] RMS level dB: -20.519969
[Parsed_astats_0 @ 0x168a260] RMS peak dB: -12.056472
[Parsed_astats_0 @ 0x168a260] RMS trough dB: -36.784681
[Parsed_astats_0 @ 0x168a260] Crest factor: 6.460288
[Parsed_astats_0 @ 0x168a260] Flat factor: 0.000000
[Parsed_astats_0 @ 0x168a260] Peak count: 2
[Parsed_astats_0 @ 0x168a260] Overall
[Parsed_astats_0 @ 0x168a260] DC offset: -0.001829
[Parsed_astats_0 @ 0x168a260] Min level: -0.605072
[Parsed_astats_0 @ 0x168a260] Max level: 0.608490
[Parsed_astats_0 @ 0x168a260] Peak level dB: -4.314931
[Parsed_astats_0 @ 0x168a260] RMS level dB: -20.408071
[Parsed_astats_0 @ 0x168a260] RMS peak dB: -12.056472
[Parsed_astats_0 @ 0x168a260] RMS trough dB: -36.784681
[Parsed_astats_0 @ 0x168a260] Flat factor: 0.000000
[Parsed_astats_0 @ 0x168a260] Peak count: 2.000000
[Parsed_astats_0 @ 0x168a260] Number of samples: 1440706
Layouts #
Output from ffmpeg -layouts
:
Individual channels:
NAME DESCRIPTION
FL front left
FR front right
FC front center
LFE low frequency
BL back left
BR back right
FLC front left-of-center
FRC front right-of-center
BC back center
SL side left
SR side right
TC top center
TFL top front left
TFC top front center
TFR top front right
TBL top back left
TBC top back center
TBR top back right
DL downmix left
DR downmix right
WL wide left
WR wide right
SDL surround direct left
SDR surround direct right
LFE2 low frequency 2
Standard channel layouts:
NAME DECOMPOSITION
mono FC
stereo FL+FR
2.1 FL+FR+LFE
3.0 FL+FR+FC
3.0(back) FL+FR+BC
4.0 FL+FR+FC+BC
quad FL+FR+BL+BR
quad(side) FL+FR+SL+SR
3.1 FL+FR+FC+LFE
5.0 FL+FR+FC+BL+BR
5.0(side) FL+FR+FC+SL+SR
4.1 FL+FR+FC+LFE+BC
5.1 FL+FR+FC+LFE+BL+BR
5.1(side) FL+FR+FC+LFE+SL+SR
6.0 FL+FR+FC+BC+SL+SR
6.0(front) FL+FR+FLC+FRC+SL+SR
hexagonal FL+FR+FC+BL+BR+BC
6.1 FL+FR+FC+LFE+BC+SL+SR
6.1(back) FL+FR+FC+LFE+BL+BR+BC
6.1(front) FL+FR+LFE+FLC+FRC+SL+SR
7.0 FL+FR+FC+BL+BR+SL+SR
7.0(front) FL+FR+FC+FLC+FRC+SL+SR
7.1 FL+FR+FC+LFE+BL+BR+SL+SR
7.1(wide) FL+FR+FC+LFE+BL+BR+FLC+FRC
7.1(wide-side) FL+FR+FC+LFE+FLC+FRC+SL+SR
octagonal FL+FR+FC+BL+BR+BC+SL+SR
hexadecagonal FL+FR+FC+BL+BR+BC+SL+SR+TFL+TFC+TFR+TBL+TBC+TBR+WL+WR