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. About the test way, please refer to AAC.
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.
So, from the test result, we suggest use fdk-aac.