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

Offline GigaWatt

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 11664
  • 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]
Code: [Select]
Code: [Select]
За жал, лиценцата не дозволува дистрибуција на precompiled binaries, така да, мора сами да си го компајлирате ::). Под Linux, тоа е и не е баш голем проблем бидејќи оперативниот систем има секакви open source repositories за развој на софтвер и web апликации. Но, под Windows... тоа е мааалку потешко, па затоа, еве ги компајлирани библиотеките и exe-ињата кои ќе ви требаат за да може да енкодирате аудио под Windows ;).

download links:

Code: [Select]
Code: [Select]
Code: [Select]
Code: [Select]
fdkaac 1.0.0
Usage: fdkaac [options] input_file
 -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
 --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
                              Optionally, position of the dictionary
                              that contains tags can be specified with
                              dotted notation.
                                --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]
Code: [Select]
Code: [Select]

Пробајте го, звучи одлично и на 64kbps ;). Освен тоа, Android има native поддршка за AAC и HE-AAC, така да, може да си ја слушате музиката и преку Android Box, без притоа да осетите губиток на квалитет, но со помала големина на фајловите ;). Може да го користите и за кодирање на аудио на филмови ;).
It's not schizophrenia... It's just a voice in my head...

"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."