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 687889 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

QAAC: discussion, questions, feature requests, etc.

Reply #825
This option is required if you want the encoder to read from a pipe (decoder infile - | encoder - outfile), because the length of the data chunk is often only known when the decoder finished decoding an audio stream to a virtual WAV file in the RAM, but should have updated the WAV header when it started to write the virtual WAV file into the pipe already. But a pipe can only be written once and sequentially, the output cannot rewind in the end and change something in the beginning. Therefore an encoder reading out of a pipe must ignore the length field in a WAV header because the connected decoder cannot have written the correct value in it yet.

QAAC: discussion, questions, feature requests, etc.

Reply #826
This option is required if you want the encoder to read from a pipe (decoder infile - | encoder - outfile), because the length of the data chunk is often only known when the decoder finished decoding an audio stream to a virtual WAV file in the RAM, but should have updated the WAV header when it started to write the virtual WAV file into the pipe already. But a pipe can only be written once and sequentially, the output cannot rewind in the end and change something in the beginning. Therefore an encoder reading out of a pipe must ignore the length field in a WAV header because the connected decoder cannot have written the correct value in it yet.

Thank you!
You mean that even if the wav file is > 4GB, I needn't to use the --ignorelength, am I right?

QAAC: discussion, questions, feature requests, etc.

Reply #827
Hi,
I have a question about --ignorelength.
I use eac3to and get 3.85G wav file from video. Then I use qaac to convert it to the aac.
first I use --ignorelength and get a m4a file, then I try not use --ignorelength and I also get a m4a file.
And I listen these 2 files and didn't find any problem. But these 2 files are different(MD5). So, do I need to use --ignorelength ?
Thank~

How did you created MD5sum?
The resulting file should always be different, even if you specify identical options, since MP4 container stores creation time or something.
You have to compare AAC bitsteam only. Binary comparator of fb2k should be enough. However, in your  case, what you really have to compare is duration of the resulting file. If it is the same as the input, then it is fine. Period.

Quote
You mean that even if the wav file is > 4GB, I needn't to use the --ignorelength, am I right?

You really don't have to worry about that option as long as duration of the output is fine.
--ignorelength forces qaac to ignore the length declared in the WAV header. If the WAV file doesn't fits in 32bit limit, it's not a valid WAV file, and it's length field has to be ignored. In some cases, qaac can detect incorrectness of the header and automatically turns into ignorelength mode.
In others, you need --ignorelength.

QAAC: discussion, questions, feature requests, etc.

Reply #828
Hi,
I have a question about --ignorelength.
I use eac3to and get 3.85G wav file from video. Then I use qaac to convert it to the aac.
first I use --ignorelength and get a m4a file, then I try not use --ignorelength and I also get a m4a file.
And I listen these 2 files and didn't find any problem. But these 2 files are different(MD5). So, do I need to use --ignorelength ?
Thank~

How did you created MD5sum?
The resulting file should always be different, even if you specify identical options, since MP4 container stores creation time or something.
You have to compare AAC bitsteam only. Binary comparator of fb2k should be enough. However, in your  case, what you really have to compare is duration of the resulting file. If it is the same as the input, then it is fine. Period.

Quote
You mean that even if the wav file is > 4GB, I needn't to use the --ignorelength, am I right?

You really don't have to worry about that option as long as duration of the output is fine.
--ignorelength forces qaac to ignore the length declared in the WAV header. If the WAV file doesn't fits in 32bit limit, it's not a valid WAV file, and it's length field has to be ignored. In some cases, qaac can detect incorrectness of the header and automatically turns into ignorelength mode.
In others, you need --ignorelength.


Oh, I see. Thank you very much !

QAAC: discussion, questions, feature requests, etc.

Reply #829
If the WAV file expectably could exceed 4 GB (or better, 2 GB already, there may be tools interpreting the size fields incorrectly as signed), one should possibly prefer the WAV64 format.

QAAC: discussion, questions, feature requests, etc.

Reply #830
Hi,

I got two reports of StaxRip users qaac not accepting FLAC. What could be the reason?

Here is the log:

Code: [Select]
------------------------------------------------------------
              Convert to WAV/FLAC using ffmpeg
------------------------------------------------------------

"C:\Program Files (x86)\StaxRip_1.2.0.5\Applications\ffmpeg\ffmpeg.exe" -i "D:\Down.Temp\foobar\foobar temp files\foobar - ID2 - German.ac3" -y -ac 2 "D:\Down.Temp\foobar\foobar temp files\foobar - ID2 - German.flac"

