QAAC: discussion, questions, feature requests, etc., [originally a thread for a feature request] |
![]() ![]() |
QAAC: discussion, questions, feature requests, etc., [originally a thread for a feature request] |
Nov 28 2012, 01:53
Post
#276
|
|
![]() Group: Developer Posts: 295 Joined: 22-November 10 From: Japan Member No.: 85902 |
If you were using simply 16/32bit 2ch input, you might not have met any troubles so far (like me). In this case, sample size (in bytes) is multiple of 2, and probably there's less possibility of partial read breaking in the middle of sample boundary. Sorry, I wanted to say power of two. If the sample size is power of two, there's a high possibility that I/O buffer size (usually power of two) is divisible by the sample size, thus problematic partial read doesn't happen. One user noticed this when encoding from 24bit source yesterday. In fact, another user has already reported me of this, but at that time I couldn't reproduce it, and thought it to be an environment specific problem (he was using Linux and wine). |
|
|
|
Nov 28 2012, 02:32
Post
#277
|
|
|
Group: Members Posts: 431 Joined: 11-February 12 Member No.: 97076 |
|
|
|
|
Dec 7 2012, 00:53
Post
#278
|
|
|
Group: Members Posts: 32 Joined: 22-June 12 Member No.: 100900 |
[qaac] release 2.06 (refalac 1.06)
posted 13 hours ago by nu 774 Fixed a bug: when opening non-supported input file, there was a chance that ridiculously too much memory gets allocated and OS hangs (refalac only). This is regression on 2.00, but is basically coming from a weakness of libmp4v2 which can allocate HUGE memory when mp4 box structure is corrupt. Rewritten 24bit PCM bit packing/unpacking code. qaac -D 24bit.wav -o - >NUL is about 3 times faster than before. https://sites.google.com/site/qaacpage/cabinet |
|
|
|
Dec 7 2012, 17:53
Post
#279
|
|
|
Group: Members Posts: 32 Joined: 22-June 12 Member No.: 100900 |
[qaac] release 2.07 (refalac 1.07)
posted 3 hours ago by nu 774 Fixes for 2.00 regression again. WAV parser was ignoring data chunk length even if --ignorelength was not specified. Bogus total length was printed on libsndfile input due to int64_t -> int8_t typo. https://sites.google.com/site/qaacpage/cabinet |
|
|
|
Dec 10 2012, 16:40
Post
#280
|
|
|
Group: Members Posts: 38 Joined: 26-May 02 Member No.: 2129 |
I thought the old qtaacenc portable script may have been too bloated, so I created a new one for qaac.
http://www.mediafire.com/?1ysj4ph04vt3b8g You need to put either the QuickTime or iTunes installer into the same directory as the script and it should extract only the files necessary for qaac without the need to install anything. Files it extracts: CODE CoreAudioToolbox.dll CoreFoundation.dll ASL.dll icudt46.dll libdispatch.dll libicuin.dll libicuuc.dll objc.dll pthreadVC2.dll Did I miss aynthing? |
|
|
|
Dec 10 2012, 16:56
Post
#281
|
|
![]() Group: Developer Posts: 295 Joined: 22-November 10 From: Japan Member No.: 85902 |
Thanks,
Alternatively, you can try makeportable.zip at the cabinet page (bat file only, 7z.exe is not included). I haven't mentioned/recommended it in public since it's hackish, and might be against Apple's policy. |
|
|
|
Dec 10 2012, 17:07
Post
#282
|
|
|
Group: Members Posts: 38 Joined: 26-May 02 Member No.: 2129 |
Ah, damn, I totally missed your portable script.
Also, yours has "7z e -y -oQTfiles\Microsoft.VC80.CRT -i!msvcp80.dll.* -i!msvcr80.dll.* -i!manifest.* AppleApplicationSupport.msi" and much more error handling. |
|
|
|
Dec 13 2012, 08:56
Post
#283
|
|
|
Group: Members Posts: 431 Joined: 11-February 12 Member No.: 97076 |
CODE [qaac] release 2.08 (refalac 1.08) posted 1 minute ago by nu 774 Now copy chapters from ALAC/m4a input (when available). Delay Nero style chapter point as much as the encoder delay (2112 samples). It seems that Nero AAC encoder was previously using Nero style chapter to signal encoder delay this way, and fb2k is in honor of it. Note that Nero style chapter is a list of <title, start time> pairs, therefore first chapter can start at arbitrary point, while last chapter goes until the end of the track. On the other hand, QuickTime style chapter is a list of <title, duration> pairs, therefore first chapter always starts from the beginning of the track, while last chapter can end at arbitrary point. qaac will write both style chapters (for the sake of compatibility), but these two have subtle difference and incompatibility. Now writes actual duration into edts. This is done mainly for QuickTime which doesn't look iTunSMPB thingy. Now QuickTime can trim zero-padding and decode sample accurately (whole song / each sub-chapters). Technically, there's no way to tell the value of encoder delay to QuickTime player. It just silently assumes implicit AAC delay of 2112 samples, and automatically crops that amount from the beginning --- it just works with qaac because qaac is using their encoder. edts is used here in order to just let them trim the trailing zero paddings. https://sites.google.com/site/qaacpage/cabinet |
|
|
|
Dec 13 2012, 15:38
Post
#284
|
|
|
Group: Members Posts: 38 Joined: 26-May 02 Member No.: 2129 |
If qaac were to also use edts for trimming the encoder delay, would that break the gapless playback in QuickTime, since it always skips 2112 samples?
|
|
|
|
Dec 13 2012, 15:58
Post
#285
|
|
![]() Group: Developer Posts: 295 Joined: 22-November 10 From: Japan Member No.: 85902 |
If qaac were to also use edts for trimming the encoder delay, would that break the gapless playback in QuickTime, since it always skips 2112 samples? Exactly. For that very reason I cannot do it. QuickTime File Format Specification Appendix G. defines a way to signal encoder delay using edts and (new) sgpd atom, but it's a spec of QT/MOV so cannot be applied to MP4, and QT7 for win doesn't seem to implement or support it anyway. |
|
|
|
Dec 13 2012, 16:02
Post
#286
|
|
|
Group: Members Posts: 38 Joined: 26-May 02 Member No.: 2129 |
I see.
Would be nice if Apple were to stick to a single proprietary implementation of this stuff while being at it. |
|
|
|
Dec 13 2012, 16:26
Post
#287
|
|
![]() Group: Developer Posts: 295 Joined: 22-November 10 From: Japan Member No.: 85902 |
BTW Quick Time pro was useful when handling chapters for testing. When I want to extract second chapter, the following did that job.
- Move to second chapter head by selecting second chapter - Press I (selection start) - Move to third chapter head by selecting third chapter - Press O (selection end) - Trim to selection - Export, done. This way I could losslessly export chapter to MP4, or decode/re-encode to another format. Too bad that it's almost abandoned (Mac OS X already moved to QuickTime X, different software with same branding) and quite easily crashes. I also wanted to test sample accuracy with iTunes, but I couldn't figure out if it's even possible for iTunes to extract specific sub chapter. |
|
|
|
Dec 18 2012, 10:50
Post
#288
|
|
|
Group: Members Posts: 32 Joined: 22-June 12 Member No.: 100900 |
[qaac] release 2.09 (refalac 1.09)
posted 7 hours ago by nu 774 Fixed a regression on 2.06, which resulted in failure when non-canonical path was passed by -o option (reported by this post at HA). Added --fname-from-tag option to generate output file names based on the tags of input files. You can configure output file name more precisely by additionally using --fname-format (which has been an option for cuesheet input only). https://sites.google.com/site/qaacpage/cabinet |
|
|
|
Dec 25 2012, 12:53
Post
#289
|
|
![]() Group: Members Posts: 70 Joined: 18-July 12 From: Drøbak Member No.: 101545 |
I did a pitty small abx today between wav and qaac tvbr 127. Got 5 out of 5. I thought i could hear some difference. Hard to describe what, but kind of the richness of the audio was different. And when i got 5/5 i think there was no coincidence. It was a hardstyle tune by headhunterz. In other genres though I can't seem to hear any difference at all.
CODE foo_abx 1.3.4 report foobar2000 v1.1.18 2012/12/25 12:36:05 File A: C:\Users\Olav\Desktop\3929430_Lessons_In_Love_feat__Neon_Trees_Headhunterz_Remix.wav File B: C:\Users\Olav\Desktop\QAAC TVBR 127\3929430_Lessons_In_Love_feat__Neon_Trees_Headhunterz_Remix.m4a 12:36:05 : Test started. 12:37:08 : 01/01 50.0% 12:38:06 : 02/02 25.0% 12:38:57 : 03/03 12.5% 12:39:42 : 04/04 6.3% 12:42:34 : 05/05 3.1% 12:43:14 : Test finished. ---------- Total: 5/5 (3.1%) Pretty interesting i think Setup was: foo_abx 1.3.4 -> Belkin USB cable -> HRT Music Streamer II -> Steelseries 5HV2. QAAC v 2.09 BTW, new qaac uploaded, 2.10 https://sites.google.com/site/qaacpage/cabinet No changelog yet This post has been edited by o-l-a-v: Dec 25 2012, 13:06 |
|
|
|
Dec 25 2012, 13:12
Post
#290
|
|
![]() Group: Developer Posts: 295 Joined: 22-November 10 From: Japan Member No.: 85902 |
I was just writing and finished it now QUOTE Changed --delay option spec. --delay now accepts either duration in time or number of samples. If you are used to timespec of sox, you should be already familiar with it. The format is as following:
--delay=[hh:[mm:]]ss[.sss]... --delay=<integer>s In the first case, parts surrounded by brackets can be omitted. So, --delay=100 means 100 seconds, --delay=-10.72 means -10.72 seconds, --delay=02:53.1 means 2 minutes and 53.1 seconds, and so on. Second case is for number of samples. You just put an integer followed by "s" (means "samples"). --delay=-2112s or something. HTOA support. Now index 00 of first track in cue sheet is encoded into track 0. Fixed a bug of cue sheet parser. Last line of cue was ignored if the last line is ending with a white space character other than LF. |
|
|
|
Dec 25 2012, 22:40
Post
#291
|
|
|
Group: Members Posts: 6 Joined: 25-December 12 Member No.: 105392 |
nu774,
I am new to qaac, just downloaded its command line module and read the documentation page. I was wondering why you have no example for the mp3 conversion syntax to preserve the quality of the input as much as possible. My objective is to be able to import the resulting m4a as a sound track into an m4v video (using mp4box and handbrake). I tried conversion with one of the ffmpeg's aac encoders but did not quite like the quality of the output. |
|
|
|
Dec 26 2012, 15:07
Post
#292
|
|
![]() Group: Developer Posts: 295 Joined: 22-November 10 From: Japan Member No.: 85902 |
I was wondering why you have no example for the mp3 conversion syntax to preserve the quality of the input as much as possible. Well, if you want higher quality, just raise bitrate or something. Period. However, if you encode 64kbps MP3 into 320kbps AAC, the result gets 5 times larger than input in file size, but is still worse than input in quality. Lossy to lossy conversion works like that. Sounds ridiculous? So you have to make a compromise somewhere on quality/size trade off. People use lossy codec that way. I cannot tell you "the best setting" for you. Only you can decide it using your own ears. And I think you will be able to understand why I cannot write every possible example for every single task you might think of. |
|
|
|
Dec 26 2012, 17:10
Post
#293
|
|
|
Group: Members Posts: 6 Joined: 25-December 12 Member No.: 105392 |
Well, if you want higher quality, just raise bitrate or something. Period. However, if you encode 64kbps MP3 into 320kbps AAC, the result gets 5 times larger than input in file size, but is still worse than input in quality. Lossy to lossy conversion works like that. Sounds ridiculous?.. Agreed. I tried for an HE -ACC file out of the 320 Kbps mp3, the result was almost four times as less in size, but practically of the same sound quality. What's great about qaac is that, unlike ffmpeg which sometimes defaults to ADTS, it produces real QT/Itunes compatible m4a on the spot! I wonder how QAAC encoder compares to libvo_aacenc? |
|
|
|
Dec 26 2012, 17:26
Post
#294
|
|
![]() Group: Developer Posts: 295 Joined: 22-November 10 From: Japan Member No.: 85902 |
What's great about qaac is that, unlike ffmpeg which sometimes defaults to ADTS, it produces real QT/Itunes compatible m4a on the spot! As far as I know, ffmpeg/avconv will decide container format from file extension you give, and can mux into MP4 if properly directed. QUOTE I wonder how QAAC encoder compares to libvo_aacenc? Quality of libvo_aacenc is not comparable to state-of-the-art commercial encoders of Apple or FhG. If you can, use libfdk_aac instead on ffmpeg (although you have to make it yourself). |
|
|
|
Dec 26 2012, 17:49
Post
#295
|
|
![]() Group: Members Posts: 11 Joined: 25-December 12 From: Canada Member No.: 105390 |
Hi nu774,
I'm using QAAC through the latest TAudioConverter(0.6.2.459) and there's a problem with the metadata from the flac files not completely being transferred to the m4a file. The 'date' is missing! The rest of the metadate data transfers correctly(album, artist, title etc.), when I read the log, the 'date' does show in the metadata. Is there anything that can be done? Thanks for all your work in QAAC. !UPDATE! I just received word from the developer of TAudioConverter that's it's an issue there, which will be fixed in the next release. This post has been edited by Stop the Noise: Dec 26 2012, 18:06 |
|
|
|
Dec 30 2012, 23:56
Post
#296
|
|
|
Group: Members Posts: 6 Joined: 25-December 12 Member No.: 105392 |
Thank you, nu774 for your suggestion. Although I never compiled an executive file under windows, I may give it a try...
Now, I am trying to convert to m4a file format a movie's track, which is an ac3 6 channel audio. When I ran CODE qaac -v256 --verbose audio.ac3 -o audio.m4a I got an error that there is no such input format. Is there something that I need to do with ac3 file first?Also, I understand that I need to mixdown from 6 channels to 2. How do I do that? Is 2 channels - a default setting? |
|
|
|
Dec 31 2012, 02:01
Post
#297
|
|
![]() Group: Developer Posts: 295 Joined: 22-November 10 From: Japan Member No.: 85902 |
qaac does not support AC3 input. So, you have to decode it before passing it to qaac (by ffmpeg, avconv or something).
As for 5.1ch -> stereo mixdown by qaac, read the following: https://github.com/nu774/qaac/wiki/Matrix-mixer |
|
|
|
Dec 31 2012, 02:17
Post
#298
|
|
|
Group: Members Posts: 131 Joined: 20-November 01 Member No.: 503 |
MeGUI supports transcoding from AC3 to AAC using QAAC if you enable its support in the latest development update (and restart it). It also supports downmix with e.g. Dolby ProLogic II matrix.
Please note that MeGUI won't ensure the presence of the Apple CoreAudioToolbox DLLs; the user will be responsible to fulfill this prerequisite. This post has been edited by LigH: Dec 31 2012, 02:19 -------------------- http://forum.gleitz.info - das deutsche doom9/Gleitz-Forum
|
|
|
|
Dec 31 2012, 07:55
Post
#299
|
|
|
Group: Members Posts: 6 Joined: 25-December 12 Member No.: 105392 |
qaac does not support AC3 input. So, you have to decode it before passing it to qaac (by ffmpeg, avconv or something). As for 5.1ch -> stereo mixdown by qaac, read the following: https://github.com/nu774/qaac/wiki/Matrix-mixer MeGUI supports transcoding from AC3 to AAC using QAAC if you enable its support in the latest development update (and restart it). It also supports downmix with e.g. Dolby ProLogic II matrix. Please note that MeGUI won't ensure the presence of the Apple CoreAudioToolbox DLLs; the user will be responsible to fulfill this prerequisite. Thank you for suggestions. If I understood correctly I will try to to decode first ac3 to raw pcm, and then run the encoder. Happy New YEAR to all of you! |
|
|
|
Jan 1 2013, 02:49
Post
#300
|
|
![]() Group: Admin Posts: 4218 Joined: 15-December 02 Member No.: 4082 |
Quality of libvo_aacenc is not comparable to state-of-the-art commercial encoders of Apple or FhG. If you can, use libfdk_aac instead on ffmpeg (although you have to make it yourself). Speaking of libfdk_aac, it would be really cool if someone could make a portable version of qaac that uses libfdk_aac as the encoder, as neither ffmpeg nor avconv appear to support gapless encoding. I'm only guessing that the only non-portable binary blob code that qaac uses is the CoreAudioToolbox library, and only for AAC encoding. Well, and then I did look into some of the headers when I considered an attempt, and noticed a lot of Win32 header and function usage, so maybe it won't be so easy after all. |
|
|
|
![]() ![]() |
|
Lo-Fi Version | Time is now: 18th May 2013 - 09:05 |