Má hudební sbírka je velmi rozsáhlá a stále přirůstá. A tak hledám stále technologicky vyspělejší audio kodeky, které mi poskytnou poslouchatelnou kvalitu (nejde mi o high-end) při co nejnižší velikosti hudebních souborů. Ano, dnes sice je internet rychlejší a i harddisky mají čím dál větší kapacitu, ale třeba můj harddisk 1,5 TB mi pomalu začíná být těsný (kde jsou ty doby, kdy harddisk měl jen 750 MB?). Navíc si myslím, že menší soubory jsou praktičtější, snadněji se s nimi manipuluje, stahování je mnohem rychlejší a do flash paměti přehrávače se toho více vejde. Navíc se praktičtěji zálohují. Proč mít 20 CD s MP3, když mohu mít jen jedno dvouvrstvé DVD s M4A?

Níže tedy uvádím základní informace o kodecích rodiny HE-AACv2, které jsou podle mně momentálně pro tyto účely v současné době nejlepší. Jak je to s nimi v Linuxu a kde je získat? Vezmu to kodek po kodeku. Výčet jistě není kompletní a uvítám jakékoli odkazy na další kodeky z této rodiny.

Enhanced aacPlus (alias 3GPP AAC+)

lze získat na adrese:
www.3gpp.org/ftp/Specs/archive/26_series/26.410
není třeba žádná registrace, dostupný ve formě zdrojového kódu jazyka C++
je třeba jej kompilovat příkazem: gmake clean all
již zkompilovaný lze získat na adrese:
http://teknoraver.net/software/mp4tools
nicméně, zde je podstatně starší verze, transkoder MediaCoder používá stále verzi 7.0.0
kromě toho jej využívá nejspíše i software Nokia PC Suite, ten lze získat na adrese:
http://europe.nokia.com/A4144903
Nokia PC Suite je určen pro Windows , v Linuxu jej nelze používat ani skrze Wine (nezdaří se instalace)
[možná Nokia používá jiný kodek, sama na svých stránkách kodek nespecifikuje, ale protože je součástí konsorcia 3GPP je vysoce pravděpodobné, že používá kodek Enhanced aacPlus]
nejnovější verze: 9.0.0

Helix DNA AAC+

lze získat na adrese:
https://helix-producer.helixcommunity.org/Downloads
je však nutná registrace, je nutno stáhnout jednak samotný helix producer a jednak zvlášť i samotný kodek (složku racp_w_32_48, jejíž součástí je kodek v podobě knihovny racp.so pro Linux nebo racp.dll pro Windows), je již zkompilovaný (Linux i Windows)
nejnovější verze: 11.0.0.2013

Nero Digital Audio

lze získat na adrese:
www.nero.com/eng/nero-aac-codec.html
nebo nověji na adrese:
www.nero.com/eng/technologies-aac-codec.html
není třeba žádná registrace, dostupný je zkompilovaný (Linux i Windows)
(nevím proč, ale starší verze 1.0.0.2 je lepší než-li novější verze 1.1.34.2)
transkoder MediaCoder používá verzi 1.5.1.0
nejnovější verze: 1.5.1.0

Coding Technologies AAC+ (alias CT AAC+)

není přímo dostupný, jeho služeb využívá program Winamp, ten je nutno mít nainstalovaný
přičemž je k dispozici až v páté řadě Winampu, přičemž:
Winamp 5.2 – 5.24 používá CT verze 7.2.0
Winamp 5.3 – 5.32 používá CT verze 8.0.0
Winamp 5.33 – 5.35 používá CT verze 8.0.3
Winamp 5.5 a vyšší používá CT verze 8.1.0
dále lze získat na adrese:
www.codeplex.com/aacPlusCLI
jeho rozhraní pro příkazový řádek (pouze pro Windows a navíc jen pro Winamp verze 5.33 a 5.35)
nebo jej lze ovládat v GUI skrze audiotranskodér MediaCoder (též pouze Windows, případně v Linuxu skrze Wine – je třeba mít nainstalován Winamp, verze kodeku odpovídá verzi Winampu)
nejnovější verze: 8.1.0

Spirit HE-AAC encoder

není volně dostupný, vyvíjí jej firma Spirit DSP, je součástí technologie Flash od Adobe.

Kodeky HE-AACv2 v Linuxu

