Log in

View Full Version : eac3to - audio conversion tool


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 [277] 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308

tebasuna51
20th January 2016, 14:13
Yes, that's it. It had serious issues with DTS CDs.
Then use before BeSplit.
And there is an old foobar plugin for DTS-HD. (http://sourceforge.net/projects/dvdadecoder/files/foo_input_dtshd/)
I tested already this old plugin:
foo_input_dtshd-0.1.3.zip 2011-03-19

known_issues.txt from this page:
All the mentioned below is related to current version only.

1. Decoder adds 2048 zero samples before track.
2. Decoder cuts 1-2 seconds at the end of the track.
3. Surround channels are -3dB of what is encoded.
4. Decoder doesn't play DTS9624 streams.

nevcairiel
20th January 2016, 14:26
That's don't affect at all to DTS movie trakcs, and the problem can be solved with a data parser to restore the standard 16 bits/word DTS format.
The old BeSplit can do the job without problems.

libdcadec even has a parser for such a conversion, sounds to me like the developer of this foobar plugin just gave up without checking too much.

tebasuna51
20th January 2016, 15:28
Now I wonder: is that particular clipping already contained in the mix...?

I think so. Is not the first time than similar clip are in source tracks (even with DTS-MA encodes).

osso123
20th January 2016, 19:21
Hello everybody, i noticed that a converted AC3 subwoofer/LFE track sounds different to the original DTS track. The conversion by eac3to (aften) adds harmonics (?) to the track it seems. I attached a audacity screenshot to this post, please have a look yourself; maybe someone can explain what is going on.

Thank you :)


Picture shows:
Bottom track is the original DTS track with a very deep & clear bass; the top track is the convertion result in ac3 format which has frequencies (harmonics?) added.

torturesauce
20th January 2016, 20:50
Then use before BeSplit

Yeah, I would, but it doesn't matter anymore. I lost the version of the plugin that used dcadec, since the developer forced it to be deprecated. Anyway, thank you for all the info! Let's hope that foobar supports dcadec again in the future.

filler56789
20th January 2016, 22:04
Let's hope that foobar supports dcadec again in the future.

OR you can pester Maxim Anisiutkin and try to make things happen faster :sly:

Emulgator
21st January 2016, 03:43
Osso, which bitrate for DTS and which bitrate for AC-3 ? Number of Channels for the complete encode ?

tebasuna51
21st January 2016, 16:27
libdcadec even has a parser for such a conversion,...

There are 4 valid formats for DTS:

16_BE: data with 16 valid bits/word and Big Endian order
14_LE: data with 14 valid bits/word and Little Endian order
14_BE: data with 14 valid bits/word and Big Endian order
16_LE: data with 16 valid bits/word and Little Endian order

We can use ffdcaenc to obtain samples of 4 formats using some encoder parameters.
I tested the 4 samples and try to decode with eac3to and ffmpeg -acodec libdcadec:

DTS first 4 bytes ffdcaenc eac3to ffmpeg where is?
----- ------------- -------- ------- ------ ---------------
16_BE 7FFE8001 default OK OK standard BD/DVD
14_LE FF1F00E8 -e -r (1) OK standard DTS-CD
14_BE 1FFFE800 -r Invalid OK I don't know
16_LE FE7F0180 -e Invalid (2) I don't know

(1) Like DTS is not recognized (Invalid), but with a WAV header show DTSWAV and is decoded fine with LibDcaDec.
But some DTSWAV from DTS-CD have garbage before the first valid DTS header in DATA chunk of WAV, and is not recognized by eac3to.
I don't know if this garbage is a requirement for SPDIF output of DTS-CD.
A workaound for eac3to can be force read DATA WAV, with a new parameter -dts, until found the header FF1F00E8.

(2) I found some problems decoding 16_LE, but still I'm not sure if is a ffdcaenc or libdcadec problem.
EDIT: seems than ffmpeg -acodec libdcadec have problems (lose frames) with odd DTS Framesize (typical 2013 for instance).
Like a never see a real 16_LE I think that is not important.

Then libdcadec seems work fine with 14 bits/word DTS formats.

filler56789
22nd January 2016, 05:32
There are 4 valid formats for DTS:

