ffmpeg windows 安装
下载
https://ffmpeg.zeranoe.com/builds/ 点击下载 windows 安装包
就是一个静态的包,直接解压即可。
windows 路径:
1C:\Users\binbin.hou\Downloads\ffmpeg-20200403-52523b6-win64-static\bin\ffmpeg.exe
格式转换
基本命令
1ffmpeg -i out.ogv -vcodec h264 out.mp4
-i 后面是输入文件名。-vcodec 后面是编码格式,h264 最佳,但 Windows 系统默认不安装。
如果是要插入 ppt 的视频,选择 wmv1 或 wmv2 基本上万无一失。
mp3 常见转换
- 转换mp3到wav:
1ffmpeg -i DING.mp3 -f wav test.wav
1ffmpeg -i test.mp3 -f wav test.wav
- 转换wav到mp3:
1ffmpeg -i test.wav -f mp3 -acodec libmp3lame -y wav2mp3.mp3
移除静音帧
命令模板
1ffmpeg -i āo.mp3 -af silenceremove=start_periods=1:start_threshold=-0dB:stop_periods=0:stop_threshold=-10dB:start_silence=0.2:stop_silence=1 -y āo2.mp3
删除 50 分贝以下的读音
1
2
3
4
5<<<<<<< HEAD
ffmpeg -i a.mp3 -af silenceremove=1:0:-50dB a_50.mp3
=======
ffmpeg -i āo.mp3 -af silenceremove=1:0:-50dB output.mp3
>>>>>>> a7f5620b7ce8e5246c17597b275931e5d79ab879
这消除了沉默
在开头(由第一个参数1表示)
最小长度为零(由第二个参数0表示)
静音被归类为-50分贝以下的任何值(以-50dB表示).
官方文档:ffmpeg-filters
实际例子
1ffmpeg -i bài.mp3 -af silenceremove=start_periods=1:start_threshold=-30dB:stop_periods=0:stop_threshold=-50dB:start_silence=0.2:stop_silence=1 -y a_2.mp3
静音消除文档
消除音频开头,中间或结尾的静音。
参数
过滤器接受以下选项:
- start_periods
此值用于指示是否应在音频开始时修剪音频。零值表示不应从一开始就修剪静默。指定非零值时,它将修剪音频,直到发现非静音为止。
通常,从音频开始修剪静音时,start_periods将为1,但可以将其增大为更高的值,以将所有音频修剪到特定的非静音周期数。
预设值为0。
- start_duration
指定在停止修剪音频之前必须检测到的无声时间。通过增加持续时间,可以将突发的噪声视为静默并消除。预设值为0。
start_threshold
这表明应将哪些采样值视为静音。对于数字音频,值为0可能很好,但对于从模拟录制的音频,您可能希望增加该值以解决背景噪音。
可以以dB(如果在指定值后面附加“ dB”)或幅度比来指定。预设值为0。
- start_silence
指定开始时的最大静音持续时间,微调后将保留该最长持续时间。默认值为0,等于修剪所有检测为静音的样本。
start_mode
指定多声道音频开始时静音结束的检测模式。可以是任何或全部。默认为任何。对于任何样本,任何被检测为非静音的样本都将导致静音调整停止。总而言之,只有将所有通道检测为非静音时,才会导致静音调整停止。
stop_periods
设置从音频结尾处修剪静音的计数。要从文件中间消除静默,请指定一个stop_periods为负数。然后将此值视为正值,并用于指示效果应按start_periods指定的那样重新开始处理,使其适合于消除音频中间的静默时段。预设值为0。
stop_duration
指定不再复制音频之前必须存在的静音持续时间。通过指定较长的持续时间,可以在音频中保留所需的静音。预设值为0。
stop_threshold
这与start_threshold相同,但用于从音频结尾处修剪静音。可以以dB(如果在指定值后面附加“ dB”)或幅度比来指定。预设值为0。
stop_silence
指定结束后将保持的最大静音持续时间。默认值为0,等于修剪所有检测为静音的样本。
stop_mode
指定在多声道音频结束时开始静音检测的模式。可以是任何或全部。默认为任何。对于任何样本,任何被检测为非静音的样本都将导致静音调整停止。总而言之,只有将所有通道检测为非静音时,才会导致静音调整停止。
detection
设置如何检测静音。可以是均方根或峰值。第二个更快,并且在数字静音(正好为0)的情况下效果更好。默认值为rms。
window
设置持续时间(以秒为单位),以秒为单位来计算窗口大小(以样本数量为单位)以检测静音。默认值为0.02。允许范围是0到10。
例子
以下示例说明了如何使用此过滤器来开始录制,该录制不包含通常在按下“录制”按钮和演奏开始之间的启动延迟。
1silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
从头到尾修剪音频中超过1秒的所有静音
1silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
从头到尾使用峰值检测修剪所有数字静音样本,直到音频中的数字静音样本超过0个,并且在流中相同位置的所有通道中检测到数字静音
1silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
实战案例
- 结尾处的小于 30db 的声音
1ffmpeg -i āo.mp3 -af silenceremove=stop_periods=-1:stop_duration=0.01:stop_threshold=-30dB ao_19.mp3
ps: 真实有效。
1ffmpeg -i abandons.mp3 -af silenceremove=stop_periods=-1:stop_duration=0.01:stop_threshold=-40dB abandons_last3.mp3
声音的处理:
有时候一个声音很轻,可能也是有用的。比如:nice 的尾音。
1ffmpeg -i nice.mp3 -af silenceremove=stop_periods=-1:stop_duration=0.01:stop_threshold=-44dB nice_44.mp3
- 同时指定开头
从音频开始修剪静音时,start_periods将为1,但可以将其增大为更高的值,以将所有音频修剪到特定的非静音周期数。
1ffmpeg -i a.mp3 -af silenceremove=start_periods=1:start_duration=0.05:start_threshold=0.02 a2.mp3
这里移除的是开始的播放延迟。
- 移除开头的信息
1ffmpeg -i a.mp3 -af silenceremove=start_periods=1:start_duration=0.1:start_threshold=-20dB a4.mp3
音呗大小
1
2
3
4
5
6
7
8
9
10
11
12
13
14
151分贝 刚能听到的声音
15 分贝以下 感觉安静
30 分贝 耳语的音量大小
40 分贝 冰箱的嗡嗡声
60分贝 正常交谈的声音
70分贝 相当于走在闹市区
85分贝 汽车穿梭的马路上
95分贝 摩托车启动声音
100分贝 装修电钻的声音
110分贝
卡拉OK、大声播放MP3 的声音
120分贝
飞机起飞时的声音
150分贝
燃放烟花爆竹的声音
截取
这时候就需要一些处理音效的软体,例如之前提过的Audacity。其实还有更简便的方法,只要系统中有安装好的ffmpeg,一行指令就OK了,相当简单。让我们分成两步骤来完成他吧!
第一步先用播放软体将想要处理的音乐档桉听一次,把想独立出来部份的时间记下来,看是几分几秒到几分几秒。
记好后,第一步也就完成了
第二步就是下指令了。
1ffmpeg -i input.mp3 -ss hh:mm:ss -t hh:mm:ss -acodec copy output.mp3
参数说明:
-ss : 指定从那裡开始
-t : 指定到那裡结束
-acodec copy : 编码格式和来源档桉相同(就是mp3)
这方法不只是MP3可以用,其他的许多格式也都适用,只是输出档桉的副档名就要跟着改一改了。
以下举个例子,如果我想把aa.mp3中的1分12秒到1分42秒的地方切出来,然后存成bb.mp3,指令如下
1ffmpeg -i āo.mp3 -ss 00:00:00.130 -t 00:00:00.450 ao_sub.mp3
时间格式如下:
1"hh:mm:ss[:;.]ff"
后面跟的是毫秒。