FFmpeg音频相关的常用命令
音频切片
# 从第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使用输入文件
创建文件
inputs.txt,内容如下:file 'input1.mp3' file 'input2.mp3'运行命令:
ffmpeg -f concat -safe 0 -i inputs.txt -c copy output.mp3
给音频放大音量
1. 按倍数放大(推荐)
ffmpeg -i input.mp3 -af "volume=2.0" output.mp3volume=2.0:音量放大2倍(线性增益)。优点:直观控制放大倍数。
2. 按分贝(dB)放大
ffmpeg -i input.mp3 -af "volume=6dB" output.mp3volume=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.mp3alimiter:限制峰值,防止破音。limit=0.5:设置最大输出幅度为0.5(范围0-1)。
分析音频的音量信息
ffmpeg -i input.mp3 -filter:a "volumedetect" -f null /dev/null
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Ryan的折腾日记
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果