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

madshi
21st August 2014, 10:53
The point foxyshadis is making is that the higher the source quality is the easier it is for the lossy encoder to produce a (reasonably) good quality encode with a (relatively) low bitrate. The situation is very different when comparing lossy and lossless encoders: With lossy encoders it's a good idea to feed the encoder the best quality you have. With lossless encoders it's the opposite situation: There higher bitdepths cost additional bitrate. The reason for that is the lossless encoders are not allowed to throw any data away. They have to keep every bit, even noise. And higher bitdepth signals have somewhat random values in the very lowest bits, which are hard to perfectly remember. A lossy encoder can simply throw those away, or encode a signal which only mostly resembles the original. A lossless encoder is not allowed to do such things.

Summary: Feeding a higher quality source into the encoder always improves the overall audio quality, for both lossy and lossless encoders. However, for lossy encoders a higher quality source actually improves the compression efficiency. For lossless encoders a higher quality sources increases the file size instead.

foxyshadis
21st August 2014, 22:05
Whoops, I should have labeled them; the first is 16-bit and the second 8-bit. Real-life noise is more complicated, and obviously float vs 24 vs 16 is much smaller than 16 vs 8, but this was mostly to make the differences visible. Lower bit-depth always leads to spectral leakage. Of course spectral noise (and regular noise) from lossy compression is even worse, but you may as well not compound the problem when transcoding if given the chance.

mville
24th August 2014, 12:11
I've written a vb class to run the eac3to.exe.

In this class I have redirected the error output, but what I get is a truncated string of the full error.

Is there any error documentation/examples available to help me troubleshoot the problem?

LigH
25th August 2014, 10:21
As far as I remember, eac3to has a strange technique of formatting the text output, using many backspace chars instead of a carriage return. Have a look at the output redirected to a text file in a CLI window, using a hex editor or text viewer supporting non-printable characters.

NikosD
25th August 2014, 13:56
Is there a way to avoid the automatic "Patching bitdepth to 24 bits..." procedure when I use the -core option extracting DTS core from DTS-HD ?

Because sometimes DTS-HD is 16bits and I see this phrase during processing.

Does this conversion lead to better, worse or equal results compared to leaving 16bit in DTS-HD stream ?

Thanks!

nevcairiel
25th August 2014, 15:46
The core is lossy audio, it has no bitdepth, even if the lossless DTS-HD was 16-bit.
Lossy audio should be decoded to an as high bitdepth as the decoder will give you, and thats with ffmpeg 32-bit floating point, or with the ArcSoft decoder 24-bit integer.

NikosD
25th August 2014, 18:41
But I don't have ArcSoft DTS-HD decoder installed or any other DTS-HD decoder.

Also, I think that the -core process doesn't involve any decoding of DTS-HD stream.

It just extracts the DTS core from DTS-HD without decoding.

mville
25th August 2014, 22:45
As far as I remember, eac3to has a strange technique of formatting the text output, using many backspace chars instead of a carriage return.

Is there any documentation for eac3to and error handling?

foxyshadis
26th August 2014, 02:23
But I don't have ArcSoft DTS-HD decoder installed or any other DTS-HD decoder.

Also, I think that the -core process doesn't involve any decoding of DTS-HD stream.

It just extracts the DTS core from DTS-HD without decoding.

If you're going to throw away the HD correction, let the core be 24-bit. It's only labeled 16-bit because the lossless correction is 16-bit, it'll sound fine at 24-bit.

NikosD
26th August 2014, 05:04
OK.

Let me rephrase my question.

Is the app really doing something during "Patching bitdepth to 24bits..." process ?

If not, why the message ?

If yes, what's the meaning of bitdepth in a lossy (DTS) format and what is technically doing ?

Thanks!

tebasuna51
26th August 2014, 09:01
...
Is the app really doing something during "Patching bitdepth to 24bits..." process ?

Yes, change the fields "Source PCM Resolution" in the DTS frames header from 16 to 24 to remember the users decode to this bitdepth at least.

If yes, what's the meaning of bitdepth in a lossy (DTS) format and what is technically doing ?

Nothing.

NikosD
26th August 2014, 09:20
Thanks!

rhaz
26th August 2014, 10:29
Hello. Anyone can explain what does this message mean "[dca @ 002f71a0] Number of channels changed in DCA decoder (6 -> 2)" I tried converting the .dts to .wavs or any other format and I always get this message before decoding starts, after its finished, I get a shrinked file. Original file is 1h 20 minutes long, a resulting file ends up in 26 minutes long only. Now it doesn't cut off or anything, it shrinks that 1h20min to 26 minutes long file and when you play it its impossible to understand anything, its all mashed up together or something.

