From 2898d8f2a1ee5ab26767fce46e2d7a2d1d7368c3 Mon Sep 17 00:00:00 2001 From: ps Date: Wed, 1 Apr 2026 09:59:34 +0300 Subject: [PATCH] add `ffmpeg-aacp-on-fedora-linux.gmi` --- public/uk/ffmpeg-aacp-on-fedora-linux.gmi | 108 ++++++++++++++++++++++ public/uk/index.gmi | 1 + 2 files changed, 109 insertions(+) create mode 100644 public/uk/ffmpeg-aacp-on-fedora-linux.gmi diff --git a/public/uk/ffmpeg-aacp-on-fedora-linux.gmi b/public/uk/ffmpeg-aacp-on-fedora-linux.gmi new file mode 100644 index 0000000..0f1af9b --- /dev/null +++ b/public/uk/ffmpeg-aacp-on-fedora-linux.gmi @@ -0,0 +1,108 @@ +# Збірка ffmpeg з підтримкою AAC+ засобами FDK AAC + +В рамках сетапу ретрансляції радіо "Культура" на радіо Pidpilne, був приємно здивований високою якістю звуку AAC+ при низьких бітрейтах (до 16) і вирішив поряд з онлайн-ретрансляціями ще й додати у цьому форматі дампи деяких подкастів з Youtube. + +Але виявилось, що просто перекодувати потік з yt-dlp засобами ffmpeg з репозиторіїв Fedora не вийде, через ліцензійні обмеження GNU/GPL. Довелось зібрати ffmpeg з сорсу - код потрібних кодеків є відкритим, хоч і не вільним для поширення: + +> License: nonfree and unredistributable + +## Системні залежності + +``` bash +sudo dnf remove ffmpeg +sudo dnf install fdk-aac-devel +``` + +Переконайтесь, що бібліотека fdk-aac розпізнається системою: + +``` bash +$ pkg-config --modversion fdk-aac +2.0.3 +``` + +### fdk-aac + +Опціонально, останню версію fdk-aac можна зібрати з початкового коду: + +``` bash +git clone https://github.com/mstorsjo/fdk-aac.git +cd fdk-aac +./autogen.sh +./configure +make -j$(nproc) +sudo make install +``` +* для видалення: `sudo make uninstall` + +В мене цей варіант не спрацював (можливо) через не правильну лінковку, тому згодом я встановив `fdk-aac-devel`, а даний приклад компіляції - просто лишаю для нотатки як є, може згодиться потім. + +## ffmpeg + +``` bash +git clone https://github.com/FFmpeg/FFmpeg.git +cd FFmpeg +./configure --enable-libfdk-aac +make -j$(nproc) +sudo make install +``` +* для видалення: `sudo make uninstall` + +## Тестування + +``` bash +$ ffmpeg -encoders | grep fdk +A....D libfdk_aac Fraunhofer FDK AAC (codec aac) + +$ ffmpeg -hide_banner -h encoder=libfdk_aac +Encoder libfdk_aac [Fraunhofer FDK AAC]: + General capabilities: dr1 delay small + Threading capabilities: none + Supported sample rates: 96000 88200 64000 48000 44100 32000 24000 22050 16000 12000 11025 8000 + Supported sample formats: s16 + Supported channel layouts: mono stereo 3.0 4.0 5.0 5.1 6.1(back) 7.1(wide) 7.1 5.1.2(back) +... +``` + +## Перекодування + +Нижче - мої приклади з низькими бітрейтами та максимальною компактністю для "голосу". + +### Моно (HE-AAC v1) + +``` bash +ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 16k -ar 22050 output.m4a +``` + +### Стерео (HE-AAC v2) + +``` bash +ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k -ar 22050 output.m4a +``` + +### Перевірка + +На прикладі результату для "Стерео (HE-AAC v2)": + +``` bash +$ ffprobe output.m4a +... +Audio: aac (HE-AACv2) (mp4a / 0x6134706D), 22050 Hz, stereo, fltp, 32 kb/s (default) +... +``` + +### yt-dlp + +Довідка: на "вході" та "виході" використовується контейнер .m4a - він потрібен для збереження мета-інформації про відео: + +``` bash +yt-dlp -x --audio-format m4a --postprocessor-args "ffmpeg: -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k -ar 22050" URL +``` +* URL - ваше значення + +## Посилання + +=> https://trac.ffmpeg.org/wiki/Encode/AAC#fdk_aac + +### Дивіться також + +=> pidpilne.gmi Підпільне: ретрансляція українського мовлення \ No newline at end of file diff --git a/public/uk/index.gmi b/public/uk/index.gmi index 4432a3f..2e68a37 100644 --- a/public/uk/index.gmi +++ b/public/uk/index.gmi @@ -16,6 +16,7 @@ ### Нотатки +=> ffmpeg-aacp-on-fedora-linux.gmi 2026-04-01 Збірка ffmpeg з підтримкою AAC+ засобами FDK AAC => agate-branch-with-raw-ipv6-host-support.gmi 2026-03-31 Гілка Agate з підтримкою хостів IPv6 => meshname-as-permanent-and-green-alternative-to-dns.gmi 2026-03-31 Meshname як перманентна, енерго-ефективна альтернатива DNS => run-same-firefox-version-using-custom-profile.gmi 2026-03-29 Окремі профілі Firefox на базі спільного релізу