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: QAAC: discussion, questions, feature requests, etc. (Read 684768 times) previous topic - next topic
0 Members and 3 Guests are viewing this topic.

QAAC: discussion, questions, feature requests, etc.

Reply #750
Is there any comparison regarding quality between the different options in qaac?

What quality? qaac offers only a few options regarding AAC encoding quality.
You choose encoding strategy (TVBR or something), choose TVBR quality or bitrate.
You have another option -q that controls quality/speed trade off but usually you don't have to touch it, and that's all.

QAAC: discussion, questions, feature requests, etc.

Reply #751
HI !!

Does qaac support downmixing channels to mono dependless on the input channels configuration?

I mean:
convert 5.1 to mono
convert 2.0 to mono
leave mono intact

--matrix-preset mono crashesh for mono files ;(

No.
You have to create a file that contains mixing matrix spec and let qaac know your spec.
--matrix-preset expects that you have stored those spec files in a certain pre-defined directories, and qaac just searches for it.
Since shape of matrix is different when number of input channels is different, you cannot share the same "catch-all" matrix for  2.0 input and 5.1 input.
For mono output, stereo->mono matrix will be like this:
Code: [Select]
1 1

5.1 surround->mono matrix will be like this (this one discards LFE channel):
Code: [Select]
1 1 1 0 1 1

Read here:
https://github.com/nu774/qaac/wiki/Matrix-mixer

QAAC: discussion, questions, feature requests, etc.

Reply #752
I did one more test the other way around. 96kHz file conversion to 48 and 44.1
96 -> 48: 9.64 seconds
96 -> 44.1: 9.59 seconds

That result shows a draw, more likely. In fact, in this case, you have a slower resampling ( 96 -> 44.1 vs 96 -> 48) compensated by a faster encoding (44.1 vs 48).



Third, as for soxr, it looks like integer ratio down sampling is indeed faster (probably requires smaller numbers of filter stages). Here is the results in my environment:
88200 -> 48000: 117x
88200 -> 44100: 380x
88200 -> 36000: 195x

Finally, If you care about the speed, you can benefit from --threading.
When --threading is on, resampling  runs on the input thread, encoding runs on another thread. Since encoding is a lot slower than input + resampling, encoding speed dominates the whole process, and the total speed shouldn't be affected by the resampling efficiency.


Now I've realized that by foobar test was biased in this sense. The resampling was happening in foobar's thread whereas the encoding happened in another, and even though it is a serial operation (samples need to be resampled previous to be feed to the encoder), it is able to resample in chunks, and use the pipe as a synchronization method.


So, given the existing implementations, I guess i was more wrong than right

QAAC: discussion, questions, feature requests, etc.

Reply #753
For mono output, stereo->mono matrix will be like this:
Code: [Select]
1 1


Good, I have this file but it only processes on stereo input while I sometimes need to convert bunch of sources of different formats.
Do U plan to implement an generic downmix to mono switch?

QAAC: discussion, questions, feature requests, etc.

Reply #754
Good, I have this file but it only processes on stereo input while I sometimes need to convert bunch of sources of different formats.
Do U plan to implement an generic downmix to mono switch?

No.

QAAC: discussion, questions, feature requests, etc.

Reply #755
Is there any comparison regarding quality between the different options in qaac?

What quality? qaac offers only a few options regarding AAC encoding quality.
You choose encoding strategy (TVBR or something), choose TVBR quality or bitrate.
You have another option -q that controls quality/speed trade off but usually you don't have to touch it, and that's all.
I meant the resampling quality as that was being discussed (forgot to quote, hence the confusion). I've been wondering whether it's better to resample outside qaac or use some internal method for resampling 96 kHz material to 48 kHz.

QAAC: discussion, questions, feature requests, etc.

Reply #756
I meant the resampling quality as that was being discussed (forgot to quote, hence the confusion). I've been wondering whether it's better to resample outside qaac or use some internal method for resampling 96 kHz material to 48 kHz.

soxr: flawless
CoreAudio --native-resampler=norm: has aliasing
CoreAudio --native-resampler=bats: no aliasing, VERY SLOW
AAC default: worse than soxr, but I guess difference is usually inaudible
ALAC default: looks equivalent with --native-resampler=norm

I recommend soxr, which is enabled by default when libsoxr is present.
However, AAC default will also be enough.

QAAC: discussion, questions, feature requests, etc.

Reply #757
First, qaac can use 3 types of resampler for AAC encoding: soxr, CoreAudio, CoreAudio(codec builtin). When libsoxr (included in qaac distribution) is present, it's chosen by default.

Second, when you do speed comparison of resampler alone, you'd better use -D switch and output to NUL like this:
qaac -D --rate=44100 input.88200.wav -o NUL

Third, as for soxr, it looks like integer ratio down sampling is indeed faster (probably requires smaller numbers of filter stages). Here is the results in my environment:
88200 -> 48000: 117x
88200 -> 44100: 380x
88200 -> 36000: 195x

Finally, If you care about the speed, you can benefit from --threading.
When --threading is on, resampling  runs on the input thread, encoding runs on another thread. Since encoding is a lot slower than input + resampling, encoding speed dominates the whole process, and the total speed shouldn't be affected by the resampling efficiency.


It is probably more of a (objectively unfounded, I know) wish to keep files within the same multiple of 44.1 /48 after compression and re-expansion, than the worry about speed. It would be nice if -r=auto or -r=keep would stay in the same "base" samplerate family for samplerates > 48. Probably comes from a hardware perspective, where DACs use separate oscillators for multiples of 44.1 and 48. I know my concern has absolutely no scientific basis.
;-)

