How do I produce xHE-AAC Audio files under Ubuntu?

Under Ubuntu I can easily produce AAC files: AAC-LC, HE-AAC and even HE-AACv2. But how do I produce the newest form of AAC: xHE-AAC which promises to give a consistent performance at low data rates?


Solution 1:

For many years no Open Source xHE-AAC encoder existed for Linux but that has all changed in early 2020 with the initial release of Christian R. Helmrich's exhale. This builds easily under Ubuntu, I have tested under 20.04 where only a few steps are required to build the very latest version:

Building exhale...

Use the following steps in sequence, copying each command and pasting into a Terminal window (Note: If you have a 32bit installation you will need: BUILD32=1) :

sudo apt-get install build-essential
mkdir $HOME/Desktop/exhale_build && cd $HOME/Desktop/exhale_build
wget https://gitlab.com/ecodis/exhale/-/archive/v1.1.9/exhale-v1.1.9.tar.gz
tar xvf exhale-v1.1.9.tar.gz && cd exhale-v1.1.9
make BUILD32=0 release
sudo cp -v bin/exhale /usr/local/bin

And this has successfully installed our xHE-AAC encoder; test your installation as follows:

andrew@ithaca:~$ exhale | head -n 6

  ---------------------------------------------------------------------
 | exhale - ecodis extended high-efficiency and low-complexity encoder |
 |                                                                     |
 | version 1.1.9 (x64, built on Feb 21 2022) - written by C.R.Helmrich |
  ---------------------------------------------------------------------
andrew@ithaca:~$ 

And now for a few usage tips:

Using exhale...

To test exhale I would strongly advise the use of a 'standard' wav file; this can be downloaded and extracted as follows:

cd $HOME/Desktop
wget http://samples.mplayerhq.hu/A-codecs/lossless/luckynight.wav.bz2
bunzip2 -v luckynight.wav.bz2

And now this files can easily be encoded to xHE-AAC using a selected preset bit-rate mode from 1 - 10 with 1 being about 64kbit/s and 10 being about 192kbit/s. The following encodes to about 96kbit/s:

exhale 3 luckynight.wav luckynight_USAC.m4a

Congratulations, you have produced an xHE-AAC file under Ubuntu!

Notes...

  • exhale Wiki :: Frequently Asked Questions (FAQ): Some useful questions and answers in particular a table showing the relationship between bit-rate mode and resulting kbit/s.
  • Topic: exhale - Open Source xHE-AAC encoder: The Hydrogen Audio home for exhale. Importantly the developer posts here and is available for feedback.
  • FFmpeg Ticket: Support USAC / xHE-AAC: The crucial ticket to get a decoder available in avcodec and thence in MPlayer, mpv, vlc etc.
  • What about playback??: Best playback for Linux users at the moment is to use Wine and the latest release of Foobar 2000. You will also need to install version 1.7 or later of the fdk-aac packet decoder found here...