nu774 / fdkaac Goto Github PK
View Code? Open in Web Editor NEWcommand line encoder frontend for libfdk-aac
License: Other
command line encoder frontend for libfdk-aac
License: Other
What about updating the changelog
https://github.com/nu774/fdkaac/blob/master/ChangeLog
I tried
ogg123 -d wav file.ogg -f - | fdkaac -m5 - -o - | cat
And see no output.
Hey.
I have some WAV files from tracks from a CD which would play gapless, which does work perfectly when playing them back via mpv.
It also works when playing lame encoded MP3s from them, at least in mpv and on the ipod (many other players, e.g. mplayer or totem seem to not support gapless playback at all).
Since AAC is more advanced I tried to use that with fdkaac using version 0.6.2 and from libfdk-aac 0.1.4 with those commands:
fdkaac -p 2 -G 2 -m 5 1.wav -o fdkaac-lc-gap2-vbr5_1.m4a
fdkaac -p 2 -G 2 -m 5 2.wav -o fdkaac-lc-gap2-vbr5_2.m4a
(I also tried -p 5 and 29, and then everything with -G 0, but the problem looks just the same there).
When comparing the ends 1.wav with fdkaac-lc-gap2-vbr5_1.m4a it looks like this:
(and the beginning of the to tracks is perfectly aligned)
As you can see, the AAC has some audio and a nasty spike added (the spike looks different for LC, HE and HE2).
Comparing the begins of 2.wav and the corresponding fdkaac-lc-gap2-vbr5_2.m4a doesn't show such problems.
The fdkaac-lc-gap2-vbr5_2.m4a is again a bit longer than 2.wav (which is of course explainable) but no bugs data seems to have been added at the end,... maybe because there was digital silence.
Long story short... that bogus audio+spike is quite a showstopper for anything not having digital silence in the end, especially gapless files.
Any ideas whether/how this could be fixed?
Cheers,
Chris.
Hey,
I'm getting
ERROR: unsupported sample rate
File: https://drive.google.com/file/d/0B0NItiUgFjd1NURvR0ZFdk9Gbk0/edit?usp=sharing
Sample rate is 22222 Hz which I thought was ok? Any ideas?
../src/aacenc.c: In function 'aacenc_is_sbr_active':
../src/aacenc.c:37:37: error: 'AOT_MP2_SBR' undeclared (first use in this function)
case AOT_SBR: case AOT_PS: case AOT_MP2_SBR: case AOT_MP2_PS:
^~~~~~~~~~~
../src/aacenc.c:37:37: note: each undeclared identifier is reported only once for each function it appears in
../src/aacenc.c:37:55: error: 'AOT_MP2_PS' undeclared (first use in this function)
case AOT_SBR: case AOT_PS: case AOT_MP2_SBR: case AOT_MP2_PS:
^~~~~~~~~~
../src/aacenc.c:38:10: error: 'AOT_DABPLUS_SBR' undeclared (first use in this function)
case AOT_DABPLUS_SBR: case AOT_DABPLUS_PS:
^~~~~~~~~~~~~~~
../src/aacenc.c:38:32: error: 'AOT_DABPLUS_PS' undeclared (first use in this function)
case AOT_DABPLUS_SBR: case AOT_DABPLUS_PS:
^~~~~~~~~~~~~~
../src/aacenc.c: In function 'aacenc_is_dual_rate_sbr':
../src/aacenc.c:49:57: error: 'AOT_MP2_PS' undeclared (first use in this function)
if (params->profile == AOT_PS || params->profile == AOT_MP2_PS)
^~~~~~~~~~
../src/aacenc.c:51:63: error: 'AOT_MP2_SBR' undeclared (first use in this function)
else if (params->profile == AOT_SBR || params->profile == AOT_MP2_SBR)
^~~~~~~~~~~
These macros seem to be gone from FDK_audio.h in 0.1.5.
Just removing them allows compilation to finish.
diff --git a/src/aacenc.c b/src/aacenc.c
index 8df8afd..0dd47bb 100644
--- a/src/aacenc.c
+++ b/src/aacenc.c
@@ -34,8 +34,7 @@ int aacenc_is_sbr_ratio_available()
int aacenc_is_sbr_active(const aacenc_param_t *params)
{
switch (params->profile) {
- case AOT_SBR: case AOT_PS: case AOT_MP2_SBR: case AOT_MP2_PS:
- case AOT_DABPLUS_SBR: case AOT_DABPLUS_PS:
+ case AOT_SBR: case AOT_PS:
case AOT_DRM_SBR: case AOT_DRM_MPEG_PS:
return 1;
}
@@ -46,9 +45,9 @@ int aacenc_is_sbr_active(const aacenc_param_t *params)
int aacenc_is_dual_rate_sbr(const aacenc_param_t *params)
{
- if (params->profile == AOT_PS || params->profile == AOT_MP2_PS)
+ if (params->profile == AOT_PS)
return 1;
- else if (params->profile == AOT_SBR || params->profile == AOT_MP2_SBR)
+ else if (params->profile == AOT_SBR)
return params->sbr_ratio == 0 || params->sbr_ratio == 2;
else if (params->profile == AOT_ER_AAC_ELD && params->lowdelay_sbr)
return params->sbr_ratio == 2;
Hallo!
When I encode HE-AAC files with fdkaac > 0.5.0, the encoded files do not play in iTunes (tested with version 12.4.3.1 on Windows).
It seems that the explicit, backward compatible SBR signaling in libfdkaac does not work - see this commit:
71e4764
If I use fdkaac 0.5.0, HE-AAC files also play in iTunes as they should.
So I guess it would be great if you use your own implementation of explicit, backward compatible SBR signaling again?
It was introduced in the following commit:
9b8f991
Thanks for fdkaac,
LG
Georg
Hi, can you add nodelay to fdkaac? I'm always use karaoke subtitles so delay is important but fdkaac always delay compare to original audio although i'm not set delay
Hi
With this encoder...
How is sample rate set to
8000,11250,12000,16000,22500,24000,32000,44100,48000,64000,88200,96000 Khz?
How is number of channels set to 1,2,3,4,5,6?
No options are shown for these with "-h"
Hi!
Sometime back I worked on making fdkaac multi-threaded and I lost the code! I'll doing this again (for shits and giggles this time). Last I worked on to solve some latency issues of parallel jobs (I can't get into much detail).
Was wondering if such a PR would be welcomed.
I tested fdkaac and found funny thing. When --ignorelength option are present I'm getting strange block of date in the end of the file. Duration changed from 00:24:29.696 (70545407 samples) to 00:25:04.491 (72215551 samples), none of original data was modified.
Why this happening? Seems like this is libfdk-aac related.
Without --ignorelength I'm not getting this block. Length is same as source wav (00:24:29.696).
Output of fdkaac with --ignorelength:
[100%] 25:04.447/25:04.447 (33x), ETA 00:00.000
72213470/72213470 samples processed in 00:45.700
Output of fdkaac without --ignorelength:
[100%] 24:29.636/24:29.636 (30x), ETA 00:00.000
70542543/70542543 samples processed in 00:48.459
fdkaac 0.6.3, libfdk-aac 3.4.22, MacOS 10.10.5
Encoding parameters: fdkaac (-I) -f 2 -m 5 -o "${1%.*}.aac" "$1"
fdkaac -m 5 or fdk -p 2 -m 5 encoding from 24-bit/96kHz PCM will cause this:
fdkaac: ./libFDK/include/fixpoint_math.h:459: FIXP_DBL GetInvInt(int): Assertion `(intValue > 0) && (intValue < 50)' failed.
Aborted (core dumped)
Using a value for -m that is 1-4 does not do the same.
MSVC 2010, Windows 7 64-bit.
an error with fdkaac\src\aacenc.h:
changing line 8 from:
#include <fdk-aac/aacenc_lib.h>
to:
#include <fdk-aac/libAACenc/include/aacenc_lib.h>
allows the program to build. MSVC was complaining that it couldn't find aacenc_lib.h at all. I don't remember the exact error.
Hi there!
Thanks for the effort put into this tool.
I am currently facing an issue. I installed fdkaac
from the source. All went well except that no runtime looks created. /usr/local/bin/
does not contain any fdkaac
Do you have any hint?
Cheers!
Hi
I want to use fdk-aac as a static library.
how i can make .a library from the source code.
Hi there - I just wanted to suggest that getting chapter support into fdkaac would be amazing.
My current process for dealing with chapters is:
Having everything in a single tool would be really convenient.
Thanks in advance for reading this! fdkaac is awesome :)
Some players can't handle m4a files with 'mdat' before 'moov'
Would it be complicated to add an option to reverse the order, similar to what qt-faststart does?
OS - Slackware 14.2 (Linux 4.4.38 (x86_64))
Desktop environment - XFCE 4
libfdk-aac - 0.1.5
autoreconf: Entering directory .' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I m4 autoreconf: configure.ac: tracing autoreconf: configure.ac: not using Libtool autoreconf: running: /usr/bin/autoconf --force autoreconf: running: /usr/bin/autoheader --force autoreconf: running: automake --add-missing --copy --force-missing configure.ac:12: installing './compile' configure.ac:41: installing './config.guess' configure.ac:41: installing './config.sub' configure.ac:10: installing './install-sh' configure.ac:10: installing './missing' Makefile.am: installing './depcomp' autoreconf: Leaving directory
.'
checking for a BSD-compatible install... /usr/bin/ginstall -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking localcharset.h usability... yes
checking localcharset.h presence... yes
checking for localcharset.h... yes
checking langinfo.h usability... yes
checking langinfo.h presence... yes
checking for langinfo.h... yes
checking endian.h usability... yes
checking endian.h presence... yes
checking for endian.h... yes
checking byteswap.h usability... yes
checking byteswap.h presence... yes
checking for byteswap.h... yes
checking fdk-aac/aacenc_lib.h usability... yes
checking fdk-aac/aacenc_lib.h presence... yes
checking for fdk-aac/aacenc_lib.h... yes
checking for inline... inline
checking whether byte ordering is bigendian... no
checking for int16_t... yes
checking for int32_t... yes
checking for int64_t... yes
checking for int8_t... yes
checking for size_t... yes
checking for uint16_t... yes
checking for uint32_t... yes
checking for uint64_t... yes
checking for uint8_t... yes
checking for ptrdiff_t... yes
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking for struct __timeb64... no
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for sigaction... yes
checking for gettimeofday... yes
checking for nl_langinfo... yes
checking for _vscprintf... no
checking for fseeko64... yes
checking for getopt_long... yes
checking for library containing aacEncOpen... -lfdk-aac
checking build system type... x86_64-slackware-linux-gnu
checking host system type... x86_64-slackware-linux-gnu
checking for ld used by gcc... /usr/x86_64-slackware-linux/bin/ld
checking if the linker (/usr/x86_64-slackware-linux/bin/ld) is GNU ld... yes
checking for shared library run path origin... done
checking for iconv... yes
checking for working iconv... yes
checking for iconv declaration...
extern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
configure: WARNING: unrecognized options: --enable-unicode
make all-am
make[1]: вход в каталог «/tmp/build/multimedia/fdkaac/fdkaac-0.6.3»
depbase=echo src/aacenc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/aacenc.o -MD -MP -MF $depbase.Tpo -c -o src/aacenc.o src/aacenc.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/caf_reader.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/caf_reader.o -MD -MP -MF $depbase.Tpo -c -o src/caf_reader.o src/caf_reader.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/extrapolater.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/extrapolater.o -MD -MP -MF $depbase.Tpo -c -o src/extrapolater.o src/extrapolater.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/limiter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/limiter.o -MD -MP -MF $depbase.Tpo -c -o src/limiter.o src/limiter.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/lpc.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/lpc.o -MD -MP -MF $depbase.Tpo -c -o src/lpc.o src/lpc.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/m4af.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/m4af.o -MD -MP -MF $depbase.Tpo -c -o src/m4af.o src/m4af.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/main.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/main.o -MD -MP -MF $depbase.Tpo -c -o src/main.o src/main.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/metadata.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/metadata.o -MD -MP -MF $depbase.Tpo -c -o src/metadata.o src/metadata.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/parson.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/parson.o -MD -MP -MF $depbase.Tpo -c -o src/parson.o src/parson.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/pcm_float_converter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/pcm_float_converter.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_float_converter.o src/pcm_float_converter.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/pcm_native_converter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/pcm_native_converter.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_native_converter.o src/pcm_native_converter.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/pcm_readhelper.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/pcm_readhelper.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_readhelper.o src/pcm_readhelper.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/pcm_sint16_converter.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/pcm_sint16_converter.o -MD -MP -MF $depbase.Tpo -c -o src/pcm_sint16_converter.o src/pcm_sint16_converter.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/progress.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/progress.o -MD -MP -MF $depbase.Tpo -c -o src/progress.o src/progress.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/wav_reader.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/wav_reader.o -MD -MP -MF $depbase.Tpo -c -o src/wav_reader.o src/wav_reader.c &&
mv -f $depbase.Tpo $depbase.Po
depbase=echo src/compat_posix.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'
;
gcc -DHAVE_CONFIG_H -I. -O2 -fPIC -MT src/compat_posix.o -MD -MP -MF $depbase.Tpo -c -o src/compat_posix.o src/compat_posix.c &&
mv -f $depbase.Tpo $depbase.Po
gcc -O2 -fPIC -o fdkaac src/aacenc.o src/caf_reader.o src/extrapolater.o src/limiter.o src/lpc.o src/m4af.o src/main.o src/metadata.o src/parson.o src/pcm_float_converter.o src/pcm_native_converter.o src/pcm_readhelper.o src/pcm_sint16_converter.o src/progress.o src/wav_reader.o src/compat_posix.o -lfdk-aac -lm -lfdk-aac
src/compat_posix.o: In function aacenc_to_utf8': compat_posix.c:(.text+0xe7): undefined reference to
locale_charset'
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
make[1]: *** [Makefile:511: fdkaac] Ошибка 1
make[1]: выход из каталога «/tmp/build/multimedia/fdkaac/fdkaac-0.6.3»
make: *** [Makefile:369: all] Ошибка 2
Would you mind uploading compiled binaries to Github Releases?
It seems like this project is pretty much complete, so it's probably not worth worrying about setting up any sort of automated build process since just one upload every few years would seem to suffice.
I have some instructions for how to build on Mac and Linux, and I'd be happy to supply binaries for those two (including Apple Silicon M1).
(my process is documented here: https://github.com/coolaj86/fdkaac/releases/tag/v1.0.1-pre-1)
I realize that I could host these on my own Github page (which I'm doing for a client currently), but I'd like to get this up on Webi (webinstall.dev) as well, and we try to avoid 3rd party builds whenever possible since people generally trust 1st party builds more (and they generally work as documented).
error log
#12 249.6 Cloning into 'fdkaac'...
#12 254.1 configure.ac:56: error: required file '../config.rpath' not found
#12 254.2 autoreconf: automake failed with exit status: 1
my command
git clone https://github.com/nu774/fdkaac.git
cd fdkaac
autoreconf -i
./configure
make
make install
how to fix?
Hi, developers of fdkaac:
In the test of the binary fdkaac instrumented with ASAN. There is a Heap-buffer-overflow vulnerability in fdkaac, commit is 03c3c60 which is also the master branch.
Here is the ASAN mode output:
=================================================================
==1664==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x7efdfca69f00 at pc 0x00000047bf2c bp 0x7ffd4096cfe0 sp 0x7ffd4096c790
READ of size 27 at 0x7efdfca69f00 thread T0
#0 0x47bf2b in __interceptor_strlen.part.34 /home/ferry/Documents/llvm-project/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:375
#1 0x4f9d94 in caf_info /home/ferry/hwz/zeroday/fdkaac/src/caf_reader.c:116:19
#2 0x4f88f2 in caf_parse /home/ferry/hwz/zeroday/fdkaac/src/caf_reader.c:191:13
#3 0x4f88f2 in caf_open /home/ferry/hwz/zeroday/fdkaac/src/caf_reader.c:234:9
#4 0x541f4f in open_input /home/ferry/hwz/zeroday/fdkaac/src/main.c:754:27
#5 0x541f4f in main /home/ferry/hwz/zeroday/fdkaac/src/main.c:802:19
#6 0x7efdfb80883f in __libc_start_main /build/glibc-S7Ft5T/glibc-2.23/csu/../csu/libc-start.c:291
#7 0x41b8a8 in _start (/home/ferry/hwz/zeroday/bin/fdkaac-asan/fdkaac+0x41b8a8)
0x7efdfca69f00 is located 0 bytes to the right of 132864-byte region [0x7efdfca49800,0x7efdfca69f00)
allocated by thread T0 here:
#0 0x4aeca2 in malloc /home/ferry/Documents/llvm-project/compiler-rt/lib/asan/asan_malloc_linux.cpp:145
#1 0x4f9cb1 in caf_info /home/ferry/hwz/zeroday/fdkaac/src/caf_reader.c:109:34
#2 0x4f88f2 in caf_parse /home/ferry/hwz/zeroday/fdkaac/src/caf_reader.c:191:13
#3 0x4f88f2 in caf_open /home/ferry/hwz/zeroday/fdkaac/src/caf_reader.c:234:9
#4 0x541f4f in open_input /home/ferry/hwz/zeroday/fdkaac/src/main.c:754:27
#5 0x541f4f in main /home/ferry/hwz/zeroday/fdkaac/src/main.c:802:19
#6 0x7efdfb80883f in __libc_start_main /build/glibc-S7Ft5T/glibc-2.23/csu/../csu/libc-start.c:291
SUMMARY: AddressSanitizer: heap-buffer-overflow /home/ferry/Documents/llvm-project/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:375 in __interceptor_strlen.part.34
Shadow bytes around the buggy address:
0x0fe03f945390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0fe03f9453a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0fe03f9453b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0fe03f9453c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0fe03f9453d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0fe03f9453e0:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0fe03f9453f0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0fe03f945400: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0fe03f945410: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0fe03f945420: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0fe03f945430: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==1664==ABORTING
I also found a stack-buffer-overflow in fdkaac, src/main.c:81, read_callback(). Here is the ASAN output.
=================================================================
==30393==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffc7d3cc380 at pc 0x0000004372a8 bp 0x7ffc7d3ca330 sp 0x7ffc7d3c9ae0
WRITE of size 19584 at 0x7ffc7d3cc380 thread T0
==30393==WARNING: Can't read from symbolizer at fd 4
==30393==WARNING: Can't read from symbolizer at fd 4
==30393==WARNING: Can't read from symbolizer at fd 4
==30393==WARNING: Can't read from symbolizer at fd 4
==30393==WARNING: Failed to use and restart external symbolizer!
#0 0x4372a7 (/home/ferry/hwz/zeroday/bin/fdkaac-asan/fdkaac+0x4372a7)
#1 0x547356 (/home/ferry/hwz/zeroday/bin/fdkaac-asan/fdkaac+0x547356)
#2 0x568879 (/home/ferry/hwz/zeroday/bin/fdkaac-asan/fdkaac+0x568879)
Address 0x7ffc7d3cc380 is located in stack of thread T0 at offset 8224 in frame
#0 0x5685bf (/home/ferry/hwz/zeroday/bin/fdkaac-asan/fdkaac+0x5685bf)
This frame has 1 object(s):
[32, 8224) 'buff' (line 57) <== Memory access at offset 8224 overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
(longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow (/home/ferry/hwz/zeroday/bin/fdkaac-asan/fdkaac+0x4372a7)
Shadow bytes around the buggy address:
0x10000fa71820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x10000fa71830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x10000fa71840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x10000fa71850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x10000fa71860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x10000fa71870:[f3]f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3
0x10000fa71880: f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3 f3
0x10000fa71890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x10000fa718a0: 00 00 00 00 f1 f1 f1 f1 f8 f2 f2 f2 f8 f2 f8 f2
0x10000fa718b0: f8 f2 f8 f2 f8 f2 f8 f2 f8 f2 04 f2 00 f3 f3 f3
0x10000fa718c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==30393==ABORTING
https://github.com/17ssDP/fuzzer_crashes/blob/main/fdkaac
git clone https://github.com/nu774/fdkaac
cd fdkaac/
autoreconf -i
CC=clang CXX=clang++ CFLAGS="$CFLAGS -fsanitize=address -fno-omit-frame-pointer" CXXFLAGS="$CXXFLAGS -fsanitize=address -fno-omit-frame-pointer" ./configure
make
./fdkaac -p5 -b64 fdkaac-hbo -o /dev/null
Ubuntu 16.04
Clang 10.0.1
gcc 5.5
For example now I have this Python code:
title_escaped = title.replace("'", r"'\''")
cmd = fr'''cd /tmp;
curl {urls} |
/var/task/oggdec - -o - |
/var/task/fdkaac -m5 - -o "{episode_filename}"
--title='{title_escaped}'
--artist='Intelligent Speaker'
--album-artist='Intelligent Speaker'
--album='Intelligent Speaker'
--genre='Podcast'
--date='{pubDate}'
--comment='Voiced text from {source}'
'''.replace('\n', '')
output_from_shell = subprocess.getoutput(cmd)
But if title
with single quote - I get error
/bin/sh: -c: line 0: unexpected EOF while looking for matching `''
It would be nice to translate WAV metadata in the input stream, e.g. INAM (title), IART (artist), IPRD (album), ICRD (date), IPRT (track), etc. to corresponding MP4 fields, as otherwise it is lost.
wget --no-check-certificate https://github.com/nu774/fdkaac/archive/master.zip -O fdkaac-master.zip
doesn't always run but it's easy to download the file directly.
make install && popd && rd /s /q fdkaac-master
fails with this messgage
make: *** no rule to make target 'install'. Stop.
OK, how to fix this line?
In 2018, the new version FDK2 was launched, and brings several new technologies to Android OEMs, service providers and developers, including xHE-AAC, MPEG-D DRC dynamic range control and AAC-ELDv2. Android users benefit from the high audio quality of the Fraunhofer FDK.
xHE-AAC extends the usable stereo bitrate range of AAC: from as low as 12 kbit/s up to 500 kbit/s
Hi
These encoders:-
neroAacEnc
oggenc
opusenc
qaac
have option "ignorelength".
But fdkaac has option "ignore-length".
Is this deliberate, or is it a typo?
A minor annoyance when installing on fedoa 21.
ligbdk-aac.so is installed in /usr/local/lib by default. After compiling and installing fdkaac I got the message "error while loading shared libraries: libfdk-aac.so.1: cannot open shared object file: No such file or directory".
Symlinking the libraries in /usr/lib64/ solved the problem.
I don't remember having this problem before. Shouldn't the config script figure this out?
Hello,
I can't build fdkaac binary for OS X Maverick or Linux Ubuntu v.14.x, I think I have to merge your branch with http://downloads.sourceforge.net/opencore-amr/fdk-aac-0.1.3.tar.gz or https://github.com/mstorsjo/fdk-aac.git, but I don't know how (I'm not very experienced) : any help plase?
On the other hand, I tried the automake process for Win32 (‘fdkaac_autobuild-master’ project) , but it doesn't work at all (when typing “build-libfdk-aac.bat” at the prompt --> cp -p libfdk-aac.a /mingw/lib | cp: cannot create regular file ‘/mingw/lib’ : No such file or firectory | make: *** [install] Error 1
It errors with:
gcc -DHAVE_CONFIG_H -I. -I.. -Wall -O2 -D_FILE_OFFSET_BITS=64 -s -MT src/aacenc.o -MD -MP -MF $depbase.Tpo -c -o src/aacenc.o ../src/aacenc.c &&
mv -f $depbase.Tpo $depbase.Po
In file included from ../src/aacenc.c:11:0:
/usr/include/stdio.h:55:9: error: unknown type name ‘_fpos64_t’
typedef _fpos64_t fpos_t;
^
edit: I can compile fine with MinGW-w64 so I think the issue is with the configure script.
Hi, in the lastest version of this repo [PS: commit ID -> 1a1ee29], I found something insterest.
./fdkaac -p5 -b64 POC -o /dev/null
==122363==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x625000018900 at pc 0x00000043b985 bp 0x7ffe69d827d0 sp 0x7ffe69d81f80
READ of size 4 at 0x625000018900 thread T0
#0 0x43b984 in __interceptor_memcpy.part.46 /home/bupt/Desktop/tools/llvm-12.0.1/llvm/projects/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:810
#1 0x7fe7e606c24a in aacEncEncode (/usr/lib/x86_64-linux-gnu/libfdk-aac.so.1+0x2424a)
#2 0x4f7154 in aac_encode_frame /home/bupt/Desktop/fdkaac/src/aacenc.c:291:11
#3 0x51fd71 in encode /home/bupt/Desktop/fdkaac/src/main.c:554:24
#4 0x51fd71 in main /home/bupt/Desktop/fdkaac/src/main.c:862:19
#5 0x7fe7e5097c86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310
#6 0x41c9d9 in _start (/home/bupt/Desktop/fdkaac/fdkaac+0x41c9d9)
0x625000018900 is located 0 bytes to the right of 8192-byte region [0x625000016900,0x625000018900)
allocated by thread T0 here:
#0 0x4aefa0 in malloc /home/bupt/Desktop/tools/llvm-12.0.1/llvm/projects/compiler-rt/lib/asan/asan_malloc_linux.cpp:145
#1 0x51fb60 in encode /home/bupt/Desktop/fdkaac/src/main.c:535:12
#2 0x51fb60 in main /home/bupt/Desktop/fdkaac/src/main.c:862:19
#3 0x7fe7e5097c86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310
SUMMARY: AddressSanitizer: heap-buffer-overflow /home/bupt/Desktop/tools/llvm-12.0.1/llvm/projects/compiler-rt/lib/asan/../sanitizer_common/sanitizer_common_interceptors.inc:810 in __interceptor_memcpy.part.46
Shadow bytes around the buggy address:
0x0c4a7fffb0d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c4a7fffb0e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c4a7fffb0f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c4a7fffb100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c4a7fffb110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c4a7fffb120:[fa]fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a7fffb130: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a7fffb140: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a7fffb150: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a7fffb160: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c4a7fffb170: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc
==122363==ABORTING
./fdkaac -p5 -b64 POC -o /dev/null
AddressSanitizer:DEADLYSIGNAL
=================================================================
==122379==ERROR: AddressSanitizer: FPE on unknown address 0x00000053ade9 (pc 0x00000053ade9 bp 0x7ffe2be4ff90 sp 0x7ffe2be4fc60 T0)
#0 0x53ade9 in wav_open /home/bupt/Desktop/fdkaac/src/wav_reader.c:212:54
#1 0x51e35b in open_input /home/bupt/Desktop/fdkaac/src/main.c:746:27
#2 0x51e35b in main /home/bupt/Desktop/fdkaac/src/main.c:802:19
#3 0x7f17fe499c86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310
#4 0x41c9d9 in _start (/home/bupt/Desktop/fdkaac/fdkaac+0x41c9d9)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: FPE /home/bupt/Desktop/fdkaac/src/wav_reader.c:212:54 in wav_open
==122379==ABORTING
mstorsjo/fdk-aac@b95b15e broke compilation, e.g. by renaming several struct fields (one example: encoderDelay is now nDelay)
Hi
fdkaac -h shows a typo.
"--afterurner" should be "--afterburner"
Hey!
I attempted to run the following command in Powershell:
.\flac.exe 'in.flac' -s -d -c | .\fdkaac.exe - --ignorelength --bitrate 192 -w 20000 -o test.m4a
Which resulted in the following error message:
ERROR: unsupported input file
What's strange is that the same exact command worked fine in Ubuntu 20.04.
Do you have any idea on where we can begin debugging this?
Edit: Actually, running the command in Command Prompt works just fine - it's just very slow.
./fdkaac -m3 [sample file] -o /dev/null
AddressSanitizer:DEADLYSIGNAL
=================================================================
==78507==ERROR: AddressSanitizer: FPE on unknown address 0x00000053ad51 (pc 0x00000053ad51 bp 0x7ffea0d7ea30 sp 0x7ffea0d7e720 T0)
#0 0x53ad51 in wav_open /home/bupt/Desktop/fdkaac/src/wav_reader.c:210:54
#1 0x51e33b in open_input /home/bupt/Desktop/fdkaac/src/main.c:746:27
#2 0x51e33b in main /home/bupt/Desktop/fdkaac/src/main.c:802:19
#3 0x7f728a35ec86 in __libc_start_main /build/glibc-CVJwZb/glibc-2.27/csu/../csu/libc-start.c:310
#4 0x41c9d9 in _start (/home/bupt/Desktop/fdkaac/fdkaac+0x41c9d9)
AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: FPE /home/bupt/Desktop/fdkaac/src/wav_reader.c:210:54 in wav_open
==78507==ABORTING
I tried
ogg123 in.ogg - | fdkaac -b128 - -o out.m4a
And I see
ERROR: unsupported input file
There is a bunch of weird sjw guys spreading misinformation about FDK-AAC license, so I have a proposal to stop the rumors and just include the FDK-AAC license directly in the executable. It is required to distribute the license with the binary anyway. The license said "or other materials", so I think that binary guts are quite an "other material".
Redistribution and use in source and binary forms, with or without modification,
are permitted without payment of copyright license fees provided that you
satisfy the following conditions:You must retain the complete text of this software license in redistributions of
the FDK AAC Codec or your modifications thereto in source code form.You must retain the complete text of this software license in the documentation
and/or other materials provided with redistributions of the FDK AAC Codec or
your modifications thereto in binary form. You must make available free of
charge copies of the complete source code of the FDK AAC Codec and your
modifications thereto to recipients of copies in binary form.
Therefore I propose to do something like this master...tico-tico:fdk_license . I'll do the pull request if you like the idea.
Hi there.
As I mentioned briefly some time ago in hydrogenaudio, I was/am working on the Debian packaging of fdkaac, so that the executable can be produced in an automated way.
Do you want me to send a pull request with what I have so far? My idea would be to merge it in a, perhaps, separate branch, unless you don't mind it being in the master branch.
Thanks,
Rogério.
Hello,
I am trying to write tags to a certain file in my TAudioConverter but said file causes issues if fdkaac.exe is used as encoder.
File is ripped from CD and encoded to aac (.m4a) using fdkaac.exe. Used command line is "-m 0 -b 128 -p 2 -G 0". File plays fine without tags written. But when I write the tags, foobar2000 states that it is invalid and refuses to play it. However I can play the file with MPlayer.
This problem doesn't occur with other encoders I tried (qaac, neroaac, ffmpeg). So, I've run encoded files (still without tags) through atomicparsley to see atom trees.
Here are the results:
fdkaac: https://dl.dropboxusercontent.com/u/9617171/1.txt
neroaac: https://dl.dropboxusercontent.com/u/9617171/2.txt
qaac: https://dl.dropboxusercontent.com/u/9617171/3.txt
I've used the fdkaac.exe that I've compiled using sources from your repo and tagging library from http://www.3delite.hu/.
I can provide you with the sample file if need be.
TIA and regards.
Hi, it would be nice if fdkaac can add an image to the m4a, with syntax like --image <path to file>
Converting to AAC with ADTS Producess files with padding, how can avoid this? When testing with ffmpeg + libfdk_aac codec this not happens
Two errors:
Item severity code file line
Error LNK2019 unresolved external symbol ___wgetmainargs, the symbol is referenced in function _aacenc_getmainargs in fdkaac C : \ Users \ Shen Shu super \ Download \ compression \ fdkaac \ MSVC \ compat_win32.obj 1
Item severity code file line
Error LNK1120 1 which could not resolve the external command fdkaac C: \ Users \ Shen Shu super \ Downloads \ Compressed \ fdkaac \ MSVC \ Debug \ fdkaac.exe 1
Dear nu774,
Debian doesn't seem to pick up the fact that a new version is available. Is there anything that you can do to assist? https://tracker.debian.org/pkg/fdkaac Thanks!
Thank you for all your hard work!
Reuben
Would it be possible to incorporate FDK-AAC's decoding functionality or is there some reason that it hasn't been implemented?
There are certain instances where I'd love to be able to decode to .WAV or, if we're ambitious, decode/encode into .FLAC. Currently, I have to rely on non-open source options when I'm on a Windows box. Not my favorite thing to do.
There is a warning when compiling fdkaac 1.0.2 using the latest MinGW with MYSYS2:
cd fdkaac-1.0.2
autoreconf -i
#warning happens in next command
CC="gcc -pipe -static-libgcc" CXX="g++ -pipe -static-libgcc" ./configure --prefix=$MINGW_PREFIX/$MINGW_CHOST/ CFLAGS="-O3 -flto -march=native"
make -j8
make install
gcc -pipe -static-libgcc -O3 -flto -march=native -o fdkaac.exe src/aacenc.o src/caf_reader.o src/extrapolater.o src/limiter.o src/lpc.o src/m4af.o src/main.o src/metadata.o src/parson.o src/pcm_float_converter.o src/pcm_native_converter.o src/pcm_readhelper.o src/pcm_sint16_converter.o src/progress.o src/wav_reader.o src/compat_win32.o fdkaac.o -liconv -lfdk-aac -lm -lfdk-aac
In function 'apple_chan_chunk',
inlined from 'caf_parse' at src/caf_reader.c:190:17,
inlined from 'caf_open' at src/caf_reader.c:230:9,
inlined from 'open_input' at src/main.c:754:27,
inlined from 'main' at src/main.c:802:19:
src/pcm_readhelper.c:231:24: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
231 | mapping[i] = i;
| ^
src/main.c: In function 'main':
src/caf_reader.c:29:13: note: at offset 0 to object 'chanmap' with size 8 declared here
29 | uint8_t chanmap[8];
| ^
(full logs in kekyo/fdk-aac-win32-builder#9 (comment))
According to a similar problem in another project (tarantool/tarantool#5564), this warning is due to a zero-lenght array, and happened when using GCC version >= 10.
I don't know how to fix this, but this info might be helpful tarantool/tarantool@8915ae2.
Zero-lenght arrays are GNU C extension. There's ISO C99 flexible array member, which is preffered mechanism to declare variable-length types.
Flexible array member allows us to avoid applying sizeof operator cause it's incomplete type, so it will be an error at compile time. There're any moments else why it's better way to implement such structures via FAM:
https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.htmlIn this issue it fixed gcc 10 warning:
"warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]"
$ gcc -v
Using built-in specs.
COLLECT_GCC=E:\Etc\HUGE\msys64\mingw64\bin\gcc.exe
COLLECT_LTO_WRAPPER=E:/Etc/HUGE/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.3.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-10.3.0/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --enable-bootstrap --enable-checking=release --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,fortran,ada,objc,obj-c++,jit --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-filesystem-ts=yes --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-lto --enable-libgomp --disable-multilib --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion='Rev2, Built by MSYS2 project' --with-bugurl=https://github.com/msys2/MINGW-packages/issues --with-gnu-as --with-gnu-ld --with-boot-ldflags='-pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high -Wl,--disable-dynamicbase -static-libstdc++ -static-libgcc' 'LDFLAGS_FOR_TARGET=-pipe -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high' --enable-linker-plugin-flags='LDFLAGS=-static-libstdc++\ -static-libgcc\ -pipe\ -Wl,--dynamicbase,--high-entropy-va,--nxcompat,--default-image-base-high\ -Wl,--stack,12582912'
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.3.0 (Rev2, Built by MSYS2 project)
looking for some guidance for making the necessary changes to enable faststart
In 2018, the new version FDK2 was launched, and brings several new technologies to Android OEMs, service providers and developers, including xHE-AAC, MPEG-D DRC dynamic range control and AAC-ELDv2. Android users benefit from the high audio quality of the Fraunhofer FDK.
xHE-AAC extends the usable stereo bitrate range of AAC: from as low as 12 kbit/s up to 500 kbit/s
Hi,
I would like to know if there is a way to add delay when encoding ? The same way you can with your implementation of QAAC with --delay
thanks.
Hi,
I got the following error message when I tried to build fdkaac v0.6.0 on OS X Mavericks with Homebrew.
$ autoreconf -i
configure.ac:49: warning: macro 'AM_ICONV' not found in library
You can see the entire log message on Gist.
This issue is similar to #11 Build binaries with OS X Maverick and Ubuntu 14.x.
However, I got the same error message even if gettext and libiconv were installed using Homebrew.
Do you have any good idea to avoid this error?
I would like to request Windows 10 long path support. The prefix workaround is working so likely only the manifest info is missing, more info here:
https://github.com/staxrip/staxrip/wiki/Windows-10-long-path-support
Hi
This shows "unrecognized option '--bitrate-mode'"
$ fdkaac --bitrate-mode 3 foo.wav
But this is OK:-
$ fdkaac -m 3 foo.wav
Hi nu774,
I'm running a Kubuntu 23.10 and I having issue trying to encode HEv1 and HEv2 files, it also return the same error for ELDv2 profile.
I replaced the fdkaac v1.0.0 of repos to a 1.0.5 and a master compiled from sources, but nothing changes.
fdkaac version
:~$ fdkaac
fdkaac 1.0.5
Usage: fdkaac [options] input_file
Options:
-h, --help Print this help message
-p, --profile <n> Profile (audio object type)
2: MPEG-4 AAC LC (default)
5: MPEG-4 HE-AAC (SBR)
29: MPEG-4 HE-AAC v2 (SBR+PS)
23: MPEG-4 AAC LD
39: MPEG-4 AAC ELD
[...]
libfdk_aac version
libfdk-aac-dev/mantic,now 2.0.2-3~ubuntu1 amd64
libfdk-aac2/mantic,now 2.0.2-3~ubuntu1 amd64
good runs
:~$ fdkaac -m 3 -p 2 -o test.m4a test.wav
[100%] 02:23.931/02:23.931 (77x), ETA 00:00.000
6347358/6347358 samples processed in 00:01.878
:~$ fdkaac -m 2 -p 2 -o test.m4a test.wav
[100%] 02:23.931/02:23.931 (87x), ETA 00:00.000
6347358/6347358 samples processed in 00:01.645
:~$ fdkaac -m 3 -p 23 -o test.m4a test.wav
[100%] 02:23.931/02:23.931 (63x), ETA 00:00.000
6347358/6347358 samples processed in 00:02.283
:~$ fdkaac -m 3 -p 39 -o test.m4a test.wav
[100%] 02:23.931/02:23.931 (64x), ETA 00:00.000
6347358/6347358 samples processed in 00:02.254
bad runs
:~$ fdkaac -m 3 -p 5 -o test.m4a test.wav
ERROR: unsupported profile
:~$ fdkaac -m 2 -p 5 -o test.m4a test.wav
ERROR: unsupported profile
:~$ fdkaac -b 50 -p 5 -o test.m4a test.wav
ERROR: unsupported profile
:~$ fdkaac -m 2 -p 29 -o test.m4a test.wav
ERROR: unsupported profile
:~$ fdkaac -m 1 -p 29 -o test.m4a test.wav
ERROR: unsupported profile
:~$ fdkaac -b 32 -p 29 -o test.m4a test.wav
ERROR: unsupported profile
:~$ fdkaac -m 3 -p 44 -o test.m4a test.wav
ERROR: unsupported profile
test.wav info
General
Complete name : /home/***/test.wav
Format : Wave
Format settings : PcmWaveformat
File size : 24.2 MiB
Duration : 2 min 23 s
Overall bit rate mode : Constant
Overall bit rate : 1 411 kb/s
Audio
Format : PCM
Format settings : Little / Signed
Codec ID : 1
Duration : 2 min 23 s
Bit rate mode : Constant
Bit rate : 1 411.2 kb/s
Channel(s) : 2 channels
Sampling rate : 44.1 kHz
Bit depth : 16 bits
Stream size : 24.2 MiB (100%)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.