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
22nd December 2018, 04:16
1) ArcSoft is a decoder, not a encoder. And is not necesary anymore because the free libdcadec.dll can do the decode of DTS-MA.

2) Surcode is a DTS encoder than can run with eac3to but can't produce DTS-MA, only standard DTS 768 or 1536 Kb/s. Forget it to recode FLAC.

3) If you want DTS-MA you need DTS-HD Master Suite and you only need eac3to to decode the FLAC's to monowav's:

eac3to input.flac output.wavs

Or in UsEac3to selecting 'wavs' in Output format
After that you can use DTS-HD Master Suite with the monowavs input:

Stream type DTS-HD Master Audio
Channel Layout: from 1.0 to 7.1

Masutin
31st December 2018, 01:24
Can I add something to "stdout.wav | LAME" to make it show progress? Otherwise any option of LAME for verbosity is ignored and no progress shows. E.g. with QAAC it shows fine.

asarian
18th January 2019, 17:09
Ran into this problem: HEVC multi-part demuxing? (https://forum.doom9.org/showthread.php?t=176040) Any chance HEVC demuxing will become a reality with eac3to?

Thanks.

Atak_Snajpera
18th January 2019, 17:46
Can you just join them with simple
copy /b 800.m2ts+801.m2ts+802.m2ts+803.m2ts+804.m2ts combined.m2ts

asarian
18th January 2019, 20:02
Can you just join them with simple
copy /b 800.m2ts+801.m2ts+802.m2ts+803.m2ts+804.m2ts combined.m2ts

Never mind my stupidity. :o Turns out you CAN demux the HEVC stream, just not to .mkv yet.

JimmyBarnes
7th February 2019, 06:33
Yes, is a workaround that works fine, unfortunately you lose the 7.1 data.

Your workaround was to add -core to -demux when demuxing E-AC3 streams which caused eac3to to abort extraction due to "Applying (E-)AC3 delay failed" error.

The audio streams I wanted were not the problem E-AC3 ones, so I extracted just that stream => X.thd+ac3.

Then I ran eac3to [path] 1) -demux -core and let it extract all the streams. The X.thd+ac3 produced was binary identical to the one above.

As you suggested, I would have imagined using -core would lose something, but it doesn't seem to have here, do you have any explanation?

tebasuna51
7th February 2019, 11:07
...As you suggested, I would have imagined using -core would lose something, but it doesn't seem to have here, do you have any explanation?

The -core eac3to parameter is intended to extract the core part (limited to 5.1) of a single audio track, before only with DTS-HD but now also EAC3 7.1.

A thd+ac3 is not a single audio track but 2 independent tracks interleaved.
To extract each track you can use:

eac3to X.thd+ac3 X.thd X.ac3

The -core parameter is ignored here.

Masutin
10th February 2019, 02:45
Can I remap a 4.1 audio to bring the second voice channel up front when playing in stereo? Software players can mix voice to both channels but my TV can't.

tebasuna51
10th February 2019, 03:40
Remap? Maybe you need downmix.

Try -downstereo

Put the log to know the input layer and formats.

Masutin
12th February 2019, 01:40
Correction: the audio is 3.1 - Front & Side L R. I decoded part of it and found the L voice channel (must be channel 0) silent. I did come across a 2.0 mix of this audio, it had voice in one channel. Downmixing as it is probably won't do. How do I go about mixing or remapping this? Other than decoding to WAVs and replacing the silent channel. Mono? I didn't keep the log and the source AC3 but if you think it can help I'll get it.

tebasuna51
12th February 2019, 10:48
3.1 with FL channel silent?
Is strange, without a sample I don't know the problem.

BTW eac3to have a way to remap channels, for instance:

eac3to input output -1,2,0,3

that send the input FL channel (0) to FC channel (3) in output

zveroboy
12th February 2019, 12:07
madshi

If I use VLC 228 or lower, then there are no errors in the recorded files.
But if I use VLC 306 or higher, then there are a lot of errors in the recorded files ([v01] Video overlaps for 7 frames at playtime 0:01:30. <WARNING>).

Could you explain the nature of these errors?
Are these realy errors in the records or is this an incorrect work of the eac3to?

Here are two videos recorded in 228 and 306

228 https://yadi.sk/i/TATk2aBmExgHcw

306 https://yadi.sk/i/ELXZ03Jk3hU-vQ

Masutin
16th February 2019, 22:32
Tebasuna, gracias! Do I need anything more to successfully apply -1,2,0,3? I get "Command line parameter "1,2,0,3" is unknown."

