View Full Version : eac3to - audio conversion tool
madshi
1st August 2016, 21:55
THD frames are *very* short (IIRC each THD frame has 40 samples for an 48khz track, which means each frame should be slightly less than 1ms), so removing overlaps is not as important for THD as it is for any other (compressed) audio codec. There are "major" and "minor" THD frames, though, and a new m2ts file is likely to start with a "major" frame. Which makes it somewhat unlikely that the last THD frame of a previous m2ts part, and the first THD frame of the following m2ts part are bit-by-bit identical. As a result eac3to might not be able to cleanly solve this situation. With AC3 and DTS, every frame has the same type, so the last/first frame usually match bit-by-bit for seamless branching, which eac3to can resolve very cleanly.
P.S: That said, I'm not even trying to detect if the last THD frame of a previous m2ts part and the first THD frame of the following m2ts part match bit-by-bit. I think it's unlikely that they do, but I can't say with 100% certainty right now.
tebasuna51
1st August 2016, 23:18
THD frames are *very* short (IIRC each THD frame has 40 samples for an 48khz track, which means each frame should be slightly less than 1ms)...
Then for THD part of track seems the problem is unnoticeable.
tulala extract the thd+ac3 track, maybe the messages are referred only to the AC3 part of the track?
madshi
2nd August 2016, 08:20
Yes, eac3to's "Skipping identical AC3 frames" message is only for the AC3 part of the track.
SeeMoreDigital
4th August 2016, 15:00
I don't know if anybody has asked this before... Are there any plans to add support for DSD (Direct Stream Digital) decoding?
Once extracted they're usually in the form of .dsf or .dff streams ;)
tulala
6th August 2016, 13:57
I understand that tsmuxer removes 15 identical frames and 2 others that aren't identical but that overlap.
I understand that eac3to also removes the 15 identical frames in the ac3 track, and it doesn't remove the frames that overlap.
More questions (for curiosity more than anything else).
- When there are some identical frames in the ac3 track (here 15), are those identical frames also in the true-hd track? Those 15 identical frames in the ac3 are deleted/skipped correctly apparently, but if they are also in the true-hd track, are they also deleted/skipped, or are they still in the output audio file?
- When audio overlaps (here twice), is it in both ac3 and true-hd tracks?
- If the audio overlaps for 5ms in the true-hd track and a true-hd frame has a duration of a little less than 1ms, that means that there are about 5 frames that overlap?
- If decoding a true-hd frame was possible (it isn't if I documented myself correctly), would it become possible to cleanly solve the overlap situation?
Thanks again for clarifying things up.
tebasuna51
6th August 2016, 15:35
@tulala
Re-read the madshi post.
Short answer to first 4 questions: no, no, no and no.
When decode is possible to cleanly solve the overlap because we can delete the needed PCM samples 1/48000 sec. = 0.02083 ms of duration.
Thunderbolt8
29th August 2016, 23:13
could you please add the option to handle zlib packed subtitles correctly? currently eac3to cant demux those correctly.
hubblec4
1st September 2016, 11:29
Hi madshi
Is eac3to able to demux TextST subtitles from Bluray?
If not, could you add such a feature?
jriker1
20th September 2016, 15:40
This was probably discussed before but trouble rifling thru 600+ pages of thread. I know eac3to now uses a different default decoder for DTS content. I am used to using ArcSoft. Challenge with Arcsoft is if it's 6.1 content I have to use a certain version dll, if it's labeled as strange setup I use a different one, all other content I use a third. No problem, I can deal with that. Right now keep using the -arcsoft flag when using eac3to. Is the default decoder better than using Arcsoft and does it have any of the same problems with separation of channels based on the content type?
Thanks.
JR
tebasuna51
20th September 2016, 20:42
The default decoder decode the "strange setup" without problems. ArcSoft is only needed for DTS Express.
Snowknight26
20th September 2016, 21:55
The default decoder decode the "strange setup" without problems. ArcSoft is only needed for DTS Express.
And hopefully not for long either, now that ffmpeg can decode DTS Express.
tebasuna51
21st September 2016, 12:40
And hopefully not for long either, now that ffmpeg can decode DTS Express.
You are right, now ffmpeg can decode DTS Express.
I make a test with a sample and the output have same lenght, samplerate, etc., than decoded by ArcSoft.
They aren't bit-identical but we can't expect that with lossy codecs.
Maybe that is not important with these kind of tracks.
But I don't know when madshi can do the changes.
Now eac3to work with special dll's:
10/03/2015 avcodec-54.dll
10/03/2015 avutil-52.dll
14/11/2015 libdcadec.dll
A recent ffmpeg shared work with:
19/09/2016 avcodec-57.dll
19/09/2016 avutil-55.dll
And about libdcadec.dll
This program is deprecated!
This decoder has been fully integrated into FFmpeg master branch and further development will continue there.
Then madshi must make new avcodec-57.dll and avutil-55.dll to add DTS Express support (maybe without libdcadec.dll)
I know than eac3to can't distribute the same dll's than ffmpeg by copyright licenses (for instance to decode AAC) but if we can change the dll's with the included in ffmpeg shared eac3to don't need be actualized so quickly.
madshi ¿Can you make compatible dll's with the ffmpeg shared ones?
Seems than work fine replacing libFLAC.dll with new ones.
You can distribute limited dll's, but the users can replace them.
Is the same than you can't distribute ArcSoft or Nero decoders but users can use dtsdecoderdll.dll, etc.
filler56789
21st September 2016, 13:34
For what it's worth...
three weeks ago, I dropped Arcsoft's DTSdecoderdll.dll definitely, after noticing it introduced (through LAV Audio) lots of distortion in certain pure-lossless tracks :scared:
SeeMoreDigital
21st September 2016, 20:37
Out of interest...
How mature is FFmpeg's support for decoding 2 channel and multi-channel DSD?
Cheers
Motenai Yoda
22nd September 2016, 21:30
Hi I have a bluray with a lpcm 7.1 that sports a uncommon layout, it is something like L R C S1 B1 B2 S2 LFE, both the back channel are bit identical, but I don't know how to rearrange to a usual layout
L R C LFE B1 B2 S1 S2 or S2 S1 (hoping only SR and LFE were switched) ?
I also have a DTS 6.1 ES Discrete with a mute LFE and all other channels with low frequencies... exist something like this?
tebasuna51
23rd September 2016, 02:59
Hi I have a bluray with a lpcm 7.1 that sports a uncommon layout, it is something like L R C S1 B1 B2 S2 LFE
What tool say you this LPCM layout?
If you extract to wavs with eac3to you obtain other than L, R, C, LFE, BL, BR, SL, SR?
Or you think than there are switched? In a english DTS-MA track of "The Revenant" I detect a wrong mapping, the BR must be the SR and the SR the BR.
I also have a DTS 6.1 ES Discrete with a mute LFE and all other channels with low frequencies... exist something like this?
Why not?, this track seems don't have Low Frequency Effects, but can have low frequency music in all channels.
Is not mandatory put all low frequencies in LFE channel, the receivers/amplifiers can extract (by config) all low frequencies from all channels and send them to the subwoofer.
Motenai Yoda
23rd September 2016, 09:24
What tool say you this LPCM layout?
If you extract to wavs with eac3to you obtain other than L, R, C, LFE, BL, BR, SL, SR?
Or you think than there are switched? In a english DTS-MA track of "The Revenant" I detect a wrong mapping, the BR must be the SR and the SR the BR.
As it sounds strange I open audacity and I get this
http://1.t.imgbox.com/bo0a8xJb.jpg (http://imgbox.com/bo0a8xJb)
UsEac3To require 'A.Tools' to extract the PCM/INT/BIG track, so I extracted it with mkvextractgui2. and extracted to wavs with eac3to, all are labelled as it is in a standard layout order.
But I don't know if only LFE and SR are switched or SR and SL too
Why not?, this track seems don't have Low Frequency Effects, but can have low frequency music in all channels.
Is not mandatory put all low frequencies in LFE channel, the receivers/amplifiers can extract (by config) all low frequencies from all channels and send them to the subwoofer.
nope even the effects have a lot of lf, actually I merged an ac3 lfe into
tebasuna51
23rd September 2016, 13:55
UsEac3To require 'A.Tools' to extract the PCM/INT/BIG track,
I never see a track labeled by eac3to like PCM/INT/BIG for that I only offer 'A.Tools' ('MkvExtract/Mux' here). What eac3to version have you?
BTW you can force the extraction in COMMAND LINE PARAMETERS:
TRACK: %_.wav (or w64 or wavs)
to see if eac3to output other channel order.
But I don't know if only LFE and SR are switched or SR and SL too
Yep, seems LFE <-> SR changed but is not easy know if there are other change.
nope even the effects have a lot of lf, actually I merged an ac3 lfe into
At your risk. Maybe when receiver mux LF from all channels and new LFE you obtain undesired output.
My reconmendation is preserve the LFE empty.
Elegant
1st October 2016, 18:15
Hey guys, I've setup my Windows 10 machine recently and noticed that NeAudio2.ax is not registering with regsvr32. If anyone has had any luck getting these to work, your help would be appreciated!
EDIT: After using a few other tools and some research, I have found the registry keys regsvr32 is adding for NeAudio2.ax. I tested the solution on a Windows 7 machine and had instant success. Unfortunately, eac3to now crashes when accessing NeAudio2.ax on Windows 10. This explains why it couldn't register it in the first place; using force does not solve the issue. This isn't an issue with eac3to as far as I can tell, you simply can't use NeAudio2.ax on Windows 10.
tebasuna51
6th October 2016, 11:28
@Elegant
I can't help you with that.
But Nero decoder is only needed to decode AAC, and you have many options in UsEac3to 'A/V Recode':
- If your input is a standalone .aac or .m4a (or the first audio track in mp4 container) you can decode it, or recode to all formats offered, in 1 pass.
- If your input is a track of a mkv container you can decode it, or recode to AC3 with ffmpeg, in 1 pass. You need 2 pass to recode to other format.
73ChargerFan
8th October 2016, 22:29
eac3to needs the Nero decoder to be accessible via DirectShow. If it isn't, eac3to can't use it. So something seems to be wrong with the installation. I don't know how to fix it, though.
I want to slowdown an AAC 25fps audio track to AAC 23.97fps, but Nero 7 cannot be found anymore, and I'm on Win 10 x64, so I doubt it would work.
Does anyone have another suggestion? I read neroAacDec.exe doesn't work with eac3to. I'd prefer to stay with eac3to because I need to automate the process by command line.
I should note that the file is in an MKV container, and I'm using eac3to for other conversions. Basically I'm trying to automate revconverting PAL versions of US television shows back to their proper speed.
Thanks!
Music Fan
9th October 2016, 12:05
For this kind of operations I use Hybrid which allows to change the pitch or not for slow-down or speed-up but it's a quite big program (using a lot of free tools, including Sox for audio) ;
http://forum.doom9.org/showthread.php?t=153035
hello_hello
9th October 2016, 23:58
I'd prefer to stay with eac3to because I need to automate the process by command line.
I should note that the file is in an MKV container, and I'm using eac3to for other conversions. Basically I'm trying to automate revconverting PAL versions of US television shows back to their proper speed.
Thanks!
AVISynth? Something like:
LoadPlugin("C:\Program Files\avisynth_plugin\BassAudio.dll")
BassAudioSource("E:\audio.m4a")
SSRC(Round((AudioRate()*1001.0)/960.0)).AssumeSampleRate(AudioRate())
Or aside from Hybrid (as suggested above), MeGUI also has speed up and slow down options in it's encoder configuration (I borrowed the above script from MeGUI's log file).
73ChargerFan
10th October 2016, 02:39
Thanks for the suggestions. I've used MeGUI and hacked some avisynth scripts for Ripbot264, but avisynth is complicated, and I can't use Ripbot264 because I don't want to re-encode the video, just adjust the timing.
But, really, eac3to is PERFECT for this operation, because it will slowdown the video into a new mkv and slowdown the audio into a new container at the same time, then I just use mmg to combine them. 2 commands, plus delete the temp files.
I'll probably use foobar2000 to convert the aac file to flac so that eac3to can do the slowdown. I'll ask on Hydrogenaudio about command line AAC decoders.
73ChargerFan
10th October 2016, 02:41
Madshi,
I ask for an update to EAC3TO which will allow decoding of AAC codec without installing Nero 7, which I can't find and I don't know if it'd work in Windows 10 x64.
Thanks.
LigH
10th October 2016, 07:42
I agree that if eac3to supported libavcodec as decoder for more input audio formats, it would probably not be too hard to add rather universal conversion features, in addition to the already impressive built-in lossless or low-loss conversions. But that may be a matter of secondary topics, like licenses and maintainability...
As a command line decoder, you may use ffmpeg to convert the audio stream only. And if you build it yourself with "non-free" license (e.g. using jb-alvarado's media-autobuild_suite) and keep your binary private, you may even use the fdk-aac encoder to do it all in one. There is a simple "atempo" filter in ffmpeg (not preserving the pitch), as well as a more complex "rubberband" time stretch filter.
dvdemon
16th October 2016, 10:30
Yeah, what I would really love to see is eac3to being able to use the (privatly pre-built) FDK-AAC binary over Nero for (multichannel) AAC encoding if said binary is provided. :cool:
Sometimes Nero's AAC encoder produces very strange output or even complete garbage and I can't figure out why. :confused:
And I also can't wrap my head around piping eac3to's output to the FDK-AAC binary, which only takes WAV files as input...
Only way I got this to work was extracting HD-audio to multichannel WAV file with eac3to and then feeding it to FDK-AAC which works perfectly fine but takes twice as long as if eac3to could do this on its own.
Maybe support for the FDK-AAC encoder could be added to some future incarnation of eac3to.
Best. Tool. Ever.
Keep on! :D
Cheers.
LigH
16th October 2016, 11:06
FDK-AAC is an AAC encoder with a quite restrictive license (no binary distribution, DIY from sources ... not hard with the script available in the QAAC "cabinet", but a bit more elaborate); for decoding, libavcodec is more interesting and has a more cooperative license.
sneaker_ger
16th October 2016, 14:45
FDK-AAC is an AAC encoder with a quite restrictive license (no binary distribution, DIY from sources ... not hard with the script available in the QAAC "cabinet", but a bit more elaborate)
I doubt script from QAAC will help for FDK-AAC. ;) But since QAAC did better in last test I'd prefer that anyways.
Madshi could probably avoid licensing issues like he did with arcsoft.dll, i.e. users would have to get the required dlls elsewhere. Nothing new, really.
LigH
16th October 2016, 15:03
You may not have seen that there is an auto-build script for fdk-aac on the qaac website.
https://sites.google.com/site/qaacpage/cabinet => old: fdkaac_autobuild.zip
tebasuna51
16th October 2016, 15:37
And I also can't wrap my head around piping eac3to's output to the FDK-AAC binary, which only takes WAV files as input...
fdkaac support STDIN then you can, for instance:
eac3to INPUT stdout.wav | fdkaac -b 130 -o OUTPUT.m4a -
sneaker_ger
16th October 2016, 16:23
You may not have seen that there is an auto-build script for fdk-aac on the qaac website.
Indeed, I did not. My bad.
dvdemon
17th October 2016, 16:47
fdkaac support STDIN then you can, for instance:
eac3to INPUT stdout.wav | fdkaac -b 130 -o OUTPUT.m4a -
Yes! :D
That did the trick. I actually missed this tiny " - " at the end, which is obviously very, very important to fdkaac.
I know: rtfm. Shame on me.
But thanks anyway, for clearing this up for me.
:thanks:
I'd still prefer, if eac3to could simply use an existing, pre-provided fdk-aac binary, so this would work without all the piping in the first place.
Just like with Nero's or Arcsoft's DLLs: if they are there, it simply puts them to good use.
But that's just an idea. I'm happy for now.
LigH
17th October 2016, 18:24
If there is an fdk-aac DLL with a useful API, that may be possible. In case of doubt, it may require a libav DLL from a dynamically built ffmpeg with "nonfree" license...
Kempniu
18th October 2016, 13:19
How exactly does eac3to determine that there are gaps in the source file?
eac3to v3.31 often finds gaps in the AC-3 track of my MPEG-TS DVB captures. The problem is, I cannot tell why. Consider this raw, unprocessed sample (17 MB) straight from the capture device:
https://www.sendspace.com/file/rogha4
eac3to -check claims there is a 21 ms gap in this file at playtime 0:00:03. How is this calculated? PES packets which are part of stream 0x13F0 have continuous PTS, continuity counters in TS packet headers are correct, each PES packet has exactly four AC-3 frames, there are no playback issues. So where is the alleged gap?
The gap warning is displayed regardless of the AC-3 decoder used, -no2ndpass also does not help. What is even more confusing is that if you cut off the last megabyte or so of this sample, eac3to -check no longer displays the message in question.
This looks like a bug in eac3to. Has anyone come across a similar issue?
MeteorRain
31st October 2016, 20:47
Any plan to support HEVC stream in TS?
I personally don't rely on this, but I wonder if someone else would be interested in demuxing HEVC from a TS file.
That being said, we do have some HEVC TS video files for testing.
Music Fan
1st November 2016, 10:19
Did you try TSmuxer or FFmpeg ?
szabi
8th November 2016, 22:08
Hi
I tried this:
stdout.w64 | ffmpeg -i - -c:a eac3 -b:a 1120k %_.eac3
Log:
Input #0, w64, from 'pipe:':
Duration: N/A, bitrate: 9216 kb/s
Stream #0:0: Audio: pcm_s24le ([1][0][0][0] / 0x0001), 48000 Hz, 7.1, s32 (24 bit), 9216 kb/s
Output #0, eac3, to 'E:\my audio.eac3':
Metadata:
encoder : Lavf57.50.100
Stream #0:0: Audio: eac3, 48000 Hz, 5.1(side), fltp (24 bit), 1120 kb/s
Metadata:
encoder : Lavc57.58.100 eac3
EAC-3 support 8 channels.
Why these 2 channel lost?
bye
Snowknight26
8th November 2016, 22:29
You should ask that on the ffmpeg mailing list or IRC channel.. this doesn't relate to eac3to.
bmcelvan
1st December 2016, 15:32
Quick question about converting from 24-bit to 16-bit. According to post #10046
http://forum.doom9.org/showthread.php?p=1404223#post1404223
They recommend converting a 24-bit source to .wav first, and then run a second command with the -down16 to convert to 16 bit.
Is this really true? Will this make for a better conversion?
Or is converting from 24bit DTS-HD MA or TrueHD to 16 bit (-down16) and switching formats (FLAC) all in one command yield an identical and just as good conversion?
Music Fan
1st December 2016, 17:18
Quick question about converting from 24-bit to 16-bit. According to post #10046
http://forum.doom9.org/showthread.php?p=1404223#post1404223
They recommend converting a 24-bit source to .wav first, and then run a second command with the -down16 to convert to 16 bit.
Is this really true? Will this make for a better conversion?
Or is converting from 24bit DTS-HD MA or TrueHD to 16 bit (-down16) and switching formats (FLAC) all in one command yield an identical and just as good conversion?
It seems to concern only padded 16 bit, thus "fake" 24 bit.
mini-moose
5th December 2016, 22:32
I've tried to demux E-AC3 audio on a couple recent discs with eac3to, seems to be failing:
Info:
5: E-AC3, Spanish, 7.1 channels, 768kbps, 48kHz, dialnorm: -27dB
(core: AC3, 5.1 channels, 448kbps, 48kHz, dialnorm: -27dB)
command:
eac3to F:\ 1) 5: audio.ac3
output:
a05 Extracting audio track number 5...
a05 Removing AC3 dialog normalization...
a05 Extracting E-AC3 core...
a05 Decoding with libav/ffmpeg...
a05 libav frame CRC mismatch
a05 libav get_buffer() failed
a05 The libav decoder reported error -22 while decoding.
Aborted at file position 1048576.
Demuxing to .eac3 ("eac3to F:\ 1) 5: audio.eac3") :
a05 Extracting audio track number 5...
a05 Removing AC3 dialog normalization...
a05 Applying (E-)AC3 delay failed.
Aborted at file position 1048576.
This format seems to be getting on more and more discs now. TSMuxer is able to handle those.
LigH
5th December 2016, 22:54
Is any full MediaInfo analysis of this specific track available? Maybe a short cut-out?
mini-moose
6th December 2016, 10:00
Is any full MediaInfo analysis of this specific track available? Maybe a short cut-out?
the disc has a few dubbed audios in E-AC3, non of them will extract. Also get a similar result on another disc with E-AC3 EX
here's the mediainfo for the one I gave as an example:
Audio #3
ID : 4354 (0x1102)
Menu ID : 1 (0x1)
Format : E-AC-3
Format/Info : Audio Coding 3
Format settings, Endianness : Big
Muxing mode : Stream extension
Codec ID : 132
Duration : 1 h 26 min
Bit rate mode : Constant
Bit rate : 500 b/s
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 kHz
Frame rate : 187.500 FPS (256 spf)
Compression mode : Lossy
Stream size : 317 KiB (0%)
short cut out you mean a chunk from the m2ts?
tebasuna51
6th December 2016, 11:27
Bug reported to madshi with a sample: http://bugs.madshi.net/view.php?id=450
Seems hapen with all E-AC3 reported by eac3to with 'core'
SeeMoreDigital
6th December 2016, 17:21
Bug reported to madshi with a sample: http://bugs.madshi.net/view.php?id=450
Seems hapen with all E-AC3 reported by eac3to with 'core'
Hi Tebasuna51,
Out of interest, I can see from your bug report that the Dolby Plus part of the stream was encoded with 8 (7.1) channels. Aren't such sources quite rare - and getting rarer?
Cheers
tebasuna51
6th December 2016, 18:27
I never see that sources. Was a sample uploaded by SquallMX here: http://forum.doom9.org/showthread.php?p=1787122#post1787122
MeteorRain
7th December 2016, 21:26
Just a heads up, for TS with HEVC inside it, eac3to cannot detect the audio delay and always assume there's no delay.
SquallMX
8th December 2016, 21:05
Hi Tebasuna51,
Out of interest, I can see from your bug report that the Dolby Plus part of the stream was encoded with 8 (7.1) channels. Aren't such sources quite rare - and getting rarer?
Cheers
They are getting more common, E-AC3 is the more practical format for delivering 7.1 dubs tracks, you only need 768 Kbps instead of the 2048 Kbps needed for DTS-HR, some releases have up to 10 dubs, so the savings are huge. Unfortunately most converting software has no proper support for the format.
SeeMoreDigital
8th December 2016, 22:00
They are getting more common, E-AC3 is the more practical format for delivering 7.1 dubs tracks...Eh?
HD-DVD predominately used Dolby Digital Plus but none of my disc's offered 7.1Ch audio, they were all 5.1.
And I'm yet to find a Blu-ray disc that offers 7.1Ch DD+. In-fact, I think I've only got one Blu-ray disc that offers DD+ audio :scared:
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.