Audio Codec Encoder Compare

This document is mainly used to record the difference between different encoders with the same data and the same format.

Test results are for reference only, if in doubt, please try other test methods.

Test file:

AAC

The AAC format was introduced in 1997, and today(2023) 26 years have passed since then. During this time, various codec packages appeared. So, what is the difference between them? Here choose 3 AAC encoders that GStreamer supports and test them on the GStreamer command line.

The test results are as follows:

 

Target Bitrate(b/s)

Transfer Time(ms)

Output File Size(byte)

Actual br/Target br

fdk-aac-2.0.2

64k

584

283514

1.00224

128k

604

566632

1.00154

256k

593

1133134

1.00142

512k

593

1171200

?

avenc_aac-4.4.2

64k

994

295733

1.04544

128k

1216

582164

1.02900

256k

5155

867554

0.716717

512k

5495

867129

?

vo-aacenc-0.1.3

64k

655

281583

0.99542

128k

645

565452

0.99946

256k

655

281583

?

From the table above, we can see the fdk-aac is the best of the three:

  • The fad-aac maintains good compression speed and bitrate accuracy at all three bitrates: 64K,128K, and 256K.

  • The avenc_aac is supported by FFmpeg and its bitrate accuracy is not as good as fdk-aac. In terms of coding efficiency, it is even lower than the fdk-aac.

  • In terms of coding efficiency, the vo-aacenc is closer to fdk-aac, but in terms of bitrate support and accuracy, it's not as good as fdk-aac and avenc_aac.

What's more, the fdk-aac supports encoding and decoding, it is based on the BSD License. And the vo-aacenc only supports encoding, it is based on the Apache License. The avenc_aac is provided by FFmpeg, maybe is based on the LGPL License.

Based on the comprehensive test results, we recommend using fdk-aac.