I'm developing an application that decodes mp3 files on-the-fly using libMAD end encodes it's output with LAME.
Now I want to replace LAME with HE-AAC, so good acc encoder needed.
My tests show that FLAAC quality is much lesser compared to 3GPP encoder for example.
Is there any alternative to FLAAC with better quality closer to 3GPP's encoder?
I don't mean free solutions only.
Or have anyone used 3GPP's encoder to encode labMAD output, is it possible?
PS: I'm not looking for a command line utility, I'm looking for a C/C++ library to use in my program.
What about Nero's AAC encoder? It supports LC-AAC, HE-AACv1, and HE-AACv2 encoding.
I'm developing an application that decodes mp3 files on-the-fly using libMAD end encodes it's output with LAME.
You mean that you take some MP3, decode it, and re-encode it to MP3 using LAME?
Nero AAC encoder is a command-line utility, not a library that I can link to and use in my program.
What about Nero's AAC encoder? It supports LC-AAC, HE-AACv1, and HE-AACv2 encoding.
Exactly.
Re-encoding allows me to add sound effects like crossfading and bitrate convertions.
I'm developing an application that decodes mp3 files on-the-fly using libMAD end encodes it's output with LAME.
You mean that you take some MP3, decode it, and re-encode it to MP3 using LAME?
Maybe you could write your own library that provides a generic API for interfacing with a command line utility? That would open up your options quite a bit.
Another option might be to take a look at the Quicktime API (http://developer.apple.com/documentation/QuickTime/Rm/Fundamentals/QTOverview/QTOverview_Document/chapter_1000_section_3.html). I've not taken a close look at it myself but it may provide the functionality you need.
edit: whoops you're looking for a linux library so I guess this is out.... (also note I'm sketchy on whether QT supports HE-AAC now or not)
Otherwise, if this is a commercial project you could talk to Nero about licensing the Nero Digital Audio API.
This would be horrible slow as I decode and encode streams of audio by frames...
Make external system call for every frame is just too expensive
Maybe you could write your own library that provides a generic API for interfacing with a command line utility? That would open up your options quite a bit.
This would be horrible slow as I decode and encode streams of audio by frames...
Make external system call for every frame is just too expensive
I think you are out of luck. And anyway, encoding one frame at a time wouldn't make a whole lot of sense anyway. You should probably fix your program to process a sane number of samples in each pass, or just decode the whole thing to wav, process it, and then encode.
This would be horrible slow as I decode and encode streams of audio by frames...
Make external system call for every frame is just too expensive
I think you are out of luck. And anyway, encoding one frame at a time wouldn't make a whole lot of sense anyway. You should probably fix your program to process a sane number of samples in each pass, or just decode the whole thing to wav, process it, and then encode.
Sorry, I'm not so good in English, I mean I decode and encode audio stream by pie?es, not by single frames of course
This would be horrible slow as I decode and encode streams of audio by frames...
Make external system call for every frame is just too expensive
I think you are out of luck. And anyway, encoding one frame at a time wouldn't make a whole lot of sense anyway. You should probably fix your program to process a sane number of samples in each pass, or just decode the whole thing to wav, process it, and then encode.
Sorry, I'm not so good in English, I mean I decode and encode audio stream by pie?es, not by single frames of course
Ah ok. An AAC frame is defined as 2048 samples, which indeed would be a very small bit of data
(also note I'm sketchy on whether QT supports HE-AAC now or not)
Just to further hammer the nail in QuickTime's Linux coffin (at least for this purpose), it doesn't support the proper decoding of HE-AAC files. In fact, it can't encode HE-AAC files at all. I don't know why Apple has refused to adapt HE-AAC. I know many people could find it handy who own only an iPod shuffle or a 8GB (or less) iPod nano/touch.
I'm developing an application that decodes mp3 files on-the-fly using libMAD end encodes it's output with LAME.
Now I want to replace LAME with HE-AAC, so good acc encoder needed.
My tests show that FLAAC quality is much lesser compared to 3GPP encoder for example.
Is there any alternative to FLAAC with better quality closer to 3GPP's encoder?
I don't mean free solutions only.
Or have anyone used 3GPP's encoder to encode labMAD output, is it possible?
PS: I'm not looking for a command line utility, I'm looking for a C/C++ library to use in my program.
libaacplus
http://tipok.org.ua/node/17 (http://tipok.org.ua/node/17)
Is there any alternative to FLAAC with better quality closer to 3GPP's encoder?
What about
aacplusenc from http://teknoraver.net/software/mp4tools (http://teknoraver.net/software/mp4tools) ? I haven't tried it, but maybe it is an alternative to Nero?