Кодирование VBR с использованием собственного кодека AAC ffmpeg

Кодирование VBR с использованием собственного кодека AAC ffmpeg

Я установил ffmpeg v4 из репозитория Ubuntu launchpad ppa:jonathonf/ffmpeg-4, но в него не libfdk_aacвключен кодек:

$ ffmpeg -version | grep -i aac
$

EDIT 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)
$

Поэтому мне приходится использовать собственный кодек AAC ffmpeg.

Я пробовал с -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)

$

Как выполнить кодирование VBR AAC с помощью собственного ffmpegкодировщика?

решение1

-vbrявляется частной опцией для кодировщика libfdk_aac, поэтому она недоступна для собственного кодировщика FFmpeg AAC.

В соответствии сFFmpeg Вики: AAC

Переменная скорость передачи данных (используется -q:a):

ffmpeg -i input.wav -c:a aac -q:a 2 output.m4a

Эффективный диапазон -q:aсоставляет около 0,1-2. Этот VBR является экспериментальным и, вероятно, даст даже худшие результаты, чем CBR.

Я не проверял эту информацию в Википедии.

Связанный контент