Author Topic: Fraunhofer FDK-AAC  (Read 4577 times)

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12894
  • Gender: Male
  • Не фалширам
Fraunhofer FDK-AAC
« Opened on 17.01.2019, Thursday, 04:34:23 (Edited 04.06.2019, Tuesday, 12:49:44) »
Одличен open source AAC енкодер ;). Првично наменет за ARM архитектура и Android, но подоцна port-уван и за x86/x64 ;).

Code: [Select]
https://wiki.hydrogenaud.io/index.php?title=Fraunhofer_FDK_AAC
Code: [Select]
https://github.com/mstorsjo/fdk-aac
Code: [Select]
https://github.com/nu774/fdkaac
За жал, лиценцата не дозволува дистрибуција на precompiled binaries, така да, мора сами да си го компајлирате ::). Под Linux, тоа е и не е баш голем проблем бидејќи оперативниот систем има секакви open source repositories за развој на софтвер и web апликации. Но, под Windows... тоа е мааалку потешко, па затоа, еве ги компајлирани библиотеките и exe-ињата кои ќе ви требаат за да може да енкодирате аудио под Windows ;).

download links:

Code: [Select]
https://cloud.mail.ru/public/3nkz/2czPqtcmK
Code: [Select]
http://app.box.com/s/vkduvh3wv222xh9ly128os9si4r8o5w8
Code: [Select]
http://www.asuswebstorage.com/navigate/s/050806A21C964EC6814501012690AFB4W
Code: [Select]
fdkaac 1.0.0
Usage: fdkaac [options] input_file
Options:
 -h, --help                    Print this help message
 -p, --profile <n>             Profile (audio object type)
                                 2: MPEG-4 AAC LC (default)
                                 5: MPEG-4 HE-AAC (SBR)
                                29: MPEG-4 HE-AAC v2 (SBR+PS)
                                23: MPEG-4 AAC LD
                                39: MPEG-4 AAC ELD
 -b, --bitrate <n>             Bitrate in bits per seconds (for CBR)
 -m, --bitrate-mode <n>        Bitrate configuration
                                 0: CBR (default)
                                 1-5: VBR
                               (VBR mode is not officially supported, and
                                works only on a certain combination of
                                parameter settings, sample rate, and
                                channel configuration)
 -w, --bandwidth <n>           Frequency bandwidth in Hz (AAC LC only)
 -a, --afterburner <n>         Afterburner
                                 0: Off
                                 1: On(default)
 -L, --lowdelay-sbr <-1|0|1>   Configure SBR activity on AAC ELD
                                -1: Use ELD SBR auto configurator
                                 0: Disable SBR on ELD (default)
                                 1: Enable SBR on ELD
 -s, --sbr-ratio <0|1|2>       Controls activation of downsampled SBR
                                 0: Use lib default (default)
                                 1: downsampled SBR (default for ELD+SBR)
                                 2: dual-rate SBR (default for HE-AAC)
 -f, --transport-format <n>    Transport format
                                 0: RAW (default, muxed into M4A)
                                 1: ADIF
                                 2: ADTS
                                 6: LATM MCP=1
                                 7: LATM MCP=0
                                10: LOAS/LATM (LATM within LOAS)
 -C, --adts-crc-check          Add CRC protection on ADTS header
 -h, --header-period <n>       StreamMuxConfig/PCE repetition period in
                               transport layer

 -o <filename>                 Output filename
 -G, --gapless-mode <n>        Encoder delay signaling for gapless playback
                                 0: iTunSMPB (default)
                                 1: ISO standard (edts + sgpd)
                                 2: Both
 --include-sbr-delay           Count SBR decoder delay in encoder delay
                               This is not iTunes compatible, but is default
                               behavior of FDK library.
 -I, --ignorelength            Ignore length of WAV header
 -S, --silent                  Don't print progress messages
 --moov-before-mdat            Place moov box before mdat box on m4a output