Pro přehrávání formátu MP4 a zejména kodeků rodiny HE-AACv2 je třeba mít v Linuxu nainstalován balíček faad2 (verze 2.5 a vyšší), což je univerzální dekodér kodeků rodiny AAC (dle normy MPEG2 a MPEG4 – i když některé podskupiny normy MPEG4 neumí). Pokud není součástí depozitářů dané distribuce (asi těžko), lze jej získat na adrese:
www.audiocoding.com
kde je k dispozici též jako plug-in pro Winamp. Aby většina linuxových přehrávačů soubory přehrála, možná bude třeba doinstalovat některé další balíčky jako např. xine-faad2 nebo gstreamer-faad2. Příklad: pro přehrávání v amaroKu bude třeba balíček xine-faad2, pokud se jako engine používá program Xine (což doporučuji).
Pro manipulace (tagování, tvorba atd.) se soubory MP4 je třeba mít nainstalován balíček mpeg4ip (hledejte v neoficiálních zdrojích dané distribuce). Jeho součástí je MP4BOX, jehož součástí je řada dalších monofunkčních prográmků jako: mp4creator nebo mp4tags. Tagovat soubory AAC, MP4 nebo M4A umí program EasyTag (GUI) za předpokladu, že je nainstalován balíček libmpeg4ip. V Sabayonu 5.2 je vše potřebné nainstalováno již při první instalaci systému. Otagovat soubory MP4/M4A umí i přehrávač Clementine verze 0.2.

Kdybych měl kodeky této rodiny posoudit dle zvukových kvalit, pak pořadí by bylo (od nejlepšího k nejhoršímu): Enhanced aacPlus / Helix DNA AAC+ / Nero Digital Audio / Coding Technologies AAC+
Na začátku jsem používal Enhanced aacPlus verze 7.0.0 a Helix DNA verze 11.0.0.2013, které byly podstatně lepší než-li Nero Digital Audio verze 1.0.0.2 a Coding Technologies verze 8.0.3. Jak Nero tak Coding však pokračují ve vývoji a oba svým soupeřům ve svých současných verzích šlapou těsně na paty, rozdíl je velmi minimální, zejména Nero verzí 1.3.3.0 udělal velký pokrok směrem vpřed.

Coding Technologies AAC+

Tento kodek vyvíjí firma Dolby Laboratories, vyvinula jej firma Coding Technologies, která je dnes součástí firmy Dolby Laboratories.
Tento kodek v Linuxu nelze užívat přímo, jeho verze pro Linux není k dispozici, k dispozici není ani kompilovaná verze pro Windows, ani zdrojový kód. Tento kodek je součástí programu Winamp, který je k dispozici pouze pro Windows. Samotný Winamp lze provozovat v Linuxu skrze Wine, funguje bez problémů.
Nicméně využívání tohoto kodeku doporučuji skrze transkodér MediaCoder, ten je sice též pouze pro Windows, v Linuxu však skrze Wine funguje dobře.
Od verze 8.1.0 má velice dobrý zvuk, i když mi přijde ze všech současných kodeků HE-AACv2 nejhorší.

Poznámky:
verze 8.0.3 : rozhodně druhý nejhorší kodek HE-AACv2, který jsem měl kdy možnost vyzkoušet. Na 32 kbps tlumil velmi dynamiku, na 24 kbps nebyl použitelný vůbec. Samotný kodek umí pouze soubory AAC.
verze 8.1.0 : udělala slušný pokrok vpřed, na 32 kbps je použitelná, pro méně akusticky náročné styly (techno, rock) je použitelná i při 24 kbps, i tak mi však přijde ze současných kodeků HE-AACv2 nejhorší (ale je to těsné). Pracuje v režimu variabilního bitrate a samotný kodek umí pouze soubory AAC.

Helix DNA AAC+

Tento kodek vyvíji komunita Helix (Helix Community) pod záštitou firmy Real Networks, která jej následně využívá ve svých produktech.
Tento kodek lze v Linuxu používat, neboť je k dispozici jeho kompilovaná verze, lze jej používat jako součást softwaru Helix DNA Producer.

Instalace:
Je třeba stáhnout Helix DNA Producer, což je složka helixproducer_11_linux, jejím obsahem je adresář producer, jeho obsah je třeba jako uživatel root zkopírovat do adresáře /usr/local/bin. Tím je producer nainstalován (Bash zná příkaz producer).
Dále je třeba stáhnout samotný kodek, což je složka racp_w_32_48_linux a celou ji zkopírovat (opět jako root) do adresáře /usr/local/bin/codecs. Součástí této složky je i vzorová audience, podle které vytvoříme audience pro bitrate 32, 48 a 64, které pojmenujeme racp32.rpad, racp48.rpad a racp64.rpad. Tyto textové soubory uložíme jako root do adresáře /usr/local/bin/audiences. Tím je vše použitelné v příkazové řádce (Bash).