tebasuna51
17th February 2019, 12:48
@Masutin

Sorry, seems the remap parameter need at least 6 channel even if source have only 4:

eac3to input output -1,2,0,3,4,5

tested over a 3.1 input.

Masutin
23rd February 2019, 17:08
Hola, Tebasuna! If I can trouble you again. I did what I should have and decoded the original 3.1 into C L R BC. C (ch. 2?) is the only voice channel. To get voice in both fronts, can you suggest how to mix or remap this? Sorry for misleading, the wrong details were from the encode.

tebasuna51
23rd February 2019, 20:15
If you decode a source like:
eac3to v3.34
command line: eac3to 4a310.ac3 4a310.ac3_.wavs
----------------------------------------------
AC3, 3/1 channels, 0:00:20, 224kbps, 48kHz
Decoding with libav/ffmpeg...
Reducing depth from 64 to 24 bits...
Writing WAVs...
Creating file "D:\tmp\4a310.ac3_.L.wav"...
Creating file "D:\tmp\4a310.ac3_.R.wav"...
Creating file "D:\tmp\4a310.ac3_.C.wav"...
Creating file "D:\tmp\4a310.ac3_.BC.wav"...
eac3to processing took 1 second.
Done.

and the ..._.C.wav is the only voice channel I recommend you use:

eac3to input output.ac3 -downStereo -normalize

Or other output format (AAC recommended for stereo)

wonkey_monkey
23rd February 2019, 20:32
A warning, as people still seem to be posting directly to threads and may not be aware:

It appears that the forum may have been hacked. There is a suspicious "test" announcement, apparently from tebasuna51 (but probably not), parts of the forum are not working, and there appear to be some malicious javascript files.

I'm not speaking in any official capacity here, but I would recommend, at the very least, NOT entering your password anywhere on Doom9 for the time being.

Please refer to this post: https://forum.doom9.org/showthread.php?goto=newpost&t=176128

tebasuna51, as you seem to have posted recently to this thread in particular, can you enlighten us?

asarian
2nd March 2019, 11:23
Just a quick question. :) When extracting DTS-MA audio from an m2ts stream, giving a file a .dts extension will yield the same result as putting .dtshd, right? Whereas '.dts -core' would just get the old DTS core.

The 2 resultant streams look the same to me in tsMuxer (but you never know).

tebasuna51
2nd March 2019, 15:47
Yes, a .dts can be a standard CBR DTS or a VBR DTS-HD (MasterAudio or HighResolution).

Masutin
2nd March 2019, 15:55
Tebasuna, thanks again! Converting 3.1 (voice channel C) to 2.0 works! Voice in both channels! One last question on this. When recoding as 3.1, can there be a way to make QAAC preserve the order as L C R BC? A few remapping sequences I've tried produce only FL FR SL SR. Probably remapping won't help here.

asarian
2nd March 2019, 17:24
Yes, a .dts can be a standard CBR DTS or a VBR DTS-HD (MasterAudio or HighResolution).

