libfaac vs fdk-aac

最近做AAC的相关开发,而最早接触的,自然是ffmpeg,从ffmpeg中得知有libfaac这个开源库。而之前实现的一些HLS的功能,基于ffmpeg以及libfaac可以完成所有的功能实现。而现如今要做的是一个aac的编解码操作。而对ffmpeg有所了解后,个人评估直接调用aac相关的功能库,而不通过ffmpeg,原因是因为编解码操作其实是很频繁的,而如果调用ffmpeg的API,是可以有效的对音频进行抽象,后续需要替换库,则仅仅是将ffmpeg进行重新编码。但是也由于多了ffmpeg这一层的适配层。导致性能有所下降。因此考虑了直接基于libfaac进行开发。

但是,在后续学习aac的时候,找到了另外的一个库:fdk-aac,这个库比libfaac还“年轻”。年轻有年轻的优势,但是也有年轻的缺点。因此这里对这两个库进行一个简单的对比。

编码器 Bitrate
modes
Audio Object Types Channels 解码支持
CBR VBR LC HEv1 (SBR) HEv2 (SBR+PS) LD ELD
fdk-aac 支持 支持 支持 支持 支持 支持 支持 8(7.1) 支持
FAAC 非真正的CBR 支持 支持 不支持 不支持 不支持 不支持 6(5.1) 需要配合FAAD才能支持

根据上表格来看,fdk-aac单直接使用其API就可以完成编解码的业务,并且支持Audio Object Types更加全面,作为一个新的库,有更加良好的发展前景!因此选择使用fdk-aac进行aac的编解码开发。

参考资料:

Advanced Audio Coding

Freeware Advanced Audio Coder

Fraunhofer FDK AAC code

Fraunhofer FDK AAC

AAC encoders

转载请注明: 转载自elkPi.com

本文链接地址: libfaac vs fdk-aac

发表评论

电子邮件地址不会被公开。 必填项已用*标注