QAAC: discussion, questions, feature requests, etc.

Reply #758
Would appreciate help again with command lines for bulk encoding WAV files with QAAC.  Trying to use it with a program LPRipper that I have successfully used with NeroAAC. 

I created a separate folder for QAAC and extracted the AppleApplicationSupport.msi to the folder with qaac.exe.  Then set the Program File to direct to C:\Windows\System32\cmd.exe.
Tried two suggested commands.  C:\QAAC\qaac_2.44\x86 qaac.exe --tvbr 81 --threading -o outfile.m4a infile.wav .  And C:\QAAC\qaac_2.44\x86 qaac.exe -v 224 %1 %1.m4a .

Start the command to encode, the CMD box opens and another box that says "Encoding"  and "Elapsed Time".  After several minutes of time has elapsed with no apparent results I finally terminate the process and find that there is no converted file in the directory.

Are there additional files I need?  Or am I just not understanding the command syntax?  Would appreciate any help.

Thanks.


QAAC: discussion, questions, feature requests, etc.

Reply #760
freddy687:

1) Download makeportable.zip
2) Download iTunes
3) Download 7-Zip Portable and extract it.
4) Download qaac_x.xx.zip

5) Extract makeportable.zip
6) Copy iTunes where makeportable.cmd is, same folder
7) Copy 7z.exe where makeportable.cmd is, same folder
8) Run makeportable.cmd

9) Extract qaac_x.xx.zip
10) Copy the folder QTFiles where qaac.exe is

11) Launch qaac.exe and convert whatever you want.

Ok, or just do what nu774 said... I guess

QAAC: discussion, questions, feature requests, etc.

Reply #761
Using % placeholders will probably work better if you do it like so:

Code: [Select]
for %1 in (*.wav) do qaac.exe --tvbr 81 -o %1.m4a %1


If you need to use the full path to qaac, be sure to enclose it in quotes if the path contains spaces.

QAAC: discussion, questions, feature requests, etc.

Reply #762
1) Download makeportable.zip
2) Download iTunes
3) Download 7-Zip Portable and extract it.
4) Download qaac_x.xx.zip

5) Extract makeportable.zip
6) Copy iTunes where makeportable.cmd is, same folder
7) Copy 7z.exe where makeportable.cmd is, same folder
8) Run makeportable.cmd

I have a thought. It may be stupid, I don't know much about Windows shell scripting.

I suppose a substantial fraction of people who dislike the idea of having a full-blown QuickTime or iTunes on their Windows box may have 7-zip already installed on their system. (Because they may prefer it over the bloatier and closed-source competition such as Winzip and Winrar.)

Wouldn't it be relatively easy for the makeportable script to check whether 7z x86 or x64 is present in its default location? And if so, you just do a "set path=%PATH%;C:\Program Files\7-Zip" or so.

In my opinion, it would make usage of makeportable more convenient.

 

QAAC: discussion, questions, feature requests, etc.

Reply #763
Wouldn't it be relatively easy for the makeportable script to check whether 7z x86 or x64 is present in its default location? And if so, you just do a "set path=%PATH%;C:\Program Files\7-Zip" or so.

This is already done in makeportable.cmd (It searches registry for 7-zip location under HKLM and adds it to the PATH environment variable).

QAAC: discussion, questions, feature requests, etc.

Reply #764
This is already done in makeportable.cmd (It searches registry for 7-zip location under HKLM and adds it to the PATH environment variable).

Interesting, it doesn't work for me. I have 7-Zip (64 bit) installed in its standard location on a Win 7 Pro x64 box. I am work right now and cannot double-check right away, but I'm fairly sure the script aborts saying it cannot execute 7z.

QAAC: discussion, questions, feature requests, etc.

Reply #765
I suppose a substantial fraction of people who dislike the idea of having a full-blown QuickTime or iTunes on their Windows box may have 7-zip already installed on their system. (Because they may prefer it over the bloatier and closed-source competition such as Winzip and Winrar.)
They are not that "full blown" like many people still think, they are pretty light and fast actually, many use WinRAR or the default Zip extractor of Windows, some don't even know or need 7-Zip. There isn't an official list of apps that everyone installs only because they are open and small