Použití:
Jako vstup mohou sloužit soubory WAV, AU a AIFF, výstupem jsou vždy soubory RM. Syntaxe je následující:
producer -i . -o . -ad racp48.rpad -dt
čímž převedeme všechny soubory WAV v aktuálním adresáři (parametr -i .) na soubory RM do aktuálního adresáře (parametr -o .) s použitím kodeku Helix DNA AAC+ při průměrném bitrate 48 kbps (parametr -ad určuje použitou audienci, v tomto případě racp48.rpad). Více k syntaxi a jednotlivým parametrům viz. příkaz:
producer -h

Z RM na MP4:
To, že vyrábí pouze soubory RM se nám nebude líbit. Jak z nich udělat soubory MP4 nebo M4A? Přímo to bohužel nejde, převod je vpodstatě na tři kroky. Budeme potřebovat mít nainstalované balíčky mkvtoolnix a mpeg4ip. Pak můžeme z RM vytvořit MKA, z MKA pak AAC a z AAC pak MP4 nebo M4A, které pak již můžeme otagovat třeba pomocí Easytag nebo v Bashi pomocí mp4tags.
Krok první: v Bashi zadáme příkaz:
mkvmerge -o out.mka -a 0 -D -S in.rm --track-order 0:0
čímž ze vstupního souboru RM (in.rm / parametr -S) vytvoříme výstupní soubor MKA (out.mka / parametr -o), význam ostatních parametrů a další možnosti mkvmerge viz. příkaz: mkvmerge -h
Krok druhý: v Bashi zadáme příkaz:
mkvextract tracks in.mka 1:out.aac
čímž ze vstupního souboru MKA (in.mka) vytvoříme výstupní soubor AAC (out.aac), význam jednotlivých parametrů a možnosti mkvextract viz. příkaz: mkvextract -h
Krok třetí: v Bashi zadáme příkaz:
mp4creator -create=in.aac out.mp4
čímž ze souboru AAC (in.aac) vytvoříme soubor MP4 (out.mp4) nebo M4A (koncovku si zadáváme sami), opět více viz. příkaz: mp4creator -h. Takto vzniklé soubory následně otagujeme (tagy neobsahují).

Poznámky:
Vývoj asi již neprobíhá. Za dva roky se neobjevila žádná nová verze.
verze 11.0.0.2013 : jeden z nejlepších kodeků HE-AACv2 co se zvuku týče. Má několik nevýhod, např. používá pouze bitrate 32, 48 a 64 (nelze tedy použít nižší bitrate než 32 kbps – alespoň nelze užít nepoužitelně nízký bitrate), na všech těchto bitrate je zvuk velmi dobrý. Pracuje v režimu variabilního bitrate (výsledný průměrný bitrate je o něco vyšší, než zadaný) a vyrábí pouze soubory RM (což je další nevýhoda).

Nero Digital Audio

Tento kodek vyvíjí firma Ahead Software jako součást vypalovacího balíku Nero. Samotný kodek je zdarma (pouze CLI verze) k dispozici v kompilované podobě přímo pro Linux.

Instalace:
stačí stáhnout kodek z výše uvedené adresy a rozbalit jej (je ve formátu ZIP). V adresáři linux se nachází soubor neroAacEnc a ten stačí zkopírovat jako root do složky /usr/bin. Tím je instalace hotova, Bash zná příkaz neroAacEnc.

Použití:
Jako vstup mohou sloužit pouze soubory WAV, které musí mít vzorkovací frekvenci 22050 Hz a vyšší, výstupem je soubor MP4 nebo M4A (sami si vybíráme). Syntaxe jest:
neroAacEnc -br 32000 -in in.wav -of out.m4a
čímž převedeme soubor WAV (soubor in.wav / parametr -in) na soubor M4A (soubor out.m4a / parametr -of) s použitím kodeku Nero Digital Audio při bitrate 32 kbps (parametr -br, hodnota se zadává v bitech za sekundu, tedy pro 32 kbps použijeme hodnotu 32000). Více o možnostech a dalších parametrech viz. příkaz:
neroAacEnc -help

