Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar. (Read 1496 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Hi I am Rupesh from India and I have some mp3 files and I want to convert to m4a files using fdkaac encoder latest version available. Similarly I want want to convert these mp3 files to opus using opusenc encoder latest version available.

There are a number of benifits of using latest version of encoder available like the output audio quality will be good etc., rather than using old one.

Generally i am using fdkaac or opusenc in other software like dbpoweramp and foobar. Using them directly is not good as the above software provide nice guis.

These software providers supply their own encoders for fdkaac and opusenc and they are too old.

I want to use the latest version of fdkaac and opusenc encoders instead. Source code of these encoders are available from git etc.,.

I have downloaded media auto build suite and ran it. It has downloaded the source code and compiled and created .exe files for fdkaac and opusenc.

I have copied these files to encoder directory present in the dbpoweramp folder.

I tried to convert these mp3 files to m4a and opus using old fdkaac and opusenc encoders provided by dbpoweramp. After that I have converted these mp3 files to m4a and opus using new fdkaac and opusenc compiled by msys2 or mingw64.

The files converted using old fdkaac and opusenc are of small in size than the ones converted using newly compiled fdkaac and opusenc at same bitrate.

I think that msys2 compiler is inferior than others. Which is the best way to compile source code of fdkaac and opusenc in optimal way like gcc or visual studio etc.,.

Can you suggest where to get or how to compile fdkaac and opusenc encoders .exe files which converts mp3 files to best quality output audio files.

Regards,
Rupesh.
Regards,
Rupesh.

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #1
Since the source files are already lossy MP3s, why bother converting them at all? I'd only make the quality worse.

MSYS2 includes a GCC and Clang port. There is no specific MSYS2 compiler as such, it just comes with the Mingw-x64 ports.
The different in resultant media files can be down to a number of things, not least of which metadata, etc.

Converting from one lossy format to another never really makes any sense, since the artifacts created by the first lossy encoding often will lead to a less-than-optimal re-encoding in the second run, and also introduce additional artifacts on top of that.
The only exception is, if the old format is simply so out of date, that support is dropped, but I don't see that happening any time soon with MP3.

All that aside, all encoding processes don't consider the input files in their compressed form. All of the input files will be decoded to PCM and that is then fed to the second encoder. Some GUIs make it appear as this is all one step, but that isn't the case at all.
If you want to download and compile your latest snapshot of say opusenc you can do that, but keep in mind, that this is just a snapshot from git with changes happening almost all the time. The latest release of opusenc is available on https://github.com/xiph/opus/releases/tag/v1.1.2 there is no automatic build process set up, though.
As for AAC, though: since you're already on Windows, you might as well use QAAC. Getting the necessary libraries (CoreAudioToolbox) isn't too difficult, and it'll be probably the best encoder for AAC available to you.
In any event, the compiler should have no bearing on the resulting audio files handled by the application you've built. The executable and the libraries might differ in size and in execution speed, etc. but the resulting audio files should be the same. The might only differ, if the source code for the encoders was different between those two. Unless the source code has preprocessor directives for different compilers, but that wouldn't make much sense.

As for the assumption "newest encoder equals better audio quality" that is very debatable, especially if you're talking about software pulled from git. You might get a snapshot, that contains a load of bad ideas and errors compared to what it was the day before, etc. "newer" doesn't mean "better", at all.

As for the compilation process: GCC is the standard on Linux systems, but you can also use Clang if you want to, there's not much difference except for code optimization and features, but that will not have any bearing on the audio files. Since you're on Windows, you might as well install VisualStudio and use MSVC to compile the code. Again, that might result in differences in terms of code optimization, but should have no impact on the files resulting from using that application.

I'm not a dbPowerAmp user, and someone might want to clarify, if they simply run the executables, or if they load one of the compiled [t].DLL[/t]s.


Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #3
dBpoweramp R17 uses Opus 1.3.1 and if you look here:

https://opus-codec.org/

1.3.1 is the latest.

Our FDK is 2.0.2 which if you look here, 2.0.2 is the latest:

https://github.com/mstorsjo/fdk-aac

Opusenc is ok but I want latest fdkaac. Git repository consists of source code and I want executable file. I am asking which is the best way to compile fdkaac ie using gcc or visual studio or msys2 etc.,.

Already I have replied to spoon in dbpoweramp forum. I am doing again as others may see.
Regards,
Rupesh.

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #4
The latest fdk-aac linked above doesn't include any command line tools. Those exist in a different repository. You'll need to combine the libfdk-aac that repo builds with the command line tool from the other repository.

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #5
The latest fdk-aac linked above doesn't include any command line tools. Those exist in a different repository. You'll need to combine the libfdk-aac that repo builds with the command line tool from the other repository.

I have seen the repositories of both fdkaac and lib-fdkaac May I know how to combine library lib-fdkaac and fdkaac into single executable file called fdkaac.

I have installed visual studio 2022 with c++ compiler,msvc, make tools, git for windows etc.,.

If you give any small link to how to compile I will follow it and create fdkaac.
Regards,
Rupesh.

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #6
From the past 4 years I am using fdkaac and opusenc with dbpoweramp and I am satisfied with the audio quality of converted audio files.

So I want to use same fdkaac and opusenc with dbpoweramp but with latest versions of the above.

As I want windows versions of the above encoders I think that visual studio produces perfect executable files than msys2 or mingw64 gcc.

At present I have downloaded visual studio community edition 2022 and all the components of vc ++ and Linux make tools etc.,. But I don't know how to compile source code obtained from git.

I have seen the source code of fdkaac present in the nu774 fdkaac repository of git. In it I can see .sln and .vcxproj files.

If I open these files can I compile source code automatically without any much effort of installing mingw and passing parameters to it.

In the doom forum I have noticed that someone has compiled fdkaac 2.0.1 with msys2 and provided media fire link. The link is

http://www.mediafire.com/file/jphuy8iljrf9mf0/fdkaac-v2.0.1.7z/file

Can I trust it and use it in my dbpoweramp or foobar.
Regards,
Rupesh.

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #7
Hi at present I am using fdkaac encoder latest which is obtained from media auto build suite.

It has downloaded msys2 and ming64, gcc etc.,. After that it has compiled source code of many audio tools and ffmpeg.

First I tried to create ffmpeg tool but after compiling fdkaac and opusenc the process has been stopped due to errors.

Many of you may be struggling to compile source code of fdkaac and opusenc, ffmpeg etc.,. Including me as I tried to compile fdkaac source code in visual studio but not succeeded.

I am suggesting to all of you to try this tool called media auto build suite.

I have tested m4a files generated by various versions of fdkaac ie., One downloaded from media fire, compiled by msys2, old fdkaac etc.,. My conclusion is all versions generated little differences in file size but quality is same of all output audio files.

My doubt is all source mp3 files are of 16 bit depth. What happens when I convert these mp3 files to m4a files by specifying bit depth as 24 bit.

I think that encoding to 24 bit may improve the quality of output m4a files.

Regards,
Rupesh.

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #8
2.0.1? we are using 2.0.2, why would you want to use older? as already mentioned we are using the latest code for both Opus and fdkaac, recompiling will not get you anything better.

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #9
Sorry for the disguise I am asking lot of questions because previously I mean five years back I have searched a lot to convert MP3 files to other codecs and used various tools but none of them satisfied me and finally I have tried dbpoweramp and after that fully satisfied.

At the starting i have converted MP3 files of size 450gb to other codecs using dbpoweramp. At present I have bought new PC with latest intel processor with Intel hd sound and realtek 897 alc.

Again I want to convert these same MP3 files to other using latest version of fdkaac and opusenc encoders. So I have searched web and compiled myself using msys2.

I have seen the version of opusenc in windows terminal and found that both are same.

I have used four fdkaac encoders one compiled using msys2 and the one provided by dbpoweramp 17.1 and two others downloaded from web.

Two encoders ie., One provided by dbpoweramp and the one downloaded from web are of same size and produced same output m4a file size.

The id tag properties of the m4a file generated by these two encoders are as below

fdkaac 1.0.0, libfdk-aac 4.0.0, VBR mode 1

The other two fdkaac encoders are one compiled by msys2 and the other downloaded from web

The id tag properties of the m4a file generated by these two encoders are as below

fdkaac 1.0.2, libfdk-aac 4.0.1, VBR mode 1

I have played all the m4a files in my android smartphone player and all sounds good.

I think that the fdkaac encoder provided by dbpoweramp is only two months older than the one compiled by msys2 gcc.

If you instruct as "use the one provided by dbpoweramp and discard everything else"  I will follow your instructions.

Or if you instruct as " use the latest fdkaac encoder compiled or downloaded from web and discard the one provided by dbpoweramp" I will follow your instructions.

Finally my request is how to use intel HD audio features and how to use realtek 897 alc during encoding. If these two can't be used strictly say no. I have installed latest drivers for hd audio and realtek 897 alc. I have loaded direct x dsp in dbpoweramp and unfortunately it has detected none.

Please try to read the current post thoroughly and try to reply to my questions

1) Is there any need to use latest fdkaac encoder

2) Is it possible to use intel HD audio and realtek 897 alc during encoding.
Regards,
Rupesh.

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #10
I have just converted a file and it gives:

fdkaac 1.0.2, libfdk-aac 4.0.1, CBR 256kbps

We update dBpoweramp in 2 weeks to R17.5, although I am 99% certain the latest R17.4 has the above encoder already

 

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #11
Ok I will upgrade to latest version of fdkaac. Is there any improvement in quality by converting 16 bit depth MP3 files to m4a files by specifying minimum bit depth as 24 bit and maximum bit depth as 32 bit float in the dsp of bitdepth.

Is it possible to use intel HD audio and realtek 897 codec during encoding process.
Regards,
Rupesh.

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #12
Is there any improvement in quality by converting 16 bit depth MP3
There is no "improvement in quality" by converting MP3 to anything else.

Is it possible to use intel HD audio and realtek 897 codec during encoding process.
No. Those are only used for input and output. They have no effect on encoding or decoding.

Re: Getting and running fdkaac and opusenc encoders for dbpoweramp and foobar.

Reply #13
As aac defaults to 16 bit depth and I thought that aac is inferior than other codecs. Is it true.
Regards,
Rupesh.