使用ffmpeg分析修改音频 ffmpeg -layouts查看音频的布局情况
1.双声道合并单声道
ffmpeg -i music.mp3 -ac 1 music.aac
2.双声道的提取
-map_channel [input_file_id.stream_specifier.channel_id|-1][?][:output_file_id.stream_specifier]
方式一:
ffmpeg -i music.mp3 -map_channel 0.0.0 letf.aac -map_channel 0.0.1 right.aac
方式二:
使用pan滤镜
http://ffmpeg.org/ffmpeg-all.html#pan-1
ffmpeg -i music.mp3 -filter_complex "[0:0]pan=1c|c0=c0[left];[0:0]pan=1c|c0=c1[right]" -map "[left]" left.aac -map "[right]" right.aac -y
3.双声道转双音频流,把双声道音频提取出来转为一个音频文件两个音频流
ffmpeg -i music.mp3 -filter_complex channelsplit=channel_layout=stereo output.mka
可以看到生成的视频就包含了两个流,大多默认情况下播放器只会播放第一个流
单声道转双声道
ffmpeg -i left.aac -ac 2 output.m4a
-ac :指定声道数
将两个音频源合并为双声道
ffmpeg -i left.aac -i right.aac -filter_complex "[0:a][1:a]amerge=inputs=2[aout]" -map "[aout]" output.mka
//mka为acc编码格式
4.音频音量探测
ffmpeg -i test.mp4 -filter_complex volumedetect -c:v copy -f null /dev/null
如下图: mean_volume为获得音频的平均大小
【后台扣1,资料免费分享】资料包括《Andoird音视频开发必备手册+音视频学习视频+学习文档资料包+大厂面试真题+2022最新学习路线图》等
5.绘制音频波形图 (多声道混合)
ffmpeg -i music.mp3 -filter_complex "showwavespic=s=640*120" -frames:v 1 output.png
绘制不同声道的波形图
ffmpeg -i 1.mp3 -filter_complex "showwavespic=s=640*240:split_channels=1" -frames:v 1 output.png
6.音量设置
声音音量应该仔细调整,以保护我们的耳朵和ffmpeg提供2种方法。第一个使用-vol选项,它接受从0到256的整数值,其中256是最大值
ffmpeg -i music.mp3 -vol 30 sound_low.mp3
另一种方法是使用表中描述的卷过滤器:
音量降低到三分之二
ffmpeg -i music.mp3 -af volume=2/3 quiet_music.mp3
增加10分贝的音量
ffmpeg -i music.mp3 -af volume=10dB louder_sound.mp3
7.加快/减慢音频节奏
参数
atempo 值范围0.5-2.0
加快ffplay music.mp3 -af atempo=1.5
减慢 ffplay music.mp3 -af atempo=0.5
8.chorus 给声音添加合唱效果
可以让独唱变得像合唱,但也可以用于仪表。
合唱与回声效应都有短延迟,但是回波延迟是常数,合唱则采用不同的正弦或三角调制。调制深度范围定义了调制延迟(播放之前或之后的延迟)。因此延迟的声音听起来较慢或更快,这是原来周围的延迟调整声音,像是有一个与合唱整体略微差异。
它接受下面的参数(每个参数项如果有多个可能值用|分隔):
in_gain
设置输出增益,默认0.4
out_gain
设置输出增益,默认0.4
delays
设置延迟,延迟通常在40ms-60ms
decays
设置衰减
speeds
设置速度
depths
设置深度
例子
一个延迟(二人合唱效果)
chorus=0.7:0.9:55:0.4:0.25:2
两个延迟(三人合唱效果)
ffplay music.mp3 -af "chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3”
三个延迟(四人及更多合唱效果)
horus=0.5:0.9:50|60|40:0.4|0.32|0.3:0.25|0.4|0.3:2|2.3|1.3
9.使用多媒体滤镜 ebur128分析音频响度变化
ebur128扫描滤镜。这个滤镜需要一个音频流,但会原样输出。默认情况下,它以10Hz的频率记录一条消息,其中包括瞬时响度(由M标识)、短期响度(S)、综合响度(I)和响度范围(LRA)。
滤镜有个实时的输出,展示响度的变化,主要的绘图区域包含短期响度(3秒分析),以及其后的舒适响度(400毫秒)
具体参数:https://ffmpeg.org/ffmpeg-all.html#ebur128-1
ffmpeg -nostats -i stars.mp3 -filter_complex ebur128 -f null -
加-report可把结果输出到日志文件
利用EBU放缩规模计+18d的实时图像
ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"