为什么网上一大堆类似文章,我还要再发一篇?主要是,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 : 粤语