I've been using eac3to cmd line for converting formats and I never had this problem before. Anyone knows how do I successfully convert this particular .dts? I'm sure it has to do something with that DCA decoder message, I've never seen one before. Cheers.

LigH
26th August 2014, 13:26
I don't know for certain, but it looks like you got a mix of 5.1 and 2.0 in your audio stream. I wonder if you possibly tried to convert audio streams extracted from VOBs as they are authored on DVD (file mode), not of an extracted linear PGC (IFO mode).

rhaz
26th August 2014, 13:30
It's from BluRay. I've done this million times. I'm doing it right now. And it all works, except this one, I'm stuck with it. What's wrong with this DTS! Arrgh...

filler56789
26th August 2014, 13:53
Need MORE info :logfile:

nevcairiel
26th August 2014, 14:22
Sounds like it doesn't realize that the format changed, and writes the 2 channel content as 6 channel. It would sound horrible and end up shorter (a third).
If you can, cut off a small piece of the start, until the message goes away.

Music Fan
26th August 2014, 16:49
Yes, change the fields "Source PCM Resolution" in the DTS frames header from 16 to 24 to remember the users decode to this bitdepth at least.
Does it really change anything for decoding ? Because I believe most of decoders work in 24 bit for a while and even for 16 bit pcm sources, DAC often make an "upscale" in 24 bit.

And I guess you mean that some DAC do not work in floating point and thus need to know (with the dts header) how to decode the dts (in 16 or 24 bit).

tebasuna51
27th August 2014, 01:48
Does it really change anything for decoding ? Because I believe most of decoders work in 24 bit for a while and even for 16 bit pcm sources, DAC often make an "upscale" in 24 bit.

And I guess you mean that some DAC do not work in floating point and thus need to know (with the dts header) how to decode the dts (in 16 or 24 bit).
This was explained already.
Don't change anything in the decode and the decoders don't need know the bitdepth of source PCM.

NikosD
28th August 2014, 09:26
After using Haali installer for eac3to, I had problems with the Haali splitter which I managed to disable.

I have two questions though:

1) Is there a way to install just the Haali matroska muxer without the rest of the installer ?

Is there a separate installer/ option to do that ?


2) Is there something special in this specific matroska muxer that makes it mandatory for eac3to ?

The full installation is problematic due to Haali splitter.

Thanks!

tebasuna51
28th August 2014, 09:37
Without Haali matroska muxer you can extract video only like elementary streams: .h264, .vc1 or .m2v

NikosD
28th August 2014, 09:40
OK, but it could be done by any matroska muxer, not Haali explicitly.

filler56789
28th August 2014, 10:55
After using Haali installer for eac3to, I had problems with the Haali splitter which I managed to disable.

I have two questions though:

1) Is there a way to install just the Haali matroska muxer without the rest of the installer ?

Unfortunately, Haali's Matroska Muxer is "inside" the files splitter.ax and mkx.dll. And sadly JEEB either is too busy or doesn't have permission to fix the design flaws of the Haali "bundle" :(

Overdrive80
29th August 2014, 15:42
OK, but it could be done by any matroska muxer, not Haali explicitly.

I install CCCP codecs, and after install this keys:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Haali]

[HKEY_CURRENT_USER\Software\Haali\Matroska Splitter]
"input.fonts"=dword:00000001
"input.linking"=dword:00000001
"ui.trayicon"=dword:00000001

[HKEY_CURRENT_USER\Software\Haali\Video Renderer]
"BT.709"=dword:00000002

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\HaaliMkx]
"StartMenuFolder"="Haali Media Splitter"
"rmp4"="1"
"rOGM"="1"
"rts"="1"
"rm2ts"="1"
"rEXT"="1"
"rFT"="1"
"rWMP"="1"
"Install_Dir"="C:\\Program Files (x86)\\Haali\\MatroskaSplitter"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\HaaliMkx\Input]
"avi.1"="ffffffff00000000ffffffff,524946460000000041564920,{51A00247-40A8-4845-9F17-7DBFCC9A8783}"
"mp4.1"="00000000ffffffff,0000000066747970,{B3DE7EDC-0CD4-4d07-B1C5-92219CD475CC}"
"mp4.2"="00000000ffffffff,000000006d6f6f76,{B3DE7EDC-0CD4-4d07-B1C5-92219CD475CC}"
"mp4.3"="00000000ffffffff,000000006d646174,{B3DE7EDC-0CD4-4d07-B1C5-92219CD475CC}"
"ogm.1"="ffffffff,4f676753,{DB43B405-43AA-4f01-82D8-D84D47E6019C}"
"ts.1"="ff,47,{B841F346-4835-4de8-AA5E-2E7CD2D4C435}"


