Когда я использую ffmpeg для преобразования аудиофайла с опцией
-acodec libfaac -ab 192k
и используйте
ffmpeg -i
на том файле впоследствии для получения информации звукового файла это говорит мне
bitrate: 152 kb/s
Почему ist это? Я пропускаю что-то здесь? Если я хочу преобразовать файл со скоростью передачи 192 КБ, это должно дать мне 192 кбита после преобразования, не так ли?
Или: Как я получаю уровень на 192 кбита затем?
В настоящее время существуют гораздо лучшие кодеры 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 ...
Ссылки:
Для высоких и низких битрейтов вы должны указать другую частоту среза. без частоты среза этот пример приводит к максимальной скорости передачи битов 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 кГц. При использовании более низкой частоты дискретизации битрейт будет / также может быть ниже.
Я не могу дать более подробное объяснение, но несколько мест (например, [ 1 ]) упоминают:
Обратите внимание, что максимальная средняя скорость передачи (какая -ab указывает в контексте libfaac) составляет 152 кбит / с. Установка этого значения будет игнорироваться, и будет использоваться 152 кбит / с.
BLOCKQUOTE>