我从 Ubuntu 启动板ppa:jonathonf/ffmpeg-4
存储库安装了 ffmpeg v4,但它没有libfdk_aac
包含编解码器:
$ ffmpeg -version | grep -i aac
$
编辑1:我的系统上的 ffmpeg AAC 编码器:
$ ffmpeg -encoders | egrep -i "aac| ="
V..... = Video
A..... = Audio
S..... = Subtitle
.F.... = Frame-level multithreading
..S... = Slice-level multithreading
...X.. = Codec is experimental
....B. = Supports draw_horiz_band
.....D = Supports direct rendering method 1
A..... aac AAC (Advanced Audio Coding)
$
所以,我必须使用 ffmpeg 原生 AAC 编解码器。
我尝试使用-vbr
从 1 到 5 的参数,但结果比特率没有改变。
EDIT2:我找到了该编码器的文档:
$ ffmpeg -hide_banner -h encoder=aac
Encoder aac [AAC (Advanced Audio Coding)]:
General capabilities: delay small
Threading capabilities: none
Supported sample rates: 96000 88200 64000 48000 44100 32000 24000 22050 16000 12000 11025 8000 7350
Supported sample formats: fltp
AAC encoder AVOptions:
-aac_coder <int> E...A...... Coding algorithm (from 0 to 2) (default fast)
anmr 0 E...A...... ANMR method
twoloop 1 E...A...... Two loop searching method
fast 2 E...A...... Default fast search
-aac_ms <boolean> E...A...... Force M/S stereo coding (default auto)
-aac_is <boolean> E...A...... Intensity stereo coding (default true)
-aac_pns <boolean> E...A...... Perceptual noise substitution (default true)
-aac_tns <boolean> E...A...... Temporal noise shaping (default true)
-aac_ltp <boolean> E...A...... Long term prediction (default false)
-aac_pred <boolean> E...A...... AAC-Main prediction (default false)
-aac_pce <boolean> E...A...... Forces the use of PCEs (default false)
$
如何使用本机ffmpeg
编码器进行 VBR AAC 编码?
答案1
-vbr
是编码器 libfdk_aac 的私有选项,因此它不适用于原生 FFmpeg AAC 编码器。
可变比特率(使用
-q:a
):ffmpeg -i input.wav -c:a aac -q:a 2 output.m4a
有效范围
-q:a
约为 0.1-2。此 VBR 是实验性的,可能会得到比 CBR 更差的结果。
我没有验证该 wiki 信息。