Thanks! :) (Just wanted to make sure it wasn't some header tricking me or something)

P.S. Glad to see you post again! Puts the matter of your allegedly compromised account at rest (see above).

tebasuna51
2nd March 2019, 22:54
Tebasuna, thanks again! Converting 3.1 (voice channel C) to 2.0 works! Voice in both channels! One last question on this. When recoding as 3.1, can there be a way to make QAAC preserve the order as L C R BC? A few remapping sequences I've tried produce only FL FR SL SR. Probably remapping won't help here.

You dont need remap, all must be automatic.
A 3.1 with WAV order FL,FR,FC,BC can be converted to AAC with qaac to:

LC 48000Hz 4.0 (C L R Cs) -- 128,144,160,192,224,256,288,320,384,448,512,576,640 (bitrates)

qaac -v 128 --adts -o outLC128.aac inFL_FR_FC_BC.wav
work fine

but not to HE than only support:

HE 48000Hz 4.0 (L R Ls Rs) -- 64,80,96,112,128,160

qaac -v 128 --he --adts -o outHE128.aac inFL_FR_FC_BC.wav
ERROR: Channel layout not supported

Run: qaac --formats

to know the formats allowed

asarian
5th March 2019, 12:26
Hmm, eac3to marks a video at 1080i50. That's not true interlaced, right? (So, no need to give it 'InputType=0' in QTGMC, right?) And when I export it to .mkv, it just says 25fps.

nevcairiel
5th March 2019, 12:56
Why would that not be true interlaced? Its used all over europe in interlaced broadcasts.

asarian
5th March 2019, 13:07
Why would that not be true interlaced? Its used all over europe in interlaced broadcasts.

Because there are different kinds of 1080i (https://en.wikipedia.org/wiki/1080i). Pay particular attention to this sentence: "However, when 1080p material is captured at 25 or 30 frames/second, it is converted to 1080i at 50 or 60 fields/second, respectively, for processing or broadcasting." The blu-ray I am talking about appears to be 'pseudo-interlaced' like that (aka, no different top- and bottom field).

And since eac3to also just exports it to a 25fps stream, I am strengthened in my belief it's just 'fake' interlaced.

nevcairiel
5th March 2019, 13:10
50 fields interlaced makes 25 frames per second, thats how all PAL interlaced streams look. There is no real way to know without visual inspection of the footage. 1080i50 could be interlaced, or it could be fake-interlaced. The number alone tells you nothing.
Also, you gave no context that its even from a Blu-ray. But even then, those can also contain true interlaced streams.

sneaker_ger
5th March 2019, 13:10
Because there are different kinds of 1080i (https://en.wikipedia.org/wiki/1080i). Pay particular attention to this sentence: "However, when 1080p material is captured at 25 or 30 frames/second, it is converted to 1080i at 50 or 60 fields/second, respectively, for processing or broadcasting." The blu-ray I am talking about appears to be 'pseudo-interlaced' like that (aka, no different top- and bottom field).

And since eac3to also just exports it to a 25fps stream, I am strengthened in my belief it's just 'fake' interlaced.
How would we know when you don't provide any sample.

Also I'm not sure what you expect from running QTGMC "without 'InputType=0'" (which is the same as running it with that parameter as that's the default value) on progressive content.

asarian
5th March 2019, 13:18
Well, here's a sample (https://1drv.ms/u/s!AhSxhQ9g_mrMlgupngrxwSkSBV2n) :)

asarian
5th March 2019, 13:20
How would we know when you don't provide any sample.

Also I'm not sure what you expect from running QTGMC "without 'InputType=0'" (which is the same as running it with that parameter as that's the default value) on progressive content.

For every progressive material, I normally use 'InputType=1'. Only interlaced gets InputType=0.

sneaker_ger
5th March 2019, 13:24
Hmm, eac3to marks a video at 1080i50.
Well, here's a sample (https://1drv.ms/u/s!AhSxhQ9g_mrMjwZVIy9FW7JrOtCa) :)
That sample is 1080p60.

asarian
5th March 2019, 13:26
That sample is 1080p60.

Yikes, I linked the wrong sample. :) Here is the real one: proper sample (https://1drv.ms/u/s!AhSxhQ9g_mrMlgupngrxwSkSBV2n)

sneaker_ger
5th March 2019, 13:37
Progressive 1080p25 encoded as interlaced.

asarian
5th March 2019, 13:41
Progressive 1080p25 encoded as interlaced.

:thanks: That's what I thought. :)

mkver
5th March 2019, 17:28
Progressive 1080p25 encoded as interlaced.
That's not the whole story. It's MBAFF with pic_struct SEIs declaring every coded frame to be progressive; furthermore, bottom_field_pic_order_in_frame_present_flag is set to zero (meaning that the top and bottom fields of the coded frames have the same pic order count and even in the absence of a pic_struct SEI the coded frames should be considered progressive*). But it also has ct_type equal to 1 which means that the original source material is interlaced; furthermore the specs contain the clause that "Two consecutive fields in output order shall have different values of clockTimestamp when the value of ct_type for either field is 1 (interlaced)." This means that this stream is simply out-of-spec!

The reason that this particular sample is treated as interlaced is that FFmpeg uses the ct-type to override the pic_struct (https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/h264_slice.c#L1178) (notice that ct_type isn't simply the value read from the bitstream (https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/h264_sei.c#L93)). So changing the ct_type is one way of fixing this.

Notice that ffmpeg has a bug because it always flags MBAFF as interlaced in the absence of SEI (see here (https://github.com/FFmpeg/FFmpeg/blob/master/libavcodec/h264_slice.c#L1181)) regardless of the pic order count of the fields involved. This means that simply deleting the SEI would not change the behaviour of FFmpeg based players unless FFmpeg is fixed, too (and the player updated).

*: From the semantics of pic_struct:
"NOTE 6 – When pic_struct_present_flag is equal to 0, then in many cases default values may be inferred. In the absence of other indications of the intended display type of a picture, the decoder should infer the value of pic_struct as follows:
– If field_pic_flag is equal to 1, pic_struct should be inferred to be equal to (1 + bottom_field_flag).
– Otherwise, if TopFieldOrderCnt is equal to BottomFieldOrderCnt, pic_struct should be inferred to be equal to 0 [progressive frame].
– Otherwise, if TopFieldOrderCnt is less than BottomFieldOrderCnt, pic_struct should be inferred to be equal to 3 [TFF].
– Otherwise (field_pic_flag is equal to 0 and TopFieldOrderCnt is greater than BottomFieldOrderCnt), pic_struct should be
inferred to be equal to 4 [BFF]."

sneaker_ger
5th March 2019, 17:46
I always wonder what the guys writing MPEG specs are smoking.

asarian
5th March 2019, 21:19
@mkver, wow, that's a complicated story! :)

This means that this stream is simply out-of-spec!

That might explain why tsMuxer totally tripped on it (badly broken and jittery output). I was able to extract the main stream correctly with eac3to.

But it also has ct_type equal to 1 which means that the original source material is interlaced;

There's some visual evidence for that too; darn if I can find one now, but earlier, I saw a few frames with your typical interlaced 'stripes' artifacts in them (as if badly deinterlaced). It's this way on the original .m2ts blu-ray too (so it's not an eac3to extract thing).

Xor
1st April 2019, 23:35
Please simply help, i formatted and reinstall last version of eac3to 334 (also the surcode suite)

Test result

H:\eac3to334>EAC3TO -TEST
eac3to (v3.34) is up to date
Nero Audio Decoder (Nero 6 or older) doesn't seem to be installed
http://www.nero.com/eng/store-blu-ray.html
CAUTION: You need Nero 7. Nero 8 won't work with eac3to.
ArcSoft DTS Decoder doesn't seem to be installed
http://www.arcsoft.com/products/totalmediatheatre
Sonic Audio Decoder (3.34.0.0) doesn't seem to be installed
Haali Matroska Muxer doesn't seem to be installed
http://haali.net/mkv
Nero AAC Encoder (1.5.4.0) is installed
Surcode DTS Encoder (1.0.29.0) is installed




I tried to convert a DTS track to AC3, for DEcoding using other tool (Decoding with libDcaDec DTS Decoder...)

H:\eac3to334>eac3to Test.dts Test.ac3 -640
DTS, 5.1 channels, 1:53:27, 1509kbps, 48kHz
Decoding with libDcaDec DTS Decoder...
Remapping channels...
Encoding AC3 <640kbps> with libAften...
Creating file "Test.ac3"...
eac3to processing took 0 minute, 41 seconds.
Done.


Surcode DTS Encoder (1.0.29.0) include DECODER or not ?

Thank's

LigH
1st April 2019, 23:57
No, the SurCode DTS encoder is an encoder only. But libavcodec in eac3to has a free DTS decoder, no need for additional software.

asarian
7th April 2019, 16:30
Another quick extension question. :) I extracted a TrueHD stream to a .thd file. So far so good. Is there a way I can get tsMuxer to accept it, though?

tebasuna51
8th April 2019, 00:53
tsMuxeR only accept tracks .thd+ac3

Extract the full TrueHD track like thd+ac3 or convert the .thd stream to .thd+ac3 with eac3to.

asarian
8th April 2019, 01:44
tsMuxeR only accept tracks .thd+ac3

Extract the full TrueHD track like thd+ac3 or convert the .thd stream to .thd+ac3 with eac3to.

Oops! Guess that's what I did wrong: I assumed (like with DTS-MA and .dts), that .thd would include the .ac3 sub-core. :thanks:

Xor
8th April 2019, 20:10
No, the SurCode DTS encoder is an encoder only. But libavcodec in eac3to has a free DTS decoder, no need for additional software.

d:\eac3to334>eac3to t1.dts t1_768.dts -768
DTS, 5.1 channels, 2:34:09, 1509kbps, 48kHz
Decoding with libDcaDec DTS Decoder...
Writing WAVs...
Creating file "t1_768.L.wav"...
Creating file "t1_768.R.wav"...
Creating file "t1_768.LFE.wav"...
Creating file "t1_768.C.wav"...
Creating file "t1_768.SR.wav"...
Creating file "t1_768.SL.wav"...
Encoding DTS <768kbps> with Surcode...
Surcode DTS Encoder doesn't seem to be installed.

Please show me an alternative encoder (to Minnetonka Surcode DTS) can support ENCODE DTSHD (@ 1509kbps) ????

filler56789
8th April 2019, 23:35
d:\eac3to334>eac3to t1.dts t1_768.dts -768
DTS, 5.1 channels, 2:34:09, 1509kbps, 48kHz
Decoding with libDcaDec DTS Decoder...
Writing WAVs...
Creating file "t1_768.L.wav"...
Creating file "t1_768.R.wav"...
Creating file "t1_768.LFE.wav"...
Creating file "t1_768.C.wav"...
Creating file "t1_768.SR.wav"...
Creating file "t1_768.SL.wav"...
Encoding DTS <768kbps> with Surcode...
Surcode DTS Encoder doesn't seem to be installed.

Please show me an alternative encoder (to Minnetonka Surcode DTS) can support ENCODE DTSHD (@ 1509kbps) ????

ffdcaenc-2 doesn't support DTSHD, only ordinary DCA, cannot be used by eac3to, but it is free.

The Master Audio Suite supports all types of DTS, including pure lossless DTSHD, but it's not free and cannot be used by eac3to.

LigH
9th April 2019, 08:11
I tried to convert a DTS track to AC3

I didn't expect you want to encode to DTS instead of AC3; eac3to has a (DCA Core) DTS decoder with libav (libdcadec), and an AC3 encoder with libav (ffmpeg AC3). For this task, my remark "no need for additional software" is valid. I did not mean to extend it to encoding to DTS, that's a different topic.

Lossy DTS (DCA Core) with high bitrate, compatible to DVD Video discs (1509.75 kbps), is not the lossless "DTS-HD", compatible to Blu-ray discs.

tebasuna51
9th April 2019, 10:24
Only 2 points:

ffdcaenc-2 doesn't support DTSHD, only ordinary DCA, cannot be used by eac3to
It can be used with 'pipe':

eac3to INPUT stdout.wav | ffdcaenc -i - -o output.dts -l -b 1509.75

eac3to has a (DCA Core) DTS decoder with libav (libdcadec), and an AC3 encoder with libav (ffmpeg AC3).
eac3to can't use libav (ffmpeg), it use libAften.dll (obsolete). But also can use ffmpeg with 'pipe':

eac3to INPUT stdout.w64 | ffmpeg -i - -c:a ac3 -b:a 640k -center_mixlev 0.707 output.ac3

Xor
14th April 2019, 22:04
ffdcaenc-2 doesn't support DTSHD, only ordinary DCA, cannot be used by eac3to, but it is free.

The Master Audio Suite supports all types of DTS, including pure lossless DTSHD, but it's not free and cannot be used by eac3to.

I have installed "Suite Surcode 1.0.23", work fine on ENcoding DTS.

But this version support DEcoding DTSHD ?

If Yes, how to force eac3to to use surcode for deconding dtshd (not use libDcaDec free ) ????

http://thumbs2.imagebam.com/97/d4/c5/20cc041195028104.jpg (http://www.imagebam.com/image/20cc041195028104)

Thank's

nevcairiel
14th April 2019, 22:18
But this version support DEcoding DTSHD ?

If Yes, how to force eac3to to use surcode for deconding dtshd (not use libDcaDec free ) ????

http://thumbs2.imagebam.com/97/d4/c5/20cc041195028104.jpg (http://www.imagebam.com/image/20cc041195028104)

Thank's

There is no reason to even entertain such a thought, because libdcadec supports full and flawless DTS-HD decoding. You don't need any external software for DTS-HD decoding.

tebasuna51
15th April 2019, 09:19
Like nevcairiel say there is no reason to eac3to use other decoder than libdcadec, btw eac3to can use other decoders than defaults like is explained in the first post of this thread.

To decode DTS-HD can't use Surcode but yes ArcSoft or Sonic (if installed), to override default decoders can be used parameters like:
-arcsoft
-sonic
-nero

Bandits
15th April 2019, 16:13
Request explanation of the following audio output.

Audio_3_English DELAY -17ms.THD+AC3

Does the "DELAY -17ms" mean:

A delay of -17ms on the audio needs to be applied when remuxing?
A delay of -17ms was applied to the audio output and nothing has to be done when remuxing?

If the delay was applied to the audio output, is there a way to turn off the creation of the filename with "DELAY -17ms" in it? Even when I specify a filename for the output eac3to still changes it when it wants a DELAY in the filename.

tebasuna51
15th April 2019, 21:59
Does the "DELAY -17ms" mean:

A delay of -17ms on the audio needs to be applied when remuxing

eac3to can't apply delay's to thd streams.