Poznámky:
verze 1.0.0.2 : první Nero kodek, který jsem měl možnost vyzkoušet, už v té době však nedosahoval kvalit Enhanced aacPlus či Helix DNA AAC+. Použitelný od 48 kbps, při 32 kbps již tlumí dynamiku, což ale akusticky nenáročným stylům (techno, rock atd, country už raději ne) moc neuškodilo, při 24 kbps to bylo už velmi znatelné a tento bitrate je nepoužitelný. Kodek pracuje v režimu variabilního bitrate (konstantní mu lze vnutit) a výsledný průměrný bitrate se bohužel poměrně dost odlišuje od zadaného, výsledný bitrate je vždy vyšší, vyjímečně dokonce dvojnásobný, to považuji za hlavní nešvar tohoto kodeku (pozdější verze tím také trpí).
verze 1.1.34.2 : tato verze představuje nejhorší kodek HE-AACv2, který jsem měl možnost vyzkoušet. Použitelný od 48 kbps, už 32 kbps bylo nepoužitelné, zejména zatlumení vysokých frekvencí bylo neskutečně značné … bohužel je podstatně horší než-li předcházející verze!?
verze 1.3.3.0 : Ahead udělal velký pokrok, neboť touto verzí dotáhl náskok Enhanced aacPlus. Zvuk při 32 kbps je dobrý a tato verze je použitelná pro méně náročné styly již od 24 kbps. Díky snadné obsluze skrze MediaCoder jej často používám i když též trpí klasickým nešvarem Nero kodeků, totiž zvyšováním bitrate.
verze 1.5.1.0 : drobná vylepšení verze 1.3.3.0, co se zvuku týče, přijde mi stejný jako u předchozí verze, včetně zvyšování bitrate

Enhanced aacPlus

Tento kodek vyvíjí konsorcium 3GPP pro své vlastní aplikace (vesměs mobilního charakteru). Samotný kodek je zdarma a lze jej stáhnout ve formě zdrojového kódu programovacího jazyka C++. Stále představuje to nejlepší v rodině kodeků HE-AACv2.

Instalace:
stačí stáhnout kodek z výše uvedené adresy a rozbalit jej (je ve formátu ZIP), načež nám vzniknou dva soubory, jeden dokument a ještě jeden archív ZIP, který opět rozbalíme. Dále přistoupíme ke kompilaci. Je nutné mít v systému nainstalované knihovny jazyka C++, jinak se kompilace nezdaří. Ještě horší je, že na 64 bitových systémech bude kompilace neúspěšná (část kodeku je předkompilovaná), je nutné kompilovat na 32 bitových systémech. Pokud takový nemáme, je možno kodek zkompilovat v 32 bitovém systému běžícím ve VirtualBoxu. Kompilaci provedeme jako superuživatel root. Přesuneme se do adresáře enkoderu příkazem (místo těch tří teček doplníme cestu k rozbalenému adresáři 26410-900):
cd /home/ ... /26410-900/3GPP_enhanced_aacPlus_src_200907/FloatFR_aacPlusenc
dále provedeme kompilaci příkazem:
gmake clean all
Pokud vše proběhne hladce, budeme mít v adresáři enkoderu soubory enhAacPlusEnc a enhAacPlusEnc_brswitch. Je-li tomu tak, pak už stačí pouze zkopírovat soubor enhAacPlusEnc do složky /usr/bin. Tím je instalace hotova.

Použití:
Jako vstup mohou sloužit pouze soubory WAV o vzorkovací frekvenci 44100 Hz a 48000 Hz. Výstupem jsou soubory 3GP, MP4 nebo M4A (sami si zvolíme). Syntaxe jest:
enhAacPlusEnc in.wav out.m4a 24000 s
čímž převedeme soubor WAV (in.wav) na soubor M4A (out.m4a), při použití bitrate 24kbps (hodnota se zadává v bitech za sekundu, parametr se udává jako číslo hned za výstupním souborem), se zachováním sterea (parametr s hned za bitrate, parametr m značí mono výstup). Bohužel nápověda chybí. Bitrate pro stereo můžeme použít od 24 kbps do 64 kbps. Kodek používá variabilní bitrate.

Poznámky:
verze 7.0.0: s Helixem první kodek HE-AACv2, s kterým jsem si hrál. A hned ze startu ten nejlepší, co se zvuku týče, i 24 kbps byla na akusticky méně náročné styly použitelná. Tato verze pracovala pouze s bitrate 24, 32, 48 a 64 kbps a nic mezi nimi a pouze s konstantním bitrate.
verze 7.2.0: se naučila používat variabilní bitrate a též hodnoty výsledného bitrate mohly ležet kdekoli na intervalu 24 -64 kbps. Zvuk stále nejlepší z kodeků HE-AACv2.
verze 8.0.0: drobná vylepšení verze 7.2.0.
verze 9.0.0: -testuji- měla by zvládnout i jiné vstupní vzorkovací frekvence, než jen pouze 44,1 kHz a 48 kHz