16_BE: data with 16 valid bits/word and Big Endian order
14_LE: data with 14 valid bits/word and Little Endian order
14_BE: data with 14 valid bits/word and Big Endian order
16_LE: data with 16 valid bits/word and Little Endian order

We can use ffdcaenc to obtain samples of 4 formats using some encoder parameters.

One can also use bsconvert.exe:

=>bsconvert
Bitstream converter
===================
This utility conversts files between numerous MPA/AC3/DTS stream types:
SPDIF padded, 8/14/16bit big/low endian. By default, it converts any
stream type to the most common byte stream.

This utility is a part of AC3Filter project (http://ac3filter.net)
Copyright (c) 2007-2013 by Alexander Vigovsky

Usage:
Detect file type and print file information:
> bsconvert input_file

Convert a file:
> bsconvert input_file output_file [format]

Options:
input_file - file to convert
output_file - file to write result to
format - output file format:
8 - byte stream (default)
16le - 16bit low endian
14be - 14bit big endian (DTS only)
14le - 14bit low endian (DTS only)


NOTICE: regarding the 14-bit formats — 'ideally' at least, the "apparent" bitrate must be an integer multiple of 8, so that the `effective´ bitrate is exactly

(7/8) × |apparent_bitrate|

Examples:

1234.8kbps ÷ (7/8) = 1411.2kbps

1344kbps ÷ (7/8) = 1536kbps

and so on.

tebasuna51
22nd January 2016, 10:51
One can also use bsconvert.exe...

Yep, I mentioned BeSplit to show than is a issue well know longtime ago.

an3k
22nd January 2016, 11:18
Thanks for that great tool. I really helps a lot!

I have this file:eac3to.exe "E:\S01E01_a_eng.dts"
DTS Master Audio, 5.1 channels, 16 bits, 48kHz
(core: DTS, 5.1 channels, 1509kbps, 48kHz)

eac3to.exe "E:\S01E01_a_eng.dts" "E:\S01E01_a_eng.ac3" -640DTS Master Audio, 5.1 channels, 16 bits, 48kHz
(core: DTS, 5.1 channels, 1509kbps, 48kHz)
Decoding with libDcaDec DTS Decoder...
libDcaDec reported the warning "XLL output not lossless".
Remapping channels...
Encoding AC3 <640kbps> with libAften...
Creating file "E:\S01E01_a_eng.ac3"...
The original audio track has a constant bit depth of 16 bits.
eac3to processing took 2 minutes, 26 seconds.
Done.

eac3to.exe "E:\S01E01_a_eng.dts" "E:\S01E01_a_engcore.ac3" -640 -coreDTS Master Audio, 5.1 channels, 16 bits, 48kHz
(core: DTS, 5.1 channels, 1509kbps, 48kHz)
Extracting DTS core...
Decoding with libDcaDec DTS Decoder...
Patching bitdepth to 24 bits...
Remapping channels...
Encoding AC3 <640kbps> with libAften...
Creating file "E:\S01E01_a_engcore.ac3"...
The original audio track has a constant bit depth of 24 bits.
eac3to processing took 1 minute, 46 seconds.
Done.

I also ran the second command again but with -core -640 (I thought there may be a difference). All three files are exactly the same regarding size (278.924.800 Bytes) and format (MediaInfo and GSpot). Why are the files identical when the second command shows "Patching bitdepth to 24 bits..." while the first command doesn't? Are the resulting files actually 24 bits or 16 bits or something else? Is the first command re-encoding the DTS-HD to AC3 while the second just uses DTS to AC3? If so, how come the resulting files are identical?

Please enlighten me :)

nevcairiel
22nd January 2016, 11:28
Decoding the lossy core only will always result in 24-bit audio, while decoding the lossless part will results in the specified bitdepth.
So yes, the first command encodes the DTS-HD lossless part into AC3, and the second only encodes the DTS lossy core into AC3. However, due to the lossy AC3 encoding, its not entirely unlikely that the result would be largely identical.

Note that AC3 doesn't have a "bitdepth" as such, so feeding it 24-bit data in contrast to 16-bit data won't actually change much how the AC3 file turns out.

an3k
22nd January 2016, 11:51
So if AC3 doesn't have a bitdepth why does eac3to makes a difference here? The first command created a 16-Bit AC3 and the second created a 24-Bit AC3 but both resulting files are identical.

In other words: When in doubt always encode the DTS-HD stream (instead of the DTS core) to AC3 and don't care about the given bitdepth info at all?

osso123
22nd January 2016, 12:15
Osso, which bitrate for DTS and which bitrate for AC-3 ? Number of Channels for the complete encode ?

I attach an audio test file in wav format to this post, please have a look. It is mono, 48Hz.

This resulting output file has no harmonics (?) added:
eac3to test.wav out320.ac3 -320

But this version (and all below increasingly heavy) has - it seems to be depending on bitrate:
eac3to test.wav out192.ac3 -192


I used different codecs to replicate, but ogg/mp3 show no frequency "overshoot" down to very low bitrates (f.i. 32kb).
So, is this normal for AC3 codec to introduce massive noise/overshoot/harmonics even at midrange bitrates? This happens too when I used Audacityc export feature as well by the way.

hello_hello
22nd January 2016, 15:04
So if AC3 doesn't have a bitdepth why does eac3to makes a difference here? The first command created a 16-Bit AC3 and the second created a 24-Bit AC3 but both resulting files are identical.

In other words: When in doubt always encode the DTS-HD stream (instead of the DTS core) to AC3 and don't care about the given bitdepth info at all?

Lossy audio doesn't have a fixed bitdepth.
Bitrate = the number of samples per second. For lossless audio bitdepth = the range of values that can be assigned to any one of those samples. For 8 bit it's 256, for 16 bit it's 65,536 and for 24 bit it's 16,777,216.

I'd assume because the DTS-HD audio is lossless the bitdepth is known. For your example it was originally 16 bit, it was encoded at 16 bit, and eac3to decoded it as 16 bit and fed that to the AC3 encoder. DTS-HD supports 24 bit lossless, but it appears you have 16 bit DTS-HD.
It's kind of like converting a 16 bit wave file to a 16 bit flac file and then back to a 16 bit wave file again. Nothing is lost, and in your first example you've effectively converted that second wave file to AC3.

Lossy audio can be decoded to any fixed bitdepth. The greater the bitdepth, the more accurately it can be decoded. eac3to decodes the lossy DTS core, which has no fixed bitdepth, to a fixed bitdepth of 24 bits.
It's kind of like converting a 16 bit wave file to an MP3 and then decoding the MP3 to a 24 bit wave file. What was lost during the MP3 conversion is gone forever despite the output bitdepth being greater.

The size of a file doesn't tell you much. Encoding five minutes of silence at 640kbps will give you the same file size as encoding music at 640kbps. The bitrate is the same. 640kbps is 640kbps.

tebasuna51
22nd January 2016, 22:54
So, is this normal for AC3 codec to introduce massive noise/overshoot/harmonics even at midrange bitrates?

Sorry but I can't replicate your test, the differences between your Test.wav and the AC3 192 Kb/s are below than -61 dB (0.09 %).

That is not massive noise/overshoot/harmonics, is the expected difference between source and a lossy encode.

osso123
22nd January 2016, 23:08
Sorry but I can't replicate your test, the differences between your Test.wav and the AC3 192 Kb/s are below than -61 dB (0.09 %).

That is not massive noise/overshoot/harmonics, is the expected difference between source and a lossy encode.

Please look at the resulting ac3 files spectrum via audacity. It shows harmonic frequencies added that werent there before. In this example there are only few new frequencies added (even more if you reduce the conversion bitrate), but if you run this test with a real life file, for example of a movie, you will see extreme differences, you can even *hear* them by ear, which i think is unacceptable. :(


P.S. these reply-submission-captchas are ... overpowered :/

osso123
22nd January 2016, 23:22
I uploaded a better example of a 5.1 DTS real-life file and the converted ac3 file.

Load those files into your audio editor and just listen only to the bass tracks (solo). You will hear those new frequencies instantly, they are distorting the bass channel.

http://www98.zippyshare.com/v/6ViEaKpO/file.html

tebasuna51
23rd January 2016, 13:10
I uploaded a better example of a 5.1 DTS real-life file and the converted ac3 file.

Seems there are something wrong in your real-life DTS.
I don't know the encoder used to create this DTS, but is it than have high frequency harmonics and not the AC3. See attached image.

Maybe sound better for you, but the AC3 encoder do the job like expected:
filtering high frecuencies before encode.

osso123
23rd January 2016, 14:37
Seems there are something wrong in your real-life DTS.

Or maybe you named the files wrong? Please look at this video capture I just did:
https://youtu.be/2gHP_SOZS6Y

If you have a mediaplayer that can remap/mute audio inputchannels separately - like MPC (mediaplayerclassic) - you could also just have it mute all but the LFE channel and listen to it that way. The high pitch frequencies in the ac3 are hearable from far away. So its no visual bug in Audacity or something of that sort. ;)

P.S. btw, my spectrogram windows-size in audacity is set to 4096.

tebasuna51
23rd January 2016, 18:40
Or maybe you named the files wrong?
I only renamed the ac3 (osso) because I make other encodes to AC3 (with Aften and ffmpeg) with the same result.

The DTS remain with the same name downloaded (orig).

Maybe the problem is your Audacity decoders.
I decoded the compressed formats (out of Audacity) to wavs, and only load in Audacity decompressed wav files.

I decoded the DTS with eac3to using libdcadec and ArcSoft and both show the same problem. The AC3 decoded with eac3to libav.

Try using that method because your DTS spectrogram seems limited to 300 Hz, but mine go until 3000 Hz and more, and I don't see problems with AC3 spectrogram (like you show in video) also until 3000 Hz.

EDIT:
Using my Audacity decoders (ffmpeg-win-2.2.2), both spectrograms go until 3000 Hz but seems fine:
The DTS don't have high harmonics and the AC3 is equal to the DTS without the problems in your video.

an3k
23rd January 2016, 21:22
Lossy audio doesn't have a fixed bitdepth.
Bitrate = the number of samples per second. For lossless audio bitdepth = the range of values that can be assigned to any one of those samples. For 8 bit it's 256, for 16 bit it's 65,536 and for 24 bit it's 16,777,216.Oh, I thought (for lossless audio) kHz defines how much samples per second are taken and Bit depth how many values each sample stores. And I thought AC-3 would work like eg. x264 which keeps the bitrate low when there is no content to encode. So in short AC-3 is like MP3 CBR?!

I'd assume because the DTS-HD audio is lossless the bitdepth is known. For your example it was originally 16 bit, it was encoded at 16 bit, and eac3to decoded it as 16 bit and fed that to the AC3 encoder. DTS-HD supports 24 bit lossless, but it appears you have 16 bit DTS-HD.I have other files. Some with 24-Bit DTS-HD and 16-Bit DTS Core, some with 16-Bit DTS-HD and 24-Bit Core and last but not least 16-Bit/16-Bit as well as 24-Bit/24-Bit. I just re-checked with MediaInfo and even for (lossy) DTS I get a Bitdepth shown.

It's kind of like converting a 16 bit wave file to a 16 bit flac file and then back to a 16 bit wave file again. Nothing is lost, and in your first example you've effectively converted that second wave file to AC3.

Lossy audio can be decoded to any fixed bitdepth. The greater the bitdepth, the more accurately it can be decoded. eac3to decodes the lossy DTS core, which has no fixed bitdepth, to a fixed bitdepth of 24 bits.
It's kind of like converting a 16 bit wave file to an MP3 and then decoding the MP3 to a 24 bit wave file. What was lost during the MP3 conversion is gone forever despite the output bitdepth being greater.Yeah, that is the part I already knew. I ripped my Audio-CDs with the Fraunhofer MP3 codec when it was leaked back then and still do some re-encodings today from CD to FLAC. Also read (and understood = the important part ;)) https://www.highresaudio.com/texte.php?ca_id=92

One last question: In http://forum.doom9.org/showthread.php?t=27131 I read that based on the bitrate AC-3 limits the available frequency range, eg. 256 kbps up to 12 kHz, 384 kbps up to 18 kHz and 448 kbps or higher with full 20 kHz. Is that true? I thought that a 2 channel 224 kbps AC-3 has a better quality per channel than a 6 channel 640 kbps AC-3. Maybe I should just go with 640 regardless of the amount of channels? :)

tebasuna51
23rd January 2016, 23:51
So in short AC-3 is like MP3 CBR?!
More or less, yes.

I have other files. Some with 24-Bit DTS-HD and 16-Bit DTS Core, some with 16-Bit DTS-HD and 24-Bit Core and last but not least 16-Bit/16-Bit as well as 24-Bit/24-Bit. I just re-checked with MediaInfo and even for (lossy) DTS I get a Bitdepth shown.
Lossy DTS (Core) don't have bitdepth, and MediaInfo is wrong when show that info (and others infos).

I read that based on the bitrate AC-3 limits the available frequency range, eg. 256 kbps up to 12 kHz, 384 kbps up to 18 kHz and 448 kbps or higher with full 20 kHz. Is that true?

Is a encoder option, but is recommended for 5.1.

For 2.0: 112 Kb/s up to 12.4 KHz, 160 Kb/s up to 15.8 KHz, 192 Kb/s or higer up to 20.3 KHz

LigH
24th January 2016, 22:02
In general, without auxiliary specifications, you can use AC3 in VBR mode too (I believe Aften supported that). But there are consumer media specifications (e.g. "DVD Video") which require CBR audio streams. AC3 can, but is not allowed to under certain circumstances.

For audio formats with a good "channel coupling" (known as "Mid/Side" encoding for MP3 which supports stereo at most, but it can be handled in a similar way for more channels too), there is a theorem that the bitrate shall be in relation to the square root of the number of full frequency channels to achieve similar quality. It usually works quite well for AC3, comparing a 2.0 bitrate as √2 times a theoretical base mono bitrate with a 5.1 bitrate as √5 times the same theoretical base mono bitrate. Depending on the content.

an3k
25th January 2016, 11:06
Thank you very much both of you for your time explaining that stuff

More or less, yes.

Lossy DTS (Core) don't have bitdepth, and MediaInfo is wrong when show that info (and others infos).Jeez, I thought that at least this tool does it right. I used GSpot some years ago and was told it shows wrong information and that I should use MediaInfo instead. Is there a tool that shows the information correctly?

Is a encoder option, but is recommended for 5.1.

For 2.0: 112 Kb/s up to 12.4 KHz, 160 Kb/s up to 15.8 KHz, 192 Kb/s or higer up to 20.3 KHzOverall bitrate I guess!?!

I found

http://i.imgur.com/3iOylDA.png

but to be honest I didn't understood much. So to be on the "save side" (=no frequency limiting) one should use at least 448 kbps for 5.1 or 192 kbps for 2.0?!? For 4.0 do I just have to double the bitrate of 2.0 and for mono just halve it?

In general, without auxiliary specifications, you can use AC3 in VBR mode too (I believe Aften supported that). But there are consumer media specifications (e.g. "DVD Video") which require CBR audio streams. AC3 can, but is not allowed to under certain circumstances.Good to know VBR is possible. But that would not increase quality but only create smaller files because AC-3 is limited to 640 kbps and even VBR will not exceed this?!

For audio formats with a good "channel coupling" (known as "Mid/Side" encoding for MP3 which supports stereo at most, but it can be handled in a similar way for more channels too), there is a theorem that the bitrate shall be in relation to the square root of the number of full frequency channels to achieve similar quality. It usually works quite well for AC3, comparing a 2.0 bitrate as √2 times a theoretical base mono bitrate with a 5.1 bitrate as √5 times the same theoretical base mono bitrate. Depending on the content.I believe I think I understood this ... EDIT: After some testing I know I did not. English + mathematical terms aren't my hobby :)

LigH
25th January 2016, 11:31
It just means: To have 5.x sound as good as 2.0 at e.g. 224 kbps, you don't need 5/2 times the bitrate (224*5/2=560, next closest available block bitrate would be 576 kbps), but only about √5/√2 times as much (224*√5/√2~354 kbps, next closest available block bitrate would be 384 kbps). Well, channel coupling isn't really that good (the more channels, the more an accurate phase angle is important to avoid flanging effects). A 384 kbps discrete 5.1 AC3 sounds not certainly as good as a comparable 224 kbps ProLogic 2.0 AC3, better to have 448 kbps. And 640 kbps is even ... "generous", in comparison.

tebasuna51
25th January 2016, 13:28
...I should use MediaInfo instead. Is there a tool that shows the information correctly?
MediaInfo is wrong when show:
Bit depth : 24 bits
The real info contained in the DTS header field is:
Source PCM Resolution : 24

That is, the bitdepth of the PCM source (WAV or equivalent) used to encode the DTS.

When encode, the PCM samples in time domain are converted to float samples in frequency domain, and someones are discarded in lossy encodes (by frecuency cutoff or low values) to fit in the bitrate assigned.

At this moment the bitdepth of the source have no meaning at all.

Even some encoders put always 24 in this header field, no mather the source was 16 bits.
Also eac3to, when extract DTS's, put always 24 in this field, thats force some decoders (than read this field) to output at least 24 bit.

For all that we need forget the bitdepth info of lossy encodes.
Only DTS have this info field, all other lossy encoders don't show that irrelevant info.

So to be on the "save side" (=no frequency limiting) one should use at least 448 kbps for 5.1 or 192 kbps for 2.0?!?
Yep, but remember than high frequency limit is not the unique quality parameter.

Like I say before some samples in frequency domain must be discarded to fit in the bitrate, if aren't by frequency must be by low values and lose precission.

Good to know VBR is possible.
Possible but not compatible with all players.

Before than try AC3 VBR I recommend AAC or MP3 VBR for 2.0
For 5.1 you can try AAC or E-AC3 (maybe a player than support AC3 VBR support also E-AC3 much better)

an3k
26th January 2016, 11:21
...

...

Now I understand how it works. Thank you both very much for not letting me die stupid :)

One last quick question: Is there an easy way to strip the EX out of a "AC3 EX, 5.1 channels, 2:23:11, 640kbps, 48kHz" source? Currently I convert to WAV then back to AC3 and in that process (and only then) I get Reducing depth from 64 to 24 bits... (64 bit AC-3 file?! Interesting ;)) as well as Clipping detected, a 2nd pass will be necessary.

tebasuna51
26th January 2016, 16:02
Is there an easy way to strip the EX out of a "AC3 EX, 5.1 channels, 2:23:11, 640kbps, 48kHz" source?
The EX in AC3 is not related with next questions.

It say: "There are a Back Center channel mixed in surround channels"
Like DTS-ES 5.1 matrixed.

I get Reducing depth from 64 to 24 bits...
The AC3 decoder output PCM samples 64 bits float, then is downconverted to 24 bits int because is enough precission for PCM from a lossy encode.

You can use the parameter -full to output the 64 bits float PCM.

as well as Clipping detected, a 2nd pass will be necessary.
Sometimes the decoder output go over 0dB than can't be downconverted to 24 int without clip peaks.

You can use the parameter -no2ndpass to avoid the second pass.

Is, more or less, safe because peaks over 0dB can only be imperfections of lossy encoder/decoder. The original source can't have peaks over 0dB.

Thunderbolt8
30th January 2016, 14:25
The German (3D) BD of Inside Out (seamless branching) has a EAC3 7.1 stream with 896kbps and which has as embedded core stream AC3 5.1 with 512kbps. I want to extract just that ac3 core as it is without any reencoding. but when I do with the cmd "eac3to 1) X: C:\stream.ac3" (which should be the ac3 equivalent to extracting a DTS core from a DTS-HD MA track) then eac3to says decoding with libav/ffmpeg and encoding AC3 <640kbps> with libAften, so the stream gets indeed reencoded. same with the same cmd line and "-core" in addtion.

edit: Ive found the .ec3 -core information, but it would be nice if this could be documented within eac3to as well.

edit˛: why is it actually .ec3 -core here and not just .ac3 -core? that would make more sense compared to how it works with .dts

BigPines
31st January 2016, 17:24
Sadly, the PC I had eac3to perfectly set-up on and my backup drive were both destroyed in a single catastrophic event. :(

I am trying to put Humpty Dumpty back together and it is tough to say the least. I recall that years ago I spent days trying to get the perfect install of eac3to and all of it's dependencies but it has been so long, I can't recall everything necessary to get back there. This thread is so long now that I am having trouble finding up-to-date info on this. Could someone point me to the most relevant installation instructions for the best possible install of this wonderful tool and all it's dependencies? I am looking for which versions of the dependencies to use and how to install only what I need to make it work in the highest quality possible and nothing else. Thanks in advance!

Boulder
31st January 2016, 18:33
I think that what comes to decoding, currently you are fine with whatever is included in the eac3to package (apart from AAC decoding). Dcadec and libav will handle everything else except AAC, which apparently needs the Nero Directshow decoder.

What comes to encoding, I personally prefer to either decode to WAV and encode that in a separate encoder or pipe to the encoder directly.

BigPines
1st February 2016, 01:04
I only use the decoding. Looks like I need Nero for sure and probably ArcSoft too. Trying to get it going.

Boulder
1st February 2016, 04:45
You don't need ArcSoft at all, dcadec can handle everything it does.

BigPines
1st February 2016, 04:50
My understanding is Nero Lite will work but I have installed Nero Lite 7.11.10.0 and I still get the message that Nero Audio Decoder is not installed. I guess I'll try something else.

Sparktank
1st February 2016, 08:13
You could always pipe to QAAC. Something that still gets updates.

BigPines
1st February 2016, 19:44
I finally think I have eac3to going as best I can. I decided to get it going with as many features as possible since my prior install was fully functional. Again, my goal was to make as light an install as possible with the most features and the best components.

Seems like it has been a while since someone posted the steps for a complete install so I am posting this in the hopes it will save someone else some time. A couple of notes:

- I was unable to obtain Sonic Cinemaster Audio Decoder 4.3 so installation of that component is not covered below.
- I was unable to figure out how to register only the required library(s) for Haali Media Splitter so below describes a full install.
- I was unable to figure out how to register only the required library(s) for Nero so below describes a full install. I tried what is described in the following thread but I kept getting errors trying to regsvr32 the libraries so I gave up: http://forum.doom9.org/showthread.php?p=1396997#post1396997
- I was unable to figure out how to register only the required library(s) for SurCode DTS Encoder so below describes a full install.

If someone wants to help make this better and has information on how I can accomplish any of the shortfalls listed above, I am interested.


Setting Up eac3to on Windows 7 x64:

1) Download the latest eac3to from here: http://madshi.net/eac3to.zip

The link is also in the first post at the beginning of this thread.

2) Copy the eac3to directory to "C:\Program Files (x86)\"

3) Copy the necessary ArcSoft DLLs into the eac3to directory.

If you need these dlls, checkactivate.dll comes from ArcSoft TotalMedia Theater 2.x. The rest of the files come from ArcSoft TotalMedia Theater 6.x. Install ArcSoft TotalMedia Theater 6.x and harvest the DLLs from here:

C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\MagCore.dll
C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\MagPCMac.dll
C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\MagUIEngine.dll
C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\MagUIInter.dll
C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\Codec\ASAudioHD.ax
C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\Codec\DtsDec.dll
C:\Program Files (x86)\ArcSoft\TotalMedia Theatre 6\Codec\dtsdecoderdll.dll

Place the DLLs in the eac3to directory. Uninstall ArcSoft once you have the DLLs.

4) Run the following in the Command Prompt AS ADMINISTRATOR:

regsvr32.exe "C:\Program Files (x86)\eac3to\ASAudioHD.ax"

5) Copy neroAacEnc.exe into the eac3to directory.

If you need to get this, download free from: http://www.nero.com/eng/company/about-nero/nero-aac-codec.php. After unzipping, harvest the .exe from: \NeroAACCodec-1.5.1.zip\win32\neroAacEnc.exe

6) Install Haali Media Splitter. It can be downloaded free from: https://haali.su/mkv/

7) Install Surcode DVD Pro DTS Encoder v1.0.29

8) Install Nero 7.11.10.0 Micro/Lite

Go to Start->All Programs->Nero->Setup->Nero ProductSetup.

On the Left hand side click the Key icon which says License and enter the appropriate HD Audio serial numbers.

Snowknight26
1st February 2016, 19:51
Just because eac3to tells you that a component is missing doesn't mean it's required. The ArcSoft DTS decoder, for example, is essentially unneeded.

BigPines
1st February 2016, 23:09
Just because eac3to tells you that a component is missing doesn't mean it's required. The ArcSoft DTS decoder, for example, is essentially unneeded.

Unless you run into low bitrate or extension for secondary audio DTS streams. Why not configure it just in case?

Snowknight26
2nd February 2016, 00:21
Because the chances of that happening and you needing to convert it are so low that you'll spend more time getting eac3to to recognize every other program than necessary, but to each their own I guess.

BigPines
2nd February 2016, 02:36
Yes, for me it was worth it to deal with it once and never have to think about it again...hopefully anyway. ;)

Music Fan
2nd February 2016, 17:23
6) Install Haali Media Splitter
What is its utility with eac3to ? I never installed Haali Media Splitter.

BigPines
2nd February 2016, 17:45
Music Fan, it is for muxing into mkv container. Haali Media Splitter replaces the older Haali Matroska Muxer.

I am now running into a new problem I hadn't noticed before on my prior install. When converting a DTS-MA track to mono wavs, I get the following warning from libDcaDec: "XLL output not lossless". I found this post that seems to be related: http://sasshkas.blogspot.com/2015/11/dts-decoder-why-xll-streams-are-not.html

Are we sure libDcaDec is just as accurate as ArcSoft?

Thunderbolt8
2nd February 2016, 19:10
Music Fan, it is for muxing into mkv container. Haali Media Splitter replaces the older Haali Matroska Muxer.

I am now running into a new problem I hadn't noticed before on my prior install. When converting a DTS-MA track to mono wavs, I get the following warning from libDcaDec: "XLL output not lossless". I found this post that seems to be related: http://sasshkas.blogspot.com/2015/11/dts-decoder-why-xll-streams-are-not.html

Are we sure libDcaDec is just as accurate as ArcSoft?maybe its related to this: https://github.com/foo86/dcadec/commit/4efd86974e4054aea69f09ec651a96efff05309e

perhaps not so much the reason why you get the message, but more so that it shouldnt matter regarding the quality of the track.

nevcairiel
2nd February 2016, 19:16
I am now running into a new problem I hadn't noticed before on my prior install. When converting a DTS-MA track to mono wavs, I get the following warning from libDcaDec: "XLL output not lossless". I found this post that seems to be related: http://sasshkas.blogspot.com/2015/11/dts-decoder-why-xll-streams-are-not.html


The message is normal, some streams just can't be decoded losslessly because they were mastered badly. The result is identical to other DTS decoders.

The post you found talks about something else entirely.


Are we sure libDcaDec is just as accurate as ArcSoft?

Yes.

BigPines
2nd February 2016, 20:24
Thanks. The message is a bit disconcerting. I wish I understood exactly what is happening but for now, I guess I'll just ignore it.

Now, every DTS-MA track I convert gives me this "XLL output not lossless" message. Does everyone else get this message every time too?

Nico8583
5th February 2016, 13:24
Is there a way to apply DRC with eac3to ? I've seen this option on BD Rebuilder but I know it doesn't use eac3to and I would like to test this feature without rebuild a Blu ray.
Thank you !

tebasuna51
5th February 2016, 19:07
Is there a way to apply DRC with eac3to?
Nope.

Apply DRC is intended to be used at play time, not at recode time.

If you want use the DRC included in AC3 streams when recode you can use BeHappy or the old BeSweet.

If you want apply something like DRC over any audio stream you can use Sox compand.

Nico8583
5th February 2016, 20:04
Nope.

Apply DRC is intended to be used at play time, not at recode time.

If you want use the DRC included in AC3 streams when recode you can use BeHappy or the old BeSweet.

If you want apply something like DRC over any audio stream you can use Sox compand.
Thank you, I would like to apply DRC when converting DTS to AC3 (or AC3 to AC3 if necessary to apply DRC) so I think I should go to BeHappy thread ? ;)

tebasuna51
5th February 2016, 21:50
I would like to apply DRC when converting DTS to AC3
DRC info in DTS is optional, and most the times don't exist.
Then you can obtain the same output decoding with or without apply DRC.

(or AC3 to AC3 if necessary to apply DRC)
Like I say you the DRC must be applied at play time.

Recode to AC3 don't have sense for me.

I can recommend only when you want downmix to stereo.
Then you can use BeHappy:
1) Load your AC3 source
2) Select NicAc3Source and Configure to "Down2, DRC"
3) Apply Normalize (100%)
4) Encode to AAC

EDIT: for more info use BeHappy thread