Кодирование VBR с помощью встроенного кодека AAC ffmpeg
Я установил ffmpeg v4 с панели запуска Ubuntu ppa:jonathonf/ffmpeg-4
хранилище, но оно не имеет libfdk_aac
кодек в комплекте:
$ ffmpeg -version | grep -i aac
$
РЕДАКТИРОВАТЬ 1:
$ 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 -codecs | egrep -i "aac|="
D..... = Decoding supported
.E.... = Encoding supported
..V... = Video codec
..A... = Audio codec
..S... = Subtitle codec
...I.. = Intra frame-only codec
....L. = Lossy compression
.....S = Lossless compression
DEA.L. aac AAC (Advanced Audio Coding) (decoders: aac aac_fixed )
D.A.L. aac_latm AAC LATM (Advanced Audio Coding LATM syntax)
$
Итак, я должен использовать собственный кодек AAC ffmpeg.
Я попробовал это с -vbr
аргумент со значением от 1 до 5, но битрейт результата не изменяется.
Как я могу сделать кодирование VBR AAC с родным ffmpeg
кодировщик?
1 ответ
Решение
-vbr
является частной опцией для кодировщика libfdk_aac, поэтому он недоступен для встроенного кодера FFmpeg AAC.
Согласно FFmpeg Wiki: AAC
Переменная скорость передачи (с использованием
-q:a
):ffmpeg -i input.wav -c:a aac -q:a 2 output.m4a
Эффективный диапазон для
-q:a
составляет около 0,1-2. Этот VBR является экспериментальным и может получить еще худшие результаты, чем CBR.
Я не проверял эту вики-информацию.