[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\HaaliMkx]
"DisplayName"="Haali Media Splitter"
"UninstallString"="\"C:\\Program Files (x86)\\Haali\\MatroskaSplitter\\uninstall.exe\""
"NoModify"=dword:00000001
"NoRepair"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\HaaliMkx]
"rmp4"="1"
"rOGM"="1"
"rts"="1"
"rm2ts"="1"
"WMP"="1"
"rEXT"="1"
"rFT"="1"

[HKEY_LOCAL_MACHINE\SOFTWARE\HaaliMkx\Input]
"avi.1"="ffffffff00000000ffffffff,524946460000000041564920,{51A00247-40A8-4845-9F17-7DBFCC9A8783}"
"mp4.1"="00000000ffffffff,0000000066747970,{B3DE7EDC-0CD4-4d07-B1C5-92219CD475CC}"
"mp4.2"="00000000ffffffff,000000006d6f6f76,{B3DE7EDC-0CD4-4d07-B1C5-92219CD475CC}"
"mp4.3"="00000000ffffffff,000000006d646174,{B3DE7EDC-0CD4-4d07-B1C5-92219CD475CC}"
"ogm.1"="ffffffff,4f676753,{DB43B405-43AA-4f01-82D8-D84D47E6019C}"
"ts.1"="ff,47,{B841F346-4835-4de8-AA5E-2E7CD2D4C435}"

tebasuna51
7th September 2014, 19:28
Last 9 post in this thread moved to http://forum.doom9.org/showthread.php?t=171150
Reason: off topic

asarian
9th September 2014, 04:35
I have this command:

C:\eac3to>eac3to audio.ac3 output1.wav -edit=0:47:10.200,3200ms -silence
MP2, 2.0 channels, 1:34:19, 224kbps, 44.1kHz
Decoding with libav/ffmpeg...
Editing RAW/PCM...
Reducing depth from 64 to 24 bits...
Writing WAV...
Creating file "output1.wav"...
Clipping detected, a 2nd pass will be necessary.
This track is not clean.
The last MPx frame is incomplete and thus gets skipped.
Starting 2nd pass...
Decoding with libav/ffmpeg...
Editing RAW/PCM...
Reducing depth from 64 to 24 bits...
Writing WAV...
Applying -31.9dB gain...
Creating file "output1.wav"...

I was hoping it would *overwrite* 3200ms of silence at 0:47:10.200. Instead, it just inserts 3200ms! How can I do the former?

Secondly, due to small glitch in the stream (the one I'm trying to blank out), eac30 decides to apply a -31.9dB gain on the file, making it as good as mute. How can I prevent that?

Thx.

Music Fan
9th September 2014, 09:04
Try without -silence.

tebasuna51
9th September 2014, 11:07
...
Clipping detected, a 2nd pass will be necessary.
This track is not clean.
...
Starting 2nd pass...
...
Applying -31.9dB gain...
You need two pass:

eac3to audio.ac3 output1.wav -edit=0:47:10.200,-3200ms -no2ndpass

then the -31.9dB gain is not applied and the glitch is deleted.

eac3to output1.wav output2.wav -edit=0:47:10.200,3200ms -silence

now insert the silence at same point.

asarian
9th September 2014, 11:26
You need two pass:

eac3to audio.ac3 output1.wav -edit=0:47:10.200,-3200ms -no2ndpass

then the -31.9dB gain is not applied and the glitch is deleted.

eac3to output1.wav output2.wav -edit=0:47:10.200,3200ms -silence

now insert the silence at same point.

Thank you very much! The -no2ndpass option isn't listed in the Options somehow, but it works nonetheless! :)

asarian
12th September 2014, 19:14
I use Eac3to with nero without installing nero.
Eac3to only needs a couple files and registry settings
Nero Files:
- AdvrCntr2.dll
- NeAudio2.ax
- NeEacDec.dll

Copy these files in a folder of your choice. I have copied them to my eac3to folder.
Use the following command lines to register the dll's.
regsvr32.exe C:\tools\eac3to\Nero\NeAudio2.ax
regsvr32.exe C:\tools\eac3to\Nero\AdvrCntr2.dll

The following registry keys have to be added to the registry to register the nero plugin.

[HKEY_LOCAL_MACHINE\SOFTWARE\Ahead\Installation\Families\Nero 7\Info]
etc.

[HKEY_LOCAL_MACHINE\SOFTWARE\Ahead\Installation\Families\Plugins\Info]
etc.

That all you need to use the nero plugin with eac3to


The above info seems hopelessly outdated (naturally so, of course). For one, Wimdows 7, 64-bit installs in:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Ahead]