Options for raw (headerless) input:
 -R, --raw                     Treat input as raw (by default WAV is
                               assumed)
 --raw-channels <n>            Number of channels (default: 2)
 --raw-rate     <n>            Sample rate (default: 44100)
 --raw-format   <spec>         Sample format, default is "S16L".
                               Spec is as follows:
                                1st char: S(igned)|U(nsigned)|F(loat)
                                2nd part: bits per channel
                                Last char: L(ittle)|B(ig)
                               Last char can be omitted, in which case L is
                               assumed. Spec is case insensitive, therefore
                               "u16b" is same as "U16B".

Tagging options:
 --title <string>
 --artist <string>
 --album <string>
 --genre <string>
 --date <string>
 --composer <string>
 --grouping <string>
 --comment <string>
 --album-artist <string>
 --track <number[/total]>
 --disk <number[/total]>
 --tempo <n>
 --tag <fcc>:<value>          Set iTunes predefined tag with four char code.
 --tag-from-file <fcc>:<filename>
                              Same as above, but value is read from file.
 --long-tag <name>:<value>    Set arbitrary tag as iTunes custom metadata.
 --tag-from-json <filename[?dot_notation]>
                              Read tags from JSON. By default, tags are
                              assumed to be direct children of the root
                              object(dictionary).
                              Optionally, position of the dictionary
                              that contains tags can be specified with
                              dotted notation.
                              Example:
                                --tag-from-json /path/to/json?format.tags

Јас лично најмногу го користам за енкодирање на аудио фајлови во HE-AAC. Претходник на овој тип на кодирање на Fraunhofer им беше mp3PRO енкодерот, но за жал, тој не беше open source, беше врзан со многу скапи лиценци за редистрибуција и native поддршка за playback на mp3PRO фајлови на хардверски уреди (портабл CD/радио плеери, DVD плеери, итн.), а освен тоа, единствени софтверски компании кои нудеа кодирање на mp3PRO фајлови беа Nero и Syntrillium (го изработуваа Cool Edit, сегашно Adobe Audition), така да, немаше голем интерес за кодекот и пропадна :-\. Изгледа Fraunhofer се опаметија од нивниот претходен дебакл и решија да го направат енкодерот open source, со тоа што се наплаќа само за комерцијална употреба на енкодерот ;).

За жал, алатката мора да ја повикате преку command line, но има GUI-а кои овозможуваат автоматски да се зададат команди на libfdk-aac (libfdk-aac-2.dll) преку API-то на библиотеката ;). MeGUI го овозможува ова, иако е пред се програм наменет за прекодирање на видео фајлови. BeHappy исто така го поддржува овој HE-AAC енкодер ;).

Code: [Select]
https://archive.codeplex.com/?p=behappy
Code: [Select]
https://github.com/jones1913/behappy/
Code: [Select]
https://www.softpedia.com/get/Multimedia/Audio/Audio-CD-Rippers-Encoders/BeHappy.shtml










Пробајте го, звучи одлично и на 64kbps ;). Освен тоа, Android има native поддршка за AAC и HE-AAC, така да, може да си ја слушате музиката и преку Android Box, без притоа да осетите губиток на квалитет, но со помала големина на фајловите ;). Може да го користите и за кодирање на аудио на филмови ;).
"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12894
  • Gender: Male
  • Не фалширам
Re: Fraunhofer FDK-AAC
« Reply #1 on 01.04.2020, Wednesday, 18:58:31 »
Нова верзија, FDK-AAC Lib v2.0.1 ;).

Code: [Select]
https://cloud.mail.ru/public/5y5f/4jFqnXLiR
Code: [Select]
https://www.asuswebstorage.com/navigate/a/#/s/7753008EBA564D9784CF4C0339AB539DY
Code: [Select]
https://app.box.com/s/wu4vd793ettvp4t9y3ioi04fpo08ot4w
"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12894
  • Gender: Male
  • Не фалширам
Re: Fraunhofer FDK-AAC
« Reply #2 on 12.04.2020, Sunday, 13:40:35 »
Друг compile, од filler56789 од doom9.net. Се во едно exe, без дополнителни библиотеки, а и прилично помало по големина ;). Ако ви треба само библиотеката, превеземете ја од претходните линкови ;).

