опции ffmpeg:-acodec libfaac-ab 192k производят файлы на 150 кбит?

Когда я использую ffmpeg для преобразования аудиофайла с опцией

-acodec libfaac -ab 192k 

и используйте

ffmpeg -i 

на том файле впоследствии для получения информации звукового файла это говорит мне

bitrate: 152 kb/s

Почему ist это? Я пропускаю что-то здесь? Если я хочу преобразовать файл со скоростью передачи 192 КБ, это должно дать мне 192 кбита после преобразования, не так ли?

Или: Как я получаю уровень на 192 кбита затем?

6
задан 4 January 2011 в 15:39

3 ответа

В настоящее время существуют гораздо лучшие кодеры aac для Linux, такие как NeroAacEnc или fdkaac, но если вы все еще заинтересованы в использовании faac, есть патч, который означает, что faac может кодировать с битрейтом 192k, а также намного выше. Раньше Handbrake использовал этот патч и размещал его на своем сайте, но разработчики прекратили поддержку faac, теперь я размещаю патч здесь:

http://www.andrews-corner.org/patches/ A00-bitrates.patch

Патч Faac, а затем скомпилируйте FFmpeg с - enable-libfaac , и вы можете получить файлы aac с высоким битрейтом с Faac. Вот пример кодирования с пропатченным faac, кодирование непосредственно с faac:

andrew@skamandros~/media$ faac -b 192 -o test.m4a test.wav 
Freeware Advanced Audio Coder
FAAC 1.28

Average bitrate: 192 kbps
Quantization quality: 100
Bandwidth: 20872 Hz
Object type: Low Complexity(MPEG-4) + M/S
Container format: MPEG-4 File Format (MP4)
Encoding test.wav to test.m4a
   frame          | bitrate | elapsed/estim | play/CPU | ETA
11720/11720 (100%)|  192.0  |   21.7/21.7   |   12.52x | 0.0  

andrew@skamandros~/media$ 

И это работает также с FFmpeg. Но сейчас определенно есть лучшие кодировщики AAC ...

Ссылки:

0
ответ дан 4 January 2011 в 15:39

Для высоких и низких битрейтов вы должны указать другую частоту среза. без частоты среза этот пример приводит к максимальной скорости передачи битов 166 кбит / с (+ 2 кбит / с служебной информации мультиплексирования):

ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 210k out.mp4

size=     308kB time=00:00:15.01 bitrate= 168.0kbits/s

Когда я задаю частоту среза для половины частоты дискретизации, я могу перейти до 210 кбит / s

ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 210k -cutoff 24k out.mp4

size=     388kB time=00:00:15.01 bitrate= 211.7kbits/s

Аналогично, значение по умолчанию не будет ниже 64,5 кбит / с:

ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 20k out.mp4

size=     122kB time=00:00:15.01 bitrate=  66.4kbits/s

Но если я установлю очень низкую частоту среза, я могу получить 20 кбит / с:

ffmpeg.exe -y -i input.ts -vn -c:a libfaac -ar 48k -b:a 20k -cutoff 1k out.mp4

size=      40kB time=00:00:15.01 bitrate=  21.9kbits/s

В этих примерах я использовал частоту дискретизации 48 кГц. При использовании более низкой частоты дискретизации битрейт будет / также может быть ниже.

0
ответ дан 4 January 2011 в 15:39

Я не могу дать более подробное объяснение, но несколько мест (например, [ 1 ]) упоминают:

Обратите внимание, что максимальная средняя скорость передачи (какая -ab указывает в контексте libfaac) составляет 152 кбит / с. Установка этого значения будет игнорироваться, и будет использоваться 152 кбит / с.

0
ответ дан 4 January 2011 в 15:39

Другие вопросы по тегам:

Похожие вопросы: