Skip to main content

Topic: Good cross platform scriptable encoding solution for AAC/adts with VBR (Read 1484 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • Elucidus
  • [*]
Good cross platform scriptable encoding solution for AAC/adts with VBR
I'm trying to set up 2 build scripts for encoding VBR AAC files from a list of source wavs. I've gotten ffmpeg running well for AMR and CBR AAC, but I'd really like to use VBR to get the file size down as some of these files will be transmitted over the air to mobile devices.

The constraints are that I have to come up with a solution that will work on both Linux and Windows environments, and it has to create an AAC using the adts container, due to byte-stitching of multiple files. neroAacEnc is out because it uses the mp4 container.

At any rate, I've tried ffmpeg, older versions (ca 2004-2007) include libFAAC which seems to have a "functional" VBR encoder, but I've noticed that these versions truncate the audio file, a 1/4 sec short or so.

The latest versions of ffmpeg with the opencore-amr implementation (as well as visual on) don't seem to support VBR. (The -aq flag effectively does nothing.)

A very simple example of this is here:
ffmpeg.exe -i infile.wav -aq 75 -vol 574 -ar 16000 outfile.wav

(I found that, at least with VBR, limiting the audio rate helps eliminate some of the digital distortion at lower quality levels.)