Code: [Select]
https://cloud.mail.ru/public/4fvr/5bsm2N9dA
Code: [Select]
https://www.asuswebstorage.com/navigate/a/#/s/278C77C776244512BEAE2D4F841D2BF3Y
Code: [Select]
https://app.box.com/s/08ds0xs7x990af4eztwubx2hqh1aw6ef
"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline KiloVolt

  • Експерт
  • ****
  • Posts: 814
  • Gender: Male
  • Високонапонски Фанатик
Re: Fraunhofer FDK-AAC
« Reply #3 on 13.04.2020, Monday, 23:16:04 »
Малку оф топик, колку си задоволен со ова и дали имаш досега најдено нешто што би го препорачал како добар начин да си ре-енкодирам flac во некој по-компактен формат за portable уреди, смартфон поконкретно.
Temporary things have a nasty habit of becoming permanent.

High voltage experimenting is like the mafia, once you're in, you ain't getting out!

Never underestimate the power of stupid people in large groups.

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12894
  • Gender: Male
  • Не фалширам
Re: Fraunhofer FDK-AAC
« Reply #4 on 14.04.2020, Tuesday, 00:07:48 »
Моментално, конкуренти се OPUS и HE-AAC. HE-AAC е базиран на AAC плус SBR (Spectral Band Replication). OPUS е базиран на OGG и може да користи и SBR. И со HE-AAC и со OPUS со SBR, теоретски, треба да добиеш ист квалитет на звук со дупло помал bitrate. Ова беше финтата со MP3Pro на времето, но беше closed source и пропадна како кодек. За разлика од него, FDK-AAC е open source AAC енкодер на Fraunhofer, но библиотеката е наменета за Android и според лиценцата, смееш да ја компајлираш и редистрибуираш само на Android уреди. Но, тоа никој не го спречува да ја port-ува библиотеката за некој друг оперативен систем и да го објави source-от за неа. Затоа и не е нелегално да стои source-от јавно некаде достапен (GitHub) од оваа x86/x64 верзија од библиотеката. И не е нелегално да ја компајлираш сам за своја употреба, но не и да ја споделуваш компајлираната верзија :P :D (oops ;D).

OPUS од друга страна, базиран е на еден формат кој пропадна како mainstream формат (OGG), иако доста често се користеше по игри бидејќи нудеше подобар квалитет на звукот во однос на MP3 за ист bitrate... плус, open source е и најважно, без royalty лиценци за комерцијална употреба (за разлика од MP3). Но, бидејќи кај домашните корисници, веќе беше длабоко навлезен MP3 како стандард, плус секој rip што можеш да го најдеш online, пиратски се споделуваше во MP3, MP3 стана de facto стандард за споделување и складирање на музика. OGG се појави и се надеваа дека ќе го заменат MP3, пред се бидејќи нудеше подобар квалитет на звук во однос на MP3 за ист bitrate, но тоа никогаш не се случи и практично... умре OGG. Да, сеуште постои како кодек, но практично... никој во денешно време не го користи.

Е сега... зошто OPUS се појави како играч на сцената (инаку, има и други кодеци кои користат SBR). Google решија да го користат како default аудио кодек за 720p, 1080p и 2160p видеа на YouTube. Зошто? Па исто како и OGG, не се плаќаат royalties за комерцијална употреба, т.е. за употреба на сервис како што е YouTube ;). И, ова, автоматски го популаризираше кодекот.

Вистинското прашање кое треба да го поставиш е „дали сметам дека кодекот во кој ќе ја транскодирам мојата музичка колекција има иднина или не“. Прво подпрашање би било, дали е open source. Ако не е, бегај ко ѓаол од крст, тоа нема иднина. Ова се има покажано со многу closed source кодеци: WMVx, WMA, MP3Pro (доволно глуп бев тогаш кога бев млад цела колекција да си ја прекодирам во MP3Pro ::)... многу музика, малку пари, немаш пари за HDD и... тоа ти е, сиромав човек, жив ѓавол ;D)... ги има доста. Повеќето се open source, но дел се и closed source. Практично, сите што беа closed source, пропаднаа. Од моментално популарните аудио и видео кодеци, сите се open source ;). ОК, одиме на второ подпрашање, која е историјата на кодекот. HE-AAC е базиран на AAC, кодек кој полека но сигурно си стекна популарност меѓу луѓето, а се разбира, и адаптацијата на баш овој кодек од страна на Apple во iTunes беше одличен boost за популарноста на кодекот. OPUS е базиран на OGG... пропаднат кодек кој, да, имаше предности во однос на MP3, но... не успеа во трката.

