![]() |
#1 |
Главный Кинооператор
![]() |
![]() Кодек AAC очень хорош. Даже его первая версия AAC LC гораздо лучше чем AC3. Плохие отзывы о AAC обусловлены тем что у AAC много энкодеров и они сильно отличаются по качеству. Стандартные энкодеры вшитые в стандартные версии OpenSource приложения типа ffmpeg, Handbrake и другие - среднего качества. В проприетарные взломанные или фримиум программы часто вставляют старые версии кодеков, которые выдавали поток не соответствующий стандарту. Ну и железные плееры тоже первое время не блестали качеством воспроизведения AAC. Все эти проблемы уже в прошлом, главное не использовать кривые энкодеры.
На данный момент самыми качественными(из бесплатных) энкодерами AAC являются энкодеры: 1) Apple(QAAC, QuickTime AAC, aac_at, Apple AAC,audiotoolbox Encoder) 2) Fraunhofer FDK AAC (FDK AAC, libfdk_aac) - не путать с "Fraunhofer FhG AAC"(платный энкодер от Fraunhofer) и не путать с FAAC(Free AAC, libfaac). Оба энкодера просто так не достать и это и плохая и хорошая новость. Плохая новость очевидна. Хорошая же новость заключается в том что именно этот факт объясняет почему AAC иногда некачественный из-за легкодоступных плохих энкодеров и вытекающую из этого нелюбовь пользователей к кодеку. И эту проблему можно решить! Давайте я расскажу Вам как заполучить эти энкодеры. I) Энкодер от Apple. Лучший энкодер AAC на средних и средне-высоких битрейтах. 1) MacOS/OSX а) Каких-нибудь GUI приложений Например сразу из проводника Finder-а: https://www.techjunkie.com/convert-e...c-os-x-finder/ там немного вариантов битрейта. Или в Handbrake https://handbrake.fr/docs/en/latest/...io-codecs.html Фраза "On Mac, HandBrake uses Apple’s CoreAudio AAC encoder." говорит о том что используется внутренний энкодер Apple. б) ffmpeg. Из brew лучше не устанавливать, потому что там плохо согласованы зависимости Лучше скачать готовые сборки, например: https://evermeet.cx/ffmpeg/ Для базовых функций синтаксис такой же привычный. Только надо указать энкодер "aac_at". Например для постоянного битрейта: ffmpeg -i input.wav -c:a aac_at -b:a 160k output.m4a Энкодер Apple AAC имеет режимы. Например стерео в режиме AAC LC имеет шаги 128кбит/с, 144кбит/с и так далее. И если задать 140 кбит/с, то конвертация запуститься, но примет режим 144кбит/с (о чём ffmpeg оповестит дополнительно). в) Коммандная утилита afconvert в базовой поставке MacOS https://ss64.com/mac/afconvert.html https://wiki.hydrogenaud.io/index.php?title=Apple_AAC Замороченная. Но тонких режимов настройки побольше чем при использовании в QuickTime, ffmpeg. Есть режим TVBR - TrueVBR - True Variable BitRate- "Настоящий переменный битрейт" который подразумевает более широкий разброс битрейта чем при VBR и вроде бы качество повыше при одинаковом битрейте. 2) Windows г) QAAC - обёртка над QuickTime для Windows. Скорее всего надо будет скачать QuickTime и выдрать пару файликов. https://github.com/nu774/qaac/wiki д) Запуск MacOS в виртуальной машине. VirtualBox, VMware. А оттуда уже всё что можно запустить всё что перечисленно в MacOS 3) Linux е) Запуск QAAC в Wine https://www.andrews-corner.org/qaac.html https://github.com/ishehadeh/install-qaac.sh ж) Запуск MacOS в виртуальной машине. VirtualBox, VMware. А оттуда уже всё что можно запустить всё что перечисленно в MacOS II) Fraunhofer FDK AAC (FDK AAC, libfdk_aac). В общем можно скомпилить самому. Это можно сделать по стандартному скрипту для ffmpeg с одним дополнительным параметром, либо использовать упрощенные скрипты/медиа. 1) Windows а) Готовые сборки ffmpeg https://github.com/marierose147/ffmp...k_aac/releases б) Готовые сборки Handbrake(и FFmpeg заодно) https://github.com/FT129/Handbrake-a...k-aac/releases в) Собрать самому сборку ffmpeg с поддержкой FDK AAC https://github.com/m-ab-s/media-autobuild_suite https://superuser.com/questions/1425...cygwin-windows 2) Linux г) Собрать самому сборку ffmpeg с поддержкой FDK AAC https://github.com/markus-perl/ffmpeg-build-script д) Использовать/собрать другие различные утилиты(не ffmpeg) https://wiki.hydrogenaud.io/index.ph...nhofer_FDK_AAC 3) MacOS/OSX е) Собрать самому сборку ffmpeg с поддержкой FDK AAC https://github.com/markus-perl/ffmpeg-build-script ж) или использовать QAAC =))) ![]() Разные варианты имеют разные возможности помимо AAC LC. Есть ещё HE-AAC, HE-AAC v2, xHE-AAC. Но для целей использования аудио в фильмах/сериалах для бОльшей совместимости лучше использовать только AAC LC. Если хочется использовать что-то особо новое, то лучше использовать Opus. Хотя для второстепенных дорожек типа оригинальной английской можно использовать и AAC HE v1, HE v2, xHE. Полезные ссылки и команды посмотреть список доступных энкодеров ffmpeg и отфильтровать только те которые имеют в названии "aac" ffmpeg -hide_banner -encoders | grep aac Также есть ещё платный Fraunhofer FhG (не путайте FDK и FhG), который ещё сложней достать. Если есть вопросы или есть ссылки на программы с вышеописанными кодеками - пишите в тему. |
![]() |
![]() |
#2 |
Заблокирован
![]() |
А почему не упомянуты последние из этого семейства USAC (xHE-AAC)? И про сложность "добычи" платных энкодеров на пиратском ресурсе смешно писать.
|
![]() |
![]() |
#4 |
Главный Кинооператор
|
Интересная статья. Сам пользуюсь fdkaac для Windows, но не вшитый в ffmpeg, последний медленно кодирует на моем компьютере, вне зависимости от сборки, перепробовал штуки три. Пришёл к отдельной библиотеке с командной строкой от nu774. Время на кодинг сократилось с 2 мин до 20 сек для дорожек продолжительностью примерно 20 мин. Без проблем подружил её с Audacity.
https://github.com/nu774/fdkaac - Интерфейс кодировщика командной строки для libfdk-aac https://www.rarewares.org/files/aac/...-1.0.5-x86.zip - библиотека fdk-aac 2.0.2 с консолью от nu774 скомпилированная под Windows х32 https://www.rarewares.org/files/aac/...-1.0.5-x64.zip - библиотека fdk-aac 2.0.2 с консолью от nu774 скомпилированная под Windows х64 |
![]() |
![]() |
#5 |
Главный Кинооператор
![]() |
xHE упомянул. Там сложности и с тем чтобы найти/установить и с тем чтобы воспроизвести. Экономия уже практическ на спичках. Проще взять OPUS. Но если Вы выложите инструкцию как это сделать - кому-то может быть пригодится. |
![]() |
![]() |
#6 |
Главный Кинооператор
![]() |
Да, если массово кодировать и есть желание разбираться с доками на консольные утилиты помимо ffmpeg - можно попробовать и другие утилиты. Mac'овский(Apple-вский) кодировщик кстати тоже не медленный. Даже через ffmpeg.
За ссылочки спасибо - может кому пригодятся. Есть сборки каких нибудь GUI программ для этого кодека? Я знаю тех кому пригодилось бы. Поискал - нету. Хоть самому писать на каком-нибудь Tkinter. |
![]() |
![]() |
#7 |
Главный Кинооператор
|
![]() ![]() Последний раз редактировалось EvraGo, 07.06.2024 в 18:11. |
![]() |
![]() |
#8 |
Главный Кинооператор
![]() |
Спасибо за примеры! Было бы круто если бы скинулы ссылки на инструкции и если они на английском - то тезисно описали бы здесь на русском что и куда надо "вбить".
|
![]() |
![]() |
#9 |
Главный Кинооператор
|
1. Нам нужен сам Audacity - бесплатный звуковой редактор. Сейчас использую Alpha версию 3.6.0 программы. У меня на предыдущих стабильных версиях наблюдаются сильные подлагивания интерфейса, думаю все зависит от конфигурации ПК. Официальная станица Audacity с инструкциями . Поможет разобраться с тонкостями программы. 2. Дальше надо подключить к Audacity ffmpeg, вот инструкция, а именно пункт Manual installation (Ручная установка). Разработчики с радостью добавили бы её в программу, но лицензия не позволяет. Зато оставили возможность отдельно её подгружать. Без ffmpeg мы не сможем работать с некоторыми аудиоформатами, в том числе и с популярным AC-3 и AAC. Я использую сборку от gyan.dev ffmpeg-6.1.1-full_build-shared.7z. Если все правильно сделали в настройках "Библиотеки" будет отображаться версия ffmpeg и в "Экспорт аудиоданных" появятся новые пункты. ![]() ![]() 3. (Дополнительный пункт). Тут будет разъяснение, что же такое "внешняя программа" при выборе формата в экспорте аудиоданных (см. предыдущий скриншот). Разбор будет на примере формата AAC. В ffmpeg не самый лучший энкодер AAC, поэтому мы можем подключить еще одну библотеку, например fdkaac. Скачиваем библиотеку fdk-aac 2.0.2 с консолью от nu774 x64. Распаковываем (например как у меня в папку C:\Program Files\ffmpeg-6.1.1-full_build-shared\bin) и теперь надо прописать в переменных среды путь к библиотеке: Параметры-Система-О системе-Дополнительные параметры системы-Вкладка "Дополнительно"-Переменные среды...-Создать. Указываем путь к библиотеке (см. скриншот) ![]() С этого момента можем пользоваться fdkaac. Выбираем в Audacity дорожку, жмем экспорт аудиоданных. Во вкладке "формат" выбираем "внешняя программа". В поле "Команда" прописываем fdkaac -b253 - -o "%f", где -b253 этот битрейд звука. С полным списком команд можно ознакомится здесь. Последний раз редактировалось EvraGo, 11.06.2024 в 21:42. |
![]() |
![]() |
#10 |
Главный Кинооператор
![]() |
Кстати, AAC можно резать и склеивать без конвертирования. главное чтобы параметры совпадали (стерео, 5.1, 5.1, side и сам кодес AAC LC). Делать надо через контейнер mka - больше параметров сохраняется(в первую очередь длительность, она теряется в контейнере .aac.)
Как я отрезал рекламу Сначала нарезаем куски опенингов и ендингов без рекламы из исходной версии, например из английской. Если исходник не AAC - можно конвертнуть в AAC, но в контейнер mka Делаем опенинг и эндинг: ffmpeg -i video_audio_source.mkv -to 00:00:31.573 -vn -sn -map 0:2 -c:a aac -ac 2 -b:a 128k audio_out_put_opening.mka ffmpeg -i video_audio_source.mkv -ss 00:59:09.790 -vn -sn -map 0:2 -c:a aac -ac 2 -b:a 128k audio_out_put_ending.mka потом отрезаем серединку аудио с типом copy (без переконвертирования, потому что этот кусок и так замучен обработкой и переконвертированием) ffmpeg -i dubbed_video_audio.mp4 -vn -sn -c:a copy -ss 00:00:31.573 -to 00:59:09:09.790 dubbed_audio_cutted.mka потом пишем в файл my_list.txt что склеивать # this is a comment file 'audio_out_put_opening.mka' file 'dubbed_audio_cutted' file 'audio_out_put_ending.mka' потом говорим склеить ffmpeg -f concat -safe 0 -i mylist.txt -c copy dubbed_with_clean_open-ending.mka В итоге основной кусок не подвергся очередной процедуре обработки Подробнее тут https://trac.ffmpeg.org/wiki/Concatenate |
![]() |