ffmpeg version N-70599-gc8372f8 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.9.2 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-lzma --enable-decklink --enable-zlib
libavutil      54. 20.100 / 54. 20.100
libavcodec     56. 26.100 / 56. 26.100
libavformat    56. 25.101 / 56. 25.101
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5. 12.100 /  5. 12.100
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  1.100 /  1.  1.100
libpostproc    53.  3.100 / 53.  3.100
[ac3 @ 0036b920] Estimating duration from bitrate, this may be inaccurate
Input #0, ac3, from 'D:\Down.Temp\foobar\foobar temp files\foobar - ID2 - German.ac3':
Duration: 00:42:22.18, start: 0.000000, bitrate: 192 kb/s
Stream #0:0: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
[flac @ 042a9560] encoding as 24 bits-per-sample
Output #0, flac, to 'D:\Down.Temp\foobar\foobar temp files\foobar - ID2 - German.flac':
Metadata:
encoder         : Lavf56.25.101
Stream #0:0: Audio: flac, 48000 Hz, stereo, s32 (24 bit), 128 kb/s
Metadata:
encoder         : Lavc56.26.100 flac
Stream mapping:
Stream #0:0 -> #0:0 (ac3 (native) -> flac (native))
Press [q] to stop, [?] for help
video:0kB audio:372972kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.002170%
Start:    10:18:38
End:      10:18:49
Duration: 00:00:10

General
Complete name                            : D:\Down.Temp\foobar\foobar temp files\foobar - ID2 - German.flac
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
File size                                : 364 MiB
Duration                                 : 42mn 22s
Overall bit rate mode                    : Variable
Overall bit rate                         : 1 202 Kbps
Writing application                      : Lavf56.25.101

Audio
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
Duration                                 : 42mn 22s
Bit rate mode                            : Variable
Bit rate                                 : 1 202 Kbps
Channel(s)                               : 2 channels
Sampling rate                            : 48.0 KHz
Bit depth                                : 24 bits
Stream size                              : 364 MiB (100%)
Writing library                          : Lavf56.25.101


------------------------------------------------------------
                 Audio encoding using qaac
------------------------------------------------------------

"C:\Program Files (x86)\StaxRip_1.2.0.5\Applications\qaac\qaac.exe" -o "D:\Down.Temp\foobar\foobar temp files\foobar - ID2 - German_out.m4a" --tvbr 75 --normalize "D:\Down.Temp\foobar\foobar temp files\foobar - ID2 - German.flac"


------------------------------------------------------------
              Error Audio encoding using qaac
------------------------------------------------------------

Audio encoding using qaac failed with exit code 2

qaac 2.47, CoreAudioToolbox 7.9.8.3
ERROR: Not available input file format

QAAC: discussion, questions, feature requests, etc.

Reply #831
I got two reports of StaxRip users qaac not accepting FLAC. What could be the reason?

qaac needs external libFLAC DLL to decode FLAC files.

QAAC: discussion, questions, feature requests, etc.

Reply #832
Thanks but I don't understand then why for me and most other users it worked without libFLAC?

QAAC: discussion, questions, feature requests, etc.

Reply #833
Thanks but I don't understand then why for me and most other users it worked without libFLAC?

Because libFLAC is installed somewhere in your system.

QAAC: discussion, questions, feature requests, etc.

Reply #834
Another possibility is existence of libsndfile (which is statically or dynamically linked to libFLAC).
Anyway, qaac cannot read FLAC without them.

QAAC: discussion, questions, feature requests, etc.

Reply #835
Indeed it was in System32, maybe I've put it there and forgot about it or some setup or application copied it there (on the creation day no programs were installed though), thanks for everything.

 

QAAC: discussion, questions, feature requests, etc.

Reply #836
And if someone doesn't like to have 19MB icudt49.dll in their portable install:

Why is this file still necessary if a dummy is fine as well?

QAAC: discussion, questions, feature requests, etc.

Reply #837
And if someone doesn't like to have 19MB icudt49.dll in their portable install:

Why is this file still necessary if a dummy is fine as well?

If you are saying that makeportable.zip should install the stab as the replacement of the real icudt... No, I will not do that. Required version of ICU is not constant, and it costs me some efforts for almost no real gain.

QAAC: discussion, questions, feature requests, etc.

Reply #838
And if someone doesn't like to have 19MB icudt49.dll in their portable install:

Why is this file still necessary if a dummy is fine as well?

If you are saying that makeportable.zip should install the stab as the replacement of the real icudt... No, I will not do that. Required version of ICU is not constant, and it costs me some efforts for almost no real gain.

