音频切片

# 从第30秒切到第2分钟(无损快速)
ffmpeg -i input.wav -ss 00:00:30 -to 00:02:00 -c copy output.wav

# 从第30秒切到第120秒(无损快速)
ffmpeg -i input.wav -ss 30 -to 120 -c copy output.wav

#切片并转换格式
ffmpeg -i input.mp3 -ss 00:08:00 -to 00:09:00 -c:a pcm_s16le -ar 16000 output.wav

音频格式转化

ffmpeg -i input.wav -q:a 0 output.mp3 

拼接两个音频

使用 concat 协议(适用于相同编码的音频)

ffmpeg -i "concat:input1.mp3|input2.mp3" -acodec copy output.mp3

使用 concat 滤镜(适用于不同编码的音频)

ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex "[0:a][1:a]concat=n=2:v=0:a=1" output.mp3

使用输入文件

  1. 创建文件 inputs.txt,内容如下:

    file 'input1.mp3'
    file 'input2.mp3'
  2. 运行命令:

    ffmpeg -f concat -safe 0 -i inputs.txt -c copy output.mp3

给音频放大音量

1. 按倍数放大(推荐)

ffmpeg -i input.mp3 -af "volume=2.0" output.mp3
  • volume=2.0:音量放大2倍(线性增益)。

  • 优点:直观控制放大倍数。

2. 按分贝(dB)放大

ffmpeg -i input.mp3 -af "volume=6dB" output.mp3
  • volume=6dB:音量增加6分贝(约等于线性放大2倍)。

  • 公式:倍数 = 10^(dB/20)(如6dB ≈ 2倍)。

3. 避免削波(Clipping)

如果音量过大导致失真,可添加限幅器:

ffmpeg -i input.mp3 -af "volume=3.0,alimiter=level_in=1:level_out=1:limit=0.5" output.mp3
  • alimiter:限制峰值,防止破音。

  • limit=0.5:设置最大输出幅度为0.5(范围0-1)。


分析音频的音量信息

ffmpeg -i input.mp3 -filter:a "volumedetect" -f null /dev/null