Copying the pertinent registry info from my Vmware box (only box I still have a Nero 7 running), I can't get the DLL's I copied over to work, though. However many ways I try, I keep getting errors about "the DllRegister Server entry point was not found."

Surely, isn't time eac3to found a better way to deal with aac files? (Yes, I still have some old movies that need it).

asarian
12th September 2014, 22:06
^^ Seriously, no one uses eac3to any more? :p There's gotta be someone who's gone the 'Nero 7' route on Windows 7 before me.

Sparktank
12th September 2014, 22:32
^^ Seriously, no one uses eac3to any more?

You literally let zero time pass before anoyne who's done with their busy lives have a look.

I don't use eac3to for AAC. Not for encoding, nor for decoding.

For AAC encoding, I pipe eac3to to qaac.
For AAC decoding, I've never had a use for it so maybe someone else will chime in for AAC decoding.

asarian
13th September 2014, 00:18
It gets stranger by the minute. Now, on my Vware box with Nero 7.10 Premium installed, the eac3to I just installed there as well says Nero isn't installed either. :( Sigh.

asarian
13th September 2014, 00:59
You literally let zero time pass before anoyne who's done with their busy lives have a look.

I don't use eac3to for AAC. Not for encoding, nor for decoding.

For AAC encoding, I pipe eac3to to qaac.
For AAC decoding, I've never had a use for it so maybe someone else will chime in for AAC decoding.

Well, it's solved, kinda. I just gave up going the eac3to route with it, and used a free tool called 'faad' to decode it.

filler56789
13th September 2014, 01:41
Well, it's solved, kinda. I just gave up going the eac3to route with it, and used a free tool called 'faad' to decode it.

You'd better choose ffmpeg, or qaac, or even foobar2000 :p ,
because

http://forum.doom9.org/showthread.php?p=1563950#post1563950

asarian
13th September 2014, 02:36
You'd better choose ffmpeg, or qaac, or even foobar2000 :p ,
because

http://forum.doom9.org/showthread.php?p=1563950#post1563950

Well, that's pretty frelled. :) No wonder I noticed a very minor off-sync issue. Thanks for bringing it to my attention!

If I did the math right, seems I got myself an exra (1/44100)*2624*1000 = 59.5011ms extra delay.

The people who came up with this silly delay should be taken into the yard and be shot! :p


EDIT: Yup, I subtracted the calculated surplus delay, and now it syncs perfectly again. :)

tebasuna51
13th September 2014, 02:48
Faad work fine decoding .aac files (ADTS headers), maybe VFR maniac was talking about .m4a files (AAC in mp4 container)

Recent test:
z.wav file encoded to z.aac with qaac
Decoded with faad to za.wav (delayed 26 ms)
Decoded with foobar to zb.wav (delayed 44 ms)
Decoded with ffmpg to zc.wav (delayed 44 ms)

I can't decode with qaac (I don't know if the sintax is correct):

qaac -D -o zd.wav z.aac
qaac 2.42, CoreAudioToolbox 7.9.8.3
ERROR: Not available input file format

asarian
13th September 2014, 03:01
Faad work fine decoding .aac files (ADTS headers), maybe VFR maniac was talking about .m4a files (AAC in mp4 container)

Recent test:
z.wav file encoded to z.aac with qaac
Decoded with faad to za.wav (delayed 26 ms)
Decoded with foobar to zb.wav (delayed 44 ms)
Decoded with ffmpg to zc.wav (delayed 44 ms)


Hmm, now I'm confused again. :confused: Yes, it was an .aac file (demuxed from a m4v with DGIndexNV). The new delay adjustment seems to work perfectly, though.

Sparktank
13th September 2014, 04:43
I can't decode with qaac (I don't know if the sintax is correct):

qaac -D -o zd.wav z.aac
qaac 2.42, CoreAudioToolbox 7.9.8.3
ERROR: Not available input file format

Syntax is correct.
I used same switches and was able to decode AAC and M4A.

Did not see any info on delay though, with/without --no-delay switch.

DoctorM
13th September 2014, 05:35
The above info seems hopelessly outdated (naturally so, of course). For one, Wimdows 7, 64-bit installs in:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Ahead]

Copying the pertinent registry info from my Vmware box (only box I still have a Nero 7 running), I can't get the DLL's I copied over to work, though. However many ways I try, I keep getting errors about "the DllRegister Server entry point was not found."