This is already done in makeportable.cmd (It searches registry for 7-zip location under HKLM and adds it to the PATH environment variable).
It never worked for me either. I have no idea why I thought it never worked but now it works, thanks for this.

QAAC: discussion, questions, feature requests, etc.

Reply #766
RE: Command Line Options Reference
I noticed that on the qaac command line options page on github, the line breaks are not quite right, which leads some single characters hanging over to the next line. This looks a bit confusing.
@nu774, could you possibly correct this, thanks.

QAAC: discussion, questions, feature requests, etc.

Reply #767
Still not having any success.  And when I follow the extraction instructions per EAHM,  and run makeportable I get an error that says system can not find the registry key or value.  Installer executable not found.

QAAC: discussion, questions, feature requests, etc.

Reply #768
You can always try the process manually. Now that you have AppleApplicationSupport.msi, open a command prompt, cd to the directory with the MSI file (e.g. if the MSI is in C:\, type "cd C:\" without the quotes to change to that directory), and run this command:

Code: [Select]
msiexec /a AppleApplicationSupport.msi /qb TARGETDIR=C:\Appletmp


After the extraction is complete, go into the C:\Appletmp directory and copy the following DLLs:

Code: [Select]
ASL.dll
CoreAudioToolbox.dll
CoreFoundation.dll
icudt46.dll
libdispatch.dll
libicuin.dll
libicuuc.dll
objc.dll
pthreadVC2.dll


Paste these DLLs into the QTfiles folder that is next to qaac.exe (or create the folder if it's missing). You should now be able to use qaac, and you can delete AppleApplicationSupport.msi and the Appletmp directory. Note that qaac also requires Microsoft Visual C 2010 runtime library, which you probably already have installed. If you don't, you can get the runtime from Microsoft's website. Makeportable would place the DLLs into your QTfiles directory, but you should probably save yourself some trouble and install the runtime normally, so that other programs can use it, too.

QAAC: discussion, questions, feature requests, etc.

Reply #769
Still not having any success.  And when I follow the extraction instructions per EAHM,  and run makeportable I get an error that says system can not find the registry key or value.  Installer executable not found.

> system can not find the registry key or value
When 7-zip is not installed on your system, this is normal and can be ignored if 7z.exe exists.
> Installer executable not found.
You need either iTunesSetup.exe or iTunesSetup64.exe or QuickTimeInstaller.exe placed under current folder, or run makeportable like this:
C:\foo\bar> makeportable path\to\iTunesSetup.exe

QAAC: discussion, questions, feature requests, etc.

Reply #770
RE: Command Line Options Reference
I noticed that on the qaac command line options page on github, the line breaks are not quite right, which leads some single characters hanging over to the next line. This looks a bit confusing.
@nu774, could you possibly correct this, thanks.

Yes, it seems so.
However, that is because current CSS of github that provides not enough space for 80 chars per line.
To fix it, I have to completely build up the markup from the start, instead of just copy/pasting from qaac help message and using pre tag. I don't want to do it.
Maybe I should remove the page... you can view it anyway by invoking qaac from command prompt.

QAAC: discussion, questions, feature requests, etc.

Reply #771
Yea, got it working and great results!!

Thanks so much to all for your help!!

QAAC: discussion, questions, feature requests, etc.

Reply #772
RE: Command Line Options Reference
I noticed that on the qaac command line options page on github, the line breaks are not quite right, which leads some single characters hanging over to the next line. This looks a bit confusing.
@nu774, could you possibly correct this, thanks.

Yes, it seems so.
However, that is because current CSS of github that provides not enough space for 80 chars per line.
To fix it, I have to completely build up the markup from the start, instead of just copy/pasting from qaac help message and using pre tag. I don't want to do it.
Maybe I should remove the page... you can view it anyway by invoking qaac from command prompt.


Could you make the text available as a download?
I have solved the problem for myself by copying / pasting the text to a local text file. Not really a big deal, but I need to check manually whether there have been changes.

QAAC: discussion, questions, feature requests, etc.

Reply #773
Could you make the text available as a download?
I have solved the problem for myself by copying / pasting the text to a local text file. Not really a big deal, but I need to check manually whether there have been changes.

It should be possible, but I cannot assure of keeping the online command line options document up to date.
What is shown by qaac.exe will always be the original and correct.
Is it so difficult just to run "qaac | more" or "qaac >help.txt" or something in the command prompt?

I think there are two types of qaac users.
One just uses qaac from some GUI app and rarely runs it from command prompt.
The other often uses qaac from command prompt.

Help message shown by qaac.exe itself should be enough for the latter.
Indivisual document might be useful for the former, but I guess most of them just set up for GUI app once, reading and copy/pasting the command line that is provided somewhere on the net.

QAAC: discussion, questions, feature requests, etc.

Reply #774
Why is there no x64 version available for qaac? I can see the refalac is in x64. Btw thanks for your work, I use it quite often!