No of course not, I don't understand why Apple keeps that huge file even if lvqcl's dummy works as well. What's the purpose of that DLL?

QAAC: discussion, questions, feature requests, etc.

Reply #839
No of course not, I don't understand why Apple keeps that huge file even if lvqcl's dummy works as well. What's the purpose of that DLL?

ICU is an open source library that provides Unicode / internationalization support, and libicudt contains many kind of data about Unicode characters, languages, calendars or something.
Apparently it has nothing to do with audio signal processing provided by CoreAudioToolbox, but CoreFoundation has many features based on ICU.

QAAC: discussion, questions, feature requests, etc.

Reply #840
Hello. I am using 64-bit Windows 7. The “makeportable.zip” method created two folders: QTfiles and QTfiles64. Do I:
  • move QTfiles to the location of qaac.exe?
  • move QTfiles64 to location of qaac?
  • rename QTfiles64 folder to QTfiles then move it to location of qaac?
  • move both?


nu774, would it be possible to use only qaac.exe along with the Apple Application Support .dll's in the same folder in a portable manner, without the need for registry keys and a separate installation?  (now that it bypasses quicktime)

Yes. They are searched in the following order. No registory setting is required.
1) The directory where qaac.exe is placed
2) Windows system directory
3) "QTfiles" sub directory
4) The directory in a registry key "HKEY_LOCAL_MACHINE\SOFTWARE\Apple Inc.\Apple Application Support" (This can be overriden with qaac.reg)
5) Directories in the PATH environment variable


QAAC: discussion, questions, feature requests, etc.

Reply #841
Don't rename them.
They are named like this so that they can be installed under the same directory without collision.

QTfiles contains 32bit libraries and is for qaac.exe.
QTfiles64 contains 64bit libraries and is for qaac64.exe.
qaac64 searches QTfiles64 instead of QTfiles.

Since you are using 64-bit Windows 7, you need only 64bit version unless you need TAK decoding support (it's 32bit only).

QAAC: discussion, questions, feature requests, etc.

Reply #842
Hello,
I ported my GUI to 64-Bit, all 64-Bit applications I redirect work and behave exactly like the previously used 32-Bit applications except qaac where redirection fails and a command shell window pops up instead. I use exact identical code for all applications always redirecting both stdout and stderr, my application is rather old and large so it uses quite a few different command line tools, qaac is really the only causing a problem and it's only happening with qaac64.exe, 32-Bit was fine.

QAAC: discussion, questions, feature requests, etc.

Reply #843
qaac is really the only causing a problem and it's only happening with qaac64.exe, 32-Bit was fine.

All I can say is that qaac64 should run once it is correctly set up.

Can you run qaac64 directly (from command prompt) ?
Have you set up 64bit CoreAudio libs or other dependent (see below) 64bit libs?
Have you tried the same invocation way (arguments/redirection/pipes) from command prompt ?

IIRC, you were using FLAC decoding feature using libFLAC without even knowing it. If so, you need 64bit libFLAC.

QAAC: discussion, questions, feature requests, etc.

Reply #844
It was a stupid bug on my side, I hope it wasn't too much of a headache, I'm so sorry.



QAAC: discussion, questions, feature requests, etc.

Reply #847
Can I ask what the certain conditions were?

I encoded a lot of files with 2.47, and am wondering if this would justify re-encoding.

Well, if you don't encode from MP4/m4a files, you don't need re-encoding. The bug was inside of MP4 reader, which was first implemented at 2.39:
https://sites.google.com/site/qaacpage/news...se239refalac139

If you DO encode from MP4/m4a files, then you may have encountered loss of certain amount of trailing samples (shorter than one frame length), but it did not always happen.

QAAC: discussion, questions, feature requests, etc.

Reply #848
Well, if you don't encode from MP4/m4a files, you don't need re-encoding. The bug was inside of MP4 reader, which was first implemented at 2.39:
https://sites.google.com/site/qaacpage/news...se239refalac139

If you DO encode from MP4/m4a files, then you may have encountered loss of certain amount of trailing samples (shorter than one frame length), but it did not always happen.

Ah, thank you. Some of my encodes were indeed from M4A source files (ALAC). So I may re-encode, just to be safe.

BTW, much appreciation for this excellent tool.

QAAC: discussion, questions, feature requests, etc.

Reply #849
Ah, thank you. Some of my encodes were indeed from M4A source files (ALAC). So I may re-encode, just to be safe.

Needless to say, you don't need re-encoding if you are using qaac from fb2k or other GUI frontends, since they decode ALAC into WAV and pass WAV to qaac.