Surely, isn't time eac3to found a better way to deal with aac files? (Yes, I still have some old movies that need it).

I've gotten Nero 7 to work just fine on Win7 x64. If you still want more info, PM me. But reading the other follow-ups I'm considering giving up on it too.

asarian
13th September 2014, 05:48
Syntax is correct.
I used same switches and was able to decode AAC and M4A.

Did not see any info on delay though, with/without --no-delay switch.

Looks like I may need to take a look at qaac too. Having to calculate the delay each time will get tiresome pretty fast, I reckon.

asarian
13th September 2014, 18:53
Quick question. On -down6, with a 7.1 track, shouldn't eac3to downmix using 24-bit when the original track is only 16-bit? I remember eac3to always used 'one-step-up', bit-width wise, on reencoding? (So as to compensate a bit for the resampling).

tebasuna51
14th September 2014, 00:21
The downmix is a lossy transform than use math operations (in float format), then the bitdepth is not preserved.

foxyshadis
19th September 2014, 00:38
The above info seems hopelessly outdated (naturally so, of course). For one, Wimdows 7, 64-bit installs in:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Ahead]

Copying the pertinent registry info from my Vmware box (only box I still have a Nero 7 running), I can't get the DLL's I copied over to work, though. However many ways I try, I keep getting errors about "the DllRegister Server entry point was not found."

Surely, isn't time eac3to found a better way to deal with aac files? (Yes, I still have some old movies that need it).

You have to also use the 32-bit regsvr32, in C:\Windows\SysWOW64. In a cmd window, cd to that folder and then try registering. (Or use the full path for regsvr32.) I agree it's kind of outdated to rely on specific filters, though.

Snowknight26
19th September 2014, 14:07
eac3to can't parse TrueHD tracks with the Dolby Atmos extension:

http://stfcc.org/misc/dolby_atmos_truehd_sample.m2ts

Dolby has extended the Dolby TrueHD format, used in Blu-ray discs, to allow the format to
carry Dolby Atmos content. Before Dolby Atmos, Dolby TrueHD included lossless support for
channel-based audio, such as 5.1 and 7.1. We have added a fourth substream for Dolby
Atmos sound. This substream represents a losslessly encoded fully object-based mix.
Dolby Atmos in Dolby TrueHD can be transmitted from a Blu-ray player to your AVR in the
same way it is accomplished today. If your AVR supports Dolby Atmos, when the Dolby
TrueHD signal is decoded, the object-based audio and object audio metadata will be
decoded for further processing.
Dolby Atmos audio can be encoded with Dolby TrueHD at multiple sampling rates (including
48 and 96 kHz) and bit depths (16- and 24-bit). Dolby Atmos enabled receivers will also
support legacy Dolby TrueHD bitstreams at multiple sampling rates (including 48, 96, and
192 kHz) and bit depths (16-, 20-, and 24-bit) to provide full backward compatibility with
legacy Blu-ray Disc media and Dolby TrueHD music files.

nevcairiel
19th September 2014, 16:16
Anything based on ffmpeg/libav will not be able to read or parse TrueHD-Atmos streams, as they modified the syntax apparently.

foxyshadis
19th September 2014, 17:33
Looks like there wasn't a bug report for it yet, so I made one and uploaded your sample to their FTP. Not too important yet, since Transformers won't even be out until the 30th.

gillie
20th September 2014, 00:11
eac3to can't parse TrueHD tracks with the Dolby Atmos extension:

http://stfcc.org/misc/dolby_atmos_truehd_sample.m2ts

Just tried to use eac3to to convert TrueHD to DTS on the new Transformers Age of Extinction Bluray and it will not work at all.
Guessing this will become more of an issue as more and more Blurays are released with the new Dolby Atmos extensions embedded in the TrueHD tracks.
Unless anyone has any ideas on how to sort this?

nevcairiel
20th September 2014, 00:28
Unless someone fixes the TrueHD decoder in ffmpeg/libav, AND you get a new eac3to version which uses the fixed decoder, there is nothing anyone can do.

asarian
20th September 2014, 05:10
Just tried to use eac3to to convert TrueHD to DTS on the new Transformers Age of Extinction Bluray and it will not work at all.
Guessing this will become more of an issue as more and more Blurays are released with the new Dolby Atmos extensions embedded in the TrueHD tracks.
Unless anyone has any ideas on how to sort this?

Yeah, this is no good. Just downloaded and tried the sample myself, and it's a no-go.

So, does this mean my Marantz HD Amp won't be able to even play this? (not at home right now to try). If so, I will be real upset. And, if so, all the more reason for eac3to to find a way to decode it, after all, so I can convert it to LPCM.