AAC (а со тоа и HE-AAC) се користат од страна на Apple како default аудио кодек за нивните платформи. OPUS се коисти како default аудио кодек за HD Ready, Full HD и Ultra HD stream-овите на YouTube. Кој ќе тепа? Не знам... не знам ни дали ќе има баш „победник“ во оваа „трка“... некако веќе се напушта тој концепт. Веќе е се stream based, крајниот корисник не знае што е користено за кодирање на аудиото и видеото во stream-от, а и не го интересира.

Така да, од скоро сите погоре наведени аспекти, скалата малку натежнува на страната на HE-AAC (заборавив да напоменам, AAC и HE-AAC се користат и во DAB), но и OPUS не стои лошо ;). Лично јас, сепак би се одлучил за HE-AAC од една проста причина - има многу повеќе алатки за него. FDK-AAC не е единствен HE-AAC енкодер/декодер, има и други, така да имаш избор ;). Од друга страна, OPUS е „детенце“ на Xiph.Org... практично, они одлучуваат во која насока ќе оди кодекот бидејќи не се води по ниеден стандард (за разлика од AAC кој е ISO и IEC стандардизиран), туку си измислуваат „нивни правила на игра“, слично како што правеше Fraunhofer со MP3Pro... не дека беше лоша идеја MP3Pro, всушност, беше одлична во времето кога беше измислен, но... за жал, лоша одлука во старт се направи со тоа што беше proprietary и тука ја зезнаа работата. Од тој аспект, не мораш да се плашиш дека музиката ќе ти остане „заробена“ во codec кој нема иднина, бидејќи OPUS е open source, но сепак... јас барем лично, би одел со codec кој е стандардизиран. Се имам изгорено претходно од нестандардизирани „хакови“ на кодеци... не, благодарам ;).
"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline KiloVolt

  • Експерт
  • ****
  • Posts: 814
  • Gender: Male
  • Високонапонски Фанатик
Re: Fraunhofer FDK-AAC
« Reply #5 on 15.04.2020, Wednesday, 20:55:07 »
Друг compile, од filler56789 од doom9.net. Се во едно exe, без дополнителни библиотеки, а и прилично помало по големина ;). Ако ви треба само библиотеката, превеземете ја од претходните линкови ;).

Code: [Select]
https://cloud.mail.ru/public/4fvr/5bsm2N9dA
Code: [Select]
https://www.asuswebstorage.com/navigate/a/#/s/278C77C776244512BEAE2D4F841D2BF3Y
Code: [Select]
https://app.box.com/s/08ds0xs7x990af4eztwubx2hqh1aw6ef
Нешто не ми работи, го пуштам фајлот, нешто кратко се уклучува конзола и се гаси. Или јас не знам да го употребам...
Temporary things have a nasty habit of becoming permanent.

High voltage experimenting is like the mafia, once you're in, you ain't getting out!

Never underestimate the power of stupid people in large groups.

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12894
  • Gender: Male
  • Не фалширам
Re: Fraunhofer FDK-AAC
« Reply #6 on 16.04.2020, Thursday, 00:11:02 »
Или јас не знам да го употребам...

