用ffmpeg进行音频格式转换、剪切、合并、音量调整等

为什么网上一大堆类似文章,我还要再发一篇?主要是,ffmpeg是分版本的,在一个版本上能用的,在另外一个版本上,未必能用。

这里发布的命令行,在ffmpeg version 5.1-full_build下可以执行成功。该Build的下载链接是:

https://github.com/GyanD/codexffmpeg/releases/tag/5.1

【一些命令行的说明】

        -i 输入文件名称

        -ss 开始时间

        -t 剪切的时长

        -ar 音频抽样率

        -ac 音频Channel数

        -b:a 码率 kb/s

        -f 强制输出格式 例如mp3, wav等

        -map 提取视频-音频流的序号

【音频拼接】(将Box01.mp3和Box02.MP3合并程box.mp3)

ffmpeg -i "concat:Box01.mp3|Box02.mp3"  Box.mp3

【音频切割】(提取a.mp3从360秒开始对 230秒到b.mp3)

ffmpeg -i a.mp3 -ss 360 -t 230 b.mp3

【音量调整】(音量256为原始音量,如果要调整到两倍音量,则设置为512,调整到一半音量,则设为128,下面为减小一半音量的命令)

ffmpeg -i Box.mp3 -vol 128 box3.mp3

ffmpeg -i a.mp3 -af volume=-20dB b.mp3

dB的换算公式
1.1 dB = 1.1 倍,2 dB = 1.25倍,3 dB = 1.4倍,6 dB = 2 倍,10 dB = 3 倍,20 dB = 10 倍,30 dB = 30 倍。其它就可以用上述数值换算,并不困难。(反过来 – 6 dB 就是 1/2 = 0.5)
2.在换算时要把握一个原则,dB数值的相加 等于 倍数的相乘。
例如:40 dB = 20dB + 20 dB = 10 * 10 = 100 倍
-20dB谱宽就是信号衰减到十分之一时的频谱带宽。

【音频格式转换】(将a.mp3转化程a.wav,设定抽样率为16000)

ffmpeg -i a.mp3 -ar 16000 -ac 1 a.wav

(将Frozen.mka转化成a.mp3)

ffmpeg -i Frozen.mka -ar 16000 -f mp3 a.mp3

【从视频文件中提取音频】(从Frozen.2013.mkv中,提取音频文件,保存为a.1.mp3)

ffmpeg -i Frozen.2013.mkv -map 0:1 -b:a 64k -f mp3 a.1.mp3

视频里面,包含的视频流、音频流如下:

encoder         : libebml v1.2.3 + libmatroska v1.3.0
Duration: 01:42:13.09, start: 0.000000, bitrate: 2954 kb/s
Stream #0:0: Video: h264 (High), yuv420p, 1024x576 [SAR 1:1 DAR 16:9], 23.98 fps
Stream #0:1(eng): Audio: ac3, 48000 Hz, 384 kb/s (default)  title           : 英语
Stream #0:2(chi): Audio: ac3, 48000 Hz, 384 kb/s                  title           : 台配
Stream #0:3(chi): Audio: ac3, 48000 Hz, 384 kb/s                  title           : 粤语

猜你喜欢

转载自blog.csdn.net/xingfei_byte/article/details/126539152