View Full Version : eac3to - audio conversion tool
madshi
15th August 2007, 14:47
So the best way is to separate the channels then to mux them ?
The best way to do what? You haven't really said what your final aim is.
madshi
15th August 2007, 14:48
The wav format can handle until 4 GB.
The limit is two fields with 4 bytes (to store filelength and datalength) only can support values until 2^32.
The 2 GB limit is a wrong soft than read/write these 4 bytes with signed int then the limit is 2^31 -> 2 GB, is the fields are read/write with unsigned int the soft can manage until 4 GB.
Yeah, that makes sense, thanks.
tebasuna51
15th August 2007, 15:17
thanks for the help.
So the best way is to separate the channels then to mux them ?
The best way depend of final format/encoder, if you use ac3/Aften or aac/NeroAacEnc you need use a wav multichannel > 4 GB and inform the encoder with -readtoeof 1 (for Aften) or -ignorelength (for NeroAacEnc)
Other format/encoders must need separated channels in monowav's.
kidbeach
15th August 2007, 16:46
looks like an awesome program, I'm going to check it out today...
a side note, graphedit doesn't come with dump.ax anymore I found it here:
http://www.apecity.com/tivo/dump.zip
Zelos
15th August 2007, 18:40
yes sorry.
The final aim is to obtain an AC3 file , the channel is in 5.1
Nikos
15th August 2007, 18:47
The problem is that many studios just leave the DialNorm value at their default setting.
Because of that it is more or less useless IMHO.
Thanks madshi for the explanation.
Zelos
15th August 2007, 18:50
The best way depend of final format/encoder, if you use ac3/Aften or aac/NeroAacEnc you need use a wav multichannel > 4 GB and inform the encoder with -readtoeof 1 (for Aften) or -ignorelength (for NeroAacEnc)
Other format/encoders must need separated channels in monowav's.
it works with the Aften command.
Thanks !
I checked on the website but this command doesn't exist.
Is there any way to choose a bitrate more than 448 kbps in Aften ?
madshi
15th August 2007, 19:04
it works with the Aften command.
Thanks !
I checked on the website but this command doesn't exist.
Is there any way to choose a bitrate more than 448 kbps in Aften ?
I don't understand. Why don't you simply use "eac3to source.eac3 dest.ac3"? This will reencode with Aften with 640kbps.
Zelos
15th August 2007, 19:25
I don't understand. Why don't you simply use "eac3to source.eac3 dest.ac3"? This will reencode with Aften with 640kbps.
Right madshi , i tried but i have an error at the end :Starting "aften" failed. A valid *.wav file was created successfully, though.
i tried with the last eac3to but still the same error.
I use the eac3 gui .
madshi
15th August 2007, 19:35
Right madshi , i tried but i have an error at the end :Starting "aften" failed. A valid *.wav file was created successfully, though.
I always need the full eac3to output.
Have you kept all subfolders as they are? Is there a subfolder named "aften" in your eac3to folder? And is there an "aften.exe" in that folder? Did you do anything to this file? E.g. replacing it with a different build or anything else?
Zelos
15th August 2007, 19:48
I always need the full eac3to output.
Have you kept all subfolders as they are? Is there a subfolder named "aften" in your eac3to folder? And is there an "aften.exe" in that folder? Did you do anything to this file? E.g. replacing it with a different build or anything else?
everything is inside and i have replace nothing
Zelos
15th August 2007, 20:52
ok , i erased all , and download again to decompress all the files in the right place.
That works fine !
Thanks for the help ;)
dade49
16th August 2007, 07:23
If you want to do frame correct cutting, you can drop the track into delaycut. It will tell you how many bytes per frame that AC3 track is using. [...]
Madshi,
I PM'd you 2 examples of AC3 files that crash eac3to when removing DialNorm. I still vote for a verbose switch so that more info is output on issues like this. Thanks for all the help, and the great utility.
-Dade
ACrowley
16th August 2007, 09:15
Thanks ACrowley for the reply. I had read the above threads. The method 1 is ok but in method 2 there is not an accurate way to measure the right Dialog Norm. value.
I wonter why you say "Dont set it to the same Value for the reencoded AC3", i suppose that the .eac3 file had the correct Dialog Norm value. Correct me if i am wrong.
Maybe you have mistaken something..
You, should not use the DialogNormValue from the AC3/EAC3 Source (if AC3 or EAC3), right.
Reencoding with -31db (dont care about Source Value) and "no" DynamicRange Profile will guarrante the Input Wave Volume Level with uncompresssed Dynamics.
But it has nothing to do with wrong EAC3 Input Values (by the Way,they are not wrong) :), its only a guideline for reencoding and nothing else :)
Ofcourse you can measure the RMS accurat enough. Just use the Center Wave with a Dialog Part . Use Adobe Audition and you will get a Value which is accurate enough to use it for DialogeNorm in your AC3 reencode .In this Case you have to use a DynamicRange Profile. Otherwise it makes no Sense.
As i say , its the full DolbyCompliant Method to encode AC3..
But i ,and most guys i know ( eac3to too) are using the -31db with no DRC Method. Its sounds best on my Receiver/Setup
@Madshi
I have a few eac3 Tracks ( FullMetalJacket HDDVD) with Problems when removing DialoNorm with eac3to. eac3 starts with removing DialNorm...and after a few seconds the whole Process stopps without Error Message. It works with DialNor enabled
madshi
16th August 2007, 09:24
In this Case you have to use a DynamicRange Profile. Otherwise it makes no Sense.
Why ?
ACrowley
16th August 2007, 10:32
Why ?
http://forum.doom9.org/showthread.php?t=56020
The following point, however, cannot be stressed enough: In order for the Dynamic Range Compression to work as designed, the Dialogue Normalization parameter MUST be properly set first!
I should better say "makes more Sense" .
When you want a Dolby Compliant AC3 ,use DRC .
But DRC needs a proper DialogNormlization Value = RMS calculated
When you use no DRC ,-31db is the Best Value to keep Wave Source Dynamic/Volume ( lange Rede lurzer Sinn, thats all what counts for me)
So why should i touch the -31db Value , "without" a DRC Profile. -31db makes "more Sense" because i dont change anything
There are these 2 Methods to reencode to AC3. Taker the one "or" the other Method...thats what i mean :)
PS
you know, my English is very bad an i cant say everything i want in english
madshi
16th August 2007, 11:00
The following point, however, cannot be stressed enough: In order for the Dynamic Range Compression to work as designed, the Dialogue Normalization parameter MUST be properly set first!
Yeah. So DRC needs DialNorm to be set correctly. But where is it written that DialNorm needs DRC to be set?
So why should i touch the -31db Value , "without" a DRC Profile. -31db makes "more Sense" because i dont change anything
Either you want DialNorm or you do not want it. If you want it, you tell the encoder to set it to the desired value. If you do not want it, you tell the encoder to set it to -31db. I don't see what DRC has to do with this.
There are these 2 Methods to reencode to AC3. Taker the one "or" the other Method...thats what i mean :)
Or take the third method which is to set a proper DialNorm value but not use any DRC. I don't see any reason why this shouldn't be used.
Well, personally I don't like neither DRC nor DialNorm. But I can understand if other people like DialNorm. So why forcing them to set DRC, if they only want DialNorm?
madshi
16th August 2007, 12:04
I PM'd you 2 examples of AC3 files that crash eac3to when removing DialNorm.
eac3to expects clean AC3 files. It aborts if there are errors in the AC3 file. The 2 examples you sent me were not clean. Please run them through besweet or delaycut to fix all the CRC errors etc. Afterwards eac3to will handle these files just fine.
Nikos
16th August 2007, 13:50
Thanks madshi and ACrowley for the explanations.
@madshi when i set a value of Dialog Norm. -27 db without DRC then the decoder simply attenuate the whole stream by [31 + (-27)] = 4 db.
I made a test with the audio from the "RIO Bravo" movie (.eac3 mono, -27 db Dial. Norm). I convert to mono .wav with eac3to.
eac3to without any parameter:
peek value --> -1.1 db, RMS value --> -28.2 db
eac3to with -keepDialnorm:
peek value --> -5.1 db, RMS value --> -31.4 db
eac3to with -keepDialnorm and -allowDRC:
peek value --> -9.4 db, RMS value --> -32.4 db
The above values taken from whole stream, not from a part. I use Sound Forge with "ignore sound below -45 db" and "use equal loudness contour".
@ACrowley "Just use the Center Wave with a Dialog Part" it's not enough. We must use several parts from Center Wave with Dialog only and calculate the average RMS because there are high volume Dialog parts and low volume Dialog parts.
madshi
16th August 2007, 14:02
@madshi when i set a value of Dialog Norm. -27 db without DRC then the decoder simply attenuate the whole stream by [31 + (-27)] = 4 db.
Correct. That's how DialNorm works... :)
tebasuna51
16th August 2007, 14:56
Just my opinion:
- DialNorm: is a tool to equalize volume from different sources. If you only listen ac3 sources is a valid option to maintain the volume control at same position. If you listen also modern CDA music, commercial TV, mp3, ... use DialNorm -31 dB (and maximize peak to 0 dB).
- DRC: useful in bad listen environment (neighbors, night, bad audio equipment, ...). Recommended, if your audio equipment is bad you need them, if is good you can disable/enable at your choice. Remember, the audio is equal encoded, only attenuation/gain values are added and the decoder can use or not.
yonta
16th August 2007, 16:07
eac3to generates a wrong wav file
source is 16bit 48khz 7.1ch Blu-ray lpcm and tried converting to ac3.
command line and output is:
F:\eac3to>eac3to f:\Innocence.pcm f:\Innocence.ac3 -8 -16 -down6
RAW, 7.1 channels, 0:01:00, 16 bits, 48khz
Converting the raw file to wav. Please wait...
Converting the wav file to ac3. Please wait...
Aften: A/52 audio encoder
Version 0.07
(c) 2006-2007 Justin Ruggles, Prakash Punnoor, et al.
invalid RIFF id in wav header
invalid wav file: -b
"aften" reported error code "1". A valid *.wav file was created sucessfully, though.
this wav file eac3to created crashes mpc.
mediainfo says;
Codec : PCM
Codec/Family : PCM
Codec/Info : Microsoft PCM
Bit rate : 6144 Kbps (should be 4608 Kbps?)
Channel(s) : 6 channels
Sampling rate : 48 KHz
Resolution : 16 bits
madshi
16th August 2007, 17:15
eac3to generates a wrong wav file
source is 16bit 48khz 7.1ch Blu-ray lpcm and tried converting to ac3.
command line and output is:
F:\eac3to>eac3to f:\Innocence.pcm f:\Innocence.ac3 -8 -16 -down6
RAW, 7.1 channels, 0:01:00, 16 bits, 48khz
Converting the raw file to wav. Please wait...
Converting the wav file to ac3. Please wait...
Aften: A/52 audio encoder
Version 0.07
(c) 2006-2007 Justin Ruggles, Prakash Punnoor, et al.
invalid RIFF id in wav header
invalid wav file: -b
"aften" reported error code "1". A valid *.wav file was created sucessfully, though.
this wav file eac3to created crashes mpc.
mediainfo says;
Codec : PCM
Codec/Family : PCM
Codec/Info : Microsoft PCM
Bit rate : 6144 Kbps (should be 4608 Kbps?)
Channel(s) : 6 channels
Sampling rate : 48 KHz
Resolution : 16 bits
Thanks for the information. I've checked and the "-down6" option results in some fields being set incorrectly in the wav header. I'll fix that in the next build. In the meanwhile you could try using the Aften build that ships with eac3to instead of 0.07. I'm not sure if the older Aften build ignores the incorrect wav header but there have been cases before where the older Aften build worked fine where Aften 0.07 failed.
yonta
16th August 2007, 17:35
In the meanwhile you could try using the Aften build that ships with eac3to instead of 0.07. I'm not sure if the older Aften build ignores the incorrect wav header but there have been cases before where the older Aften build worked fine where Aften 0.07 failed.
same thing happens with the Aften build in eac3to.zip.
rev.561 of Aften does create a file which is just stereo@640k and produces only noise.
madshi
16th August 2007, 18:13
Ok, thanks, will upload a fixed build later.
ACrowley
16th August 2007, 19:21
yes Madshi, ofcourse youre right...its reversed. DRC makes only Sense with proper Dialnorm. As written in the Guide
My Post was very vague and i dont force anybody to anything
@Nikos..i know :) When its a full lengt Track you cant use only a small Part.
However.. i dont use DRC and no DialNorm.. i encode with -31db ( -31db +31db = attenuate 0db) and no DRC Profile
Nikos
16th August 2007, 20:04
However.. i dont use DRC and no DialNorm.. i encode with -31db ( -31db +31db = attenuate 0db) and no DRC Profile
I agree the optimal solution.
One more question:
If one ac3 file has Dialog Norm. and DRC, the software ac3Filter bypass them or not?
honai
16th August 2007, 20:21
DRC can be enabled/disabled in AC3Filter. Don't know about Dial.Norm.
Nikos
16th August 2007, 21:39
DRC can be enabled/disabled in AC3Filter. Don't know about Dial.Norm.
This is another thing.
I mean if the ac3Filter can bypass the Dialog Norm. and DRC written as metadata inside the ac3 stream.
honai
16th August 2007, 21:46
This is another thing.
I mean if the ac3Filter can bypass the Dialog Norm. and DRC written as metadata inside the ac3 stream.
No, it's not, it's precisely the answer to your question. ;)
The DRC option in AC3Filter allows for respecting or ignoring the DRC data in the AC3 stream.
If you set AC3Filter to passthrough AC3 to an external receiver of SPDIF then the receiver (or your hand at the remote control) decides whether DRC should be applied.
tebasuna51
16th August 2007, 22:12
IOne more question:
If one ac3 file has Dialog Norm. and DRC, the software ac3Filter bypass them or not?
I don't know DialNorm (is not a problem a fix attenuation), but, in accordance with my test, the DRC values in ac3 stream are bypassed and ac3filter apply a owner function to make the DRC.
This kind of function can be applied for any source, not only ac3, and is a better solution than ac3 DRC but require more resources, is not habitual in receivers or standalone players.
tebasuna51
16th August 2007, 22:38
yes Madshi, ofcourse youre right...its reversed. DRC makes only Sense with proper Dialnorm. As written in the Guide
My Post was very vague and i dont force anybody to anything
Of course anybody can do anything, but "DRC makes only Sense with proper Dialnorm" ???
The values of DRC are modified by DialNorm but the concept is absolutely different:
DialNorm try to normalize all the sources at same level (dialogs at -31 bB), ... but is a lose battle, the others formats go 10 dBs upper.
But DRC is a help for some situations. The ideal solution is, like I say in precedent post, the player make the function at player time, but waiting for this solution we can use ac3 DRC, not necessarily with DialNorm.
ACrowley
16th August 2007, 23:44
When i have have mistaken something ,ok no Problem.
I can only read the Guide ,where you can find for "AC3 encoding"
The following point, however, cannot be stressed enough: In order for the Dynamic Range Compression to work as designed, the Dialogue Normalization parameter MUST be properly set first
When its wrong....nevermind. THX for the Infos. But No need to correct me with fat black letters
I dont care...as i say i dont use DRC in encoding/decoding
big-guy
16th August 2007, 23:56
I've just added this functionality to the latest eac3to version.
Thank you very much :D.
Keep up the great work :p.
Nikos
17th August 2007, 00:41
Thanks all for the helpfull informations.
You are very illustrative.
I feel happy!!!
tebasuna51
17th August 2007, 01:10
But No need to correct me with fat black letters
Sorry, really I want support your previous comments about don't care the Dolby specs.
My option is use DRC but not DialNorm, the guide, of course, try to be Dolby compliant.
Sorry.
big-guy
17th August 2007, 08:17
Somehow the audio I ripped isn't timed correctly... The movie itself is 01:59:55. While the extracted AC3 track is 01:49:55 in length ><. So if you have any way to fix that? Or is my BD disc just crap >_>... Otherwise I'll just use the AC3 448kbps stream from the DVD...
I used this command: eac3to bits0001.thd WoH.ac3
That should be correct right?
I demuxed the thd stream with xport. With the -a option.
madshi
17th August 2007, 09:00
That's strange. Which movie is that?
ACrowley
17th August 2007, 14:02
Sorry, really I want support your previous comments about don't care the Dolby specs.
My option is use DRC but not DialNorm, the guide, of course, try to be Dolby compliant.
Sorry.
everything Ok!
You helped me a lot with all these previous AC3 encoding/decoding DRC/Dialnorm Thing .
No i see Things clear. THX :)
big-guy
17th August 2007, 22:00
That's strange. Which movie is that?
It's The Wings of Honnêamise BD Rip. (I got the rip from usenet, everything was ok with it, no faulty rars and such).
If you could find a solution for such a weird error ? otherwise I'll just use the 448kbps audio from the DVD.
Also the subs are troublesome :mad:, need to enter all text manually...
onlym3
21st August 2007, 12:42
Has the "File size of the raw file doesn't fit" problem been solved yet? I get that problem on 3 different pcs and other than running on Windows XP they dont have anything in common. One has Nero 7.10 installed, the other 7.8.5 so i doubt they both suffer from a bad Nero install. And one doesnt have the mention dtsac3source filter installed so that cant be it either.
madshi
21st August 2007, 13:46
It's The Wings of Honnêamise BD Rip.
I don't have that BD. I have two other BDs with TrueHD, though. I'll double check whether the length of the extracted AC3 file is ok with those tracks. Maybe there's a bug in eac3to.
madshi
21st August 2007, 13:47
Has the "File size of the raw file doesn't fit" problem been solved yet? I get that problem on 3 different pcs and other than running on Windows XP they dont have anything in common. One has Nero 7.10 installed, the other 7.8.5 so i doubt they both suffer from a bad Nero install. And one doesnt have the mention dtsac3source filter installed so that cant be it either.
Do you have that problem with every E-AC3 track you try to convert? Or only with mono E-AC3 tracks?
onlym3
21st August 2007, 14:21
Do you have that problem with every E-AC3 track you try to convert? Or only with mono E-AC3 tracks?I tried 2 EAC3 tracks from 2 different HDDVDs, same result. And they arent mono.
madshi
21st August 2007, 14:36
I tried 2 EAC3 tracks from 2 different HDDVDs, same result. And they arent mono.
Have you tried GraphEdit? You need to rename it to Recode.exe. Then try "Nero File Source /Splitter -> Nero Audio Decoder 2 -> Default DirectSound Device". Does sound play for you that way?
I'm not sure, but probably you need the Blu-Ray/HD DVD plugin? Originally I thought you don't need it for E-AC3 decoding. But right now I guess you do.
onlym3
21st August 2007, 17:19
I'm not sure, but probably you need the Blu-Ray/HD DVD plugin? Originally I thought you don't need it for E-AC3 decoding. But right now I guess you do. 24.99$ later in can confirm that, works after i activated the Bluray/HDDVD Plugin.
orbitlee
21st August 2007, 18:49
I don't have that BD. I have two other BDs with TrueHD, though. I'll double check whether the length of the extracted AC3 file is ok with those tracks. Maybe there's a bug in eac3to.
@madshi
From what I know, TrueHD in Blu-ray contains DD 5.1 640K core. And, just like DTS-HD, you have to handle sync word emulation very carefully to avoid the incorrect length of extracted AC3. I wrote a tool to extract the DD 5.1 core from Blu-ray TrueHD, and tested on 3 BDs without any problem. I'll send the source code to you so you can merge into eac3to.
madshi
21st August 2007, 19:07
24.99$ later in can confirm that, works after i activated the Bluray/HDDVD Plugin.
Thanks, that's good to know.
madshi
21st August 2007, 19:09
@madshi
From what I know, TrueHD in Blu-ray contains DD 5.1 640K core. And, just like DTS-HD, you have to handle sync word emulation very carefully to avoid the incorrect length of extracted AC3. I wrote a tool to extract the DD 5.1 core from Blu-ray TrueHD, and tested on 3 BDs without any problem. I'll send the source code to you so you can merge into eac3to.
Thanks, the source code would be welcome and I'd love to integrate it into eac3to! :)
I think I was careful about the sync word stuff etc. I'm checking for the signature and I'm only accepting frames with a valid CRC. Every AC3 frame should have a valid CRC. Because of that valid AC3 frames should be easy to identify. I think it's more difficult with DTS. There CRC is optional and rarely used, as far as I know. Anyway, I'll compare your source code to mine and check if I can find significant differences... :)
madshi
21st August 2007, 20:48
@madshi
From what I know, TrueHD in Blu-ray contains DD 5.1 640K core. And, just like DTS-HD, you have to handle sync word emulation very carefully to avoid the incorrect length of extracted AC3. I wrote a tool to extract the DD 5.1 core from Blu-ray TrueHD, and tested on 3 BDs without any problem. I'll send the source code to you so you can merge into eac3to.
Could you make your DDCore tool available as an exe file? That way "big-guy" could test whether it works better for him than eac3to's solution. I've checked your code and it looks alright to me. But if your code doesn't work better than mine I'd prefer to keep mine.
Thanks!
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.