Не знаеш да го употребуваш ;). Command line алатка е. Се повикува преку cmd (значи, треба да отвориш command prompt и да го повикаш exe-то преку него). Ако не добие адекватни параметри на влез, само плука error или help (зависи како е напишан) и терминира (exits). Треба да имаш една од две работи. Или да напишеш скрипта (batch) која ќе ја повикува command line алатката со адекватни влезни и излезни параметри (најчесто влезен фајл, параметри за кодирање и излезен фајл) или да имаш front end UI кое ќе го прави ова автоматски, т.е. преку графички интерфејс ;). Сепак, параметрите за кодирање, во некои front ends, пак мораш да ги зададеш рачно. Некои нудат опции за само најпростите работи, како bitrate, но не и дополнителни опции (дали да користи SBR или не, дали да го прекодира sample rate-от или не, итн.). Затоа и го спомнав BeHappy во првиот post. Бесплатен е, а го поддржува FDK-AAC ;). Недостаток е тоа што треба рачно да го додаваш секој фајл кој сакаш да го кодираш во cue. Наменет е пред се за кодирање на големи аудио фајлови, како што имаат филмовите, затоа и не е баш практичен за прекодирање на музика, но, како што реков, бесплатен е и колку за проба, брка работа ;).

Практично, сите енкодери (и аудио и видео) се cmd (односно, под Linux terminal) алатки. Она што сте навикнати да го гледате е front end UI-то кое користи std in/out (standard input/output), односно ги дава адекватните параметри на влез од енкодерот и исчитува определени излезни информации од него (проценти, до каде е со encode-от, со која брзина оди во однос на времетрањето на фајлот, кај видео енкодерите, има и информација со колку фрејмови во секунда кодира, итн.) и потоа тоа го прикажува со некаков си progress bar, encoding speed, frames per second... информации кои често можете да ги видите и кај комерцијалните енкодери.

За еден фајл, не е проблем, јасно, дури и сам командите можеш да си ги искуцаш. Но, проблемот се јавува кога ќе треба да енкодираш цел албум или цел фолдер со илјадници песни во него. Е тука доаѓаат до израз front end-овите ;). Јас за цели албуми го користам xrecode (не е бесплатен). Се разбира, со него заедно не доаѓаат определени енкодери (како што е FDK-AAC, претходно пишав зошто), но може рачно да го додадеш, да дефинираш path до него и encoding parameters и остатокот од работата (земи го на влез овој фајл, енкодирај го вака и вака и дај на излез ваков фајл) го остава на енкодерот ;).
"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."

Offline KiloVolt

  • Експерт
  • ****
  • Posts: 814
  • Gender: Male
  • Високонапонски Фанатик
Re: Fraunhofer FDK-AAC
« Reply #7 on 16.04.2020, Thursday, 02:38:33 »
Епа јас очекував барем основен фронтенд за да можам цела библиотека да му ја внесам,  ;D ќе видам што како...
edit:
Овде вели дека е freeware...  ???
Code: [Select]
https://codecpack.co/download/XRECODE.html
Temporary things have a nasty habit of becoming permanent.

High voltage experimenting is like the mafia, once you're in, you ain't getting out!

Never underestimate the power of stupid people in large groups.

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 12894
  • Gender: Male
  • Не фалширам
Re: Fraunhofer FDK-AAC
« Reply #8 on 16.04.2020, Thursday, 10:02:44 (Edited 26.08.2020, Wednesday, 15:15:08) »
Овде вели дека е freeware...  ???
Code: [Select]
https://codecpack.co/download/XRECODE.html

Не ми е јасно што е точно работата... можно е xrecode II да го дале како freeware, а инаку се плаќаше и имаше trial период.

Јас на моите xrecode II верзии, немам опција за FDK-AAC, само на xrecode III има опција за FDK-AAC. Симни ја, провери, ако успееш да ја подесиш да работи со FDK-AAC, супер :).

EDIT: Сега баш ја инсталирав оваа верзија, ова е оригиналниот xrecode. Изгледа на почетокот бил freeware, потоа почнал да се плаќа, од xrecode II па навака ;). И колку што гледам, во него нема опција за FDK-AAC.
"This is really a generic concept about human thinking - when faced with large tasks we're naturally inclined to try to break them down into a bunch of smaller tasks that together make up the whole."

"Newton's third law: The only way humans have ever figured out of getting somewhere is to leave something behind."