Posts: 667
Threads: 76
Joined: 2015 Feb
Thanks: 1203
Given 426 thank(s) in 233 post(s)
Country:
I want to want to work out the delay value to use on an AC3 file when muxing to mkv.
Is there a way to sync tracks without converting AC3 on import (like it does in Audacity).
I just want to open multiple audio files, sync it and find the delay value. Don't need to export them.
Posts: 1,539
Threads: 60
Joined: 2015 Jan
Thanks: 229
Given 632 thank(s) in 372 post(s)
Country:
Posts: 164
Threads: 9
Joined: 2015 May
Thanks: 264
Given 37 thank(s) in 25 post(s)
Country:
2019-12-29, 09:31 AM
(This post was last modified: 2019-12-29, 09:31 AM by crampedmisfit1990.)
Wait, So when you import a AC3 file into Audacity, it converts it soon as it is imported?
So it isn't a lossless process?
Posts: 302
Threads: 10
Joined: 2015 Feb
Thanks: 189
Given 144 thank(s) in 96 post(s)
Country:
I once tried to sync a LD AC3 track using eac3to and one other program, but other than the first edit or two, I kept running into problems like the program not actually making a delay/cut at the specified time. Eventually just gave up. Not sure if the problem was due to bugs or my own errors, but I personally found the experience way too frustrating.
Posts: 1,539
Threads: 60
Joined: 2015 Jan
Thanks: 229
Given 632 thank(s) in 372 post(s)
Country:
2020-01-08, 03:02 PM
(This post was last modified: 2020-01-08, 05:40 PM by Chewtobacca.)
^ Did you make the cuts with eac3to one by one? Also, every edit changes the frame-count/time-code of everything after it, so once you've figured out the edit-points in reference to the original file, work backwards, applying the edits in reverse order. That's what I used to do with frame-duplications in AviSynth. But like you, I find syncing in eac3to frustrating and don't like doing it that way.
Posts: 302
Threads: 10
Joined: 2015 Feb
Thanks: 189
Given 144 thank(s) in 96 post(s)
Country:
Ah, OK. I forget what exactly I did in eac3to and what the non-eac3to program was that I tried, but I'll keep your tip in mind if I decide to try again!
FWIW, I was trying to sync the AC3 to my own capture of the 1st Terminator 2 squeeze LD, but decided that I'd probably just rather listen to the PCM with Prologic anyway.
Posts: 1,539
Threads: 60
Joined: 2015 Jan
Thanks: 229
Given 632 thank(s) in 372 post(s)
Country:
2020-01-09, 06:44 PM
(This post was last modified: 2020-01-09, 06:45 PM by Chewtobacca.)
(2020-01-09, 04:24 PM)BusterD Wrote: Ah, OK. I forget what exactly I did in eac3to and what the non-eac3to program was that I tried, but I'll keep your tip in mind if I decide to try again!
Great! The other program was probably delaycut.
This is what I mean by applying the edits one by one.
Code: #random example
eac3to audio1.wav audio2.wav -XXms
eac3to audio2.wav audio3.wav -edit=2:20:09.823,XXXms - loop
eac3to audio3.wav audio4.wav -edit=1:25:02.312,+XXms
eac3to audio4.wav audio5.wav -edit=0:55:01.957,-XXXms
eac3to audio5.wav audio6.wav -edit=0:04:68.617,+XXXXms -silence
Some people do work forward, but I work backward. If you call Info() in AviSynth and apply it to the video after loading it, the time-codes/frame-numbers printed will not change upon edits.
Code: WhateverSource()
Info()
Scrub through the video in VDub. When you find a missing frame, call DuplicateFrame() and duplicate the frame immediately before the missing one, taking its number from what Info() has printed, which you can trust to remain constant.
Code: WhateverSource()
Info()
DuplicateFrame(7)
Keeping scrubbing. When you find the next missing frame(s), take the number once more from what Info() has printed, and call DuplicateFrame() again, but make sure you insert it before the previous call.
Code: WhateverSource()
Info()
DuplicateFrame(17)
DuplicateFrame(7)
In other words, the new duplication always goes to the top. You can duplicate a frame multiple times.
Code: WhateverSource()
DuplicateFrame(25, 25, 25, 25)#4*41.7ms=167ms
DuplicateFrame(21, 21, 21)#3*41.7ms=125ms
DuplicateFrame(17)#42ms
DuplicateFrame(7)#42ms
Info()
Once you've found all the edit-points, scrub back to the calls to DuplicateFrame() and read the time-codes from Info(), or note them down as you go. In an real use case, I'd favor Loop() over DuplicateFrame() because I prefer the former's syntax, but that's the idea. Obviously, AC-3 "frames" and DTS "frames" are not exactly 42ms, but eac3to will apply the closest delay to the figure input and let you know how much remaining delay couldn't be resolved. Having said all that, I prefer decoding to WAV for greater precision and the freedom to make crossfades.
Posts: 667
Threads: 76
Joined: 2015 Feb
Thanks: 1203
Given 426 thank(s) in 233 post(s)
Country:
2020-01-19, 01:18 AM
Posts: 1,539
Threads: 60
Joined: 2015 Jan
Thanks: 229
Given 632 thank(s) in 372 post(s)
Country:
2020-01-19, 03:14 AM
(This post was last modified: 2020-01-19, 03:17 AM by Chewtobacca.)
deleted user
Unregistered
Thanks:
Given thank(s) in post(s)
^ What he said.
I sometimes even use only 8 bit wav files (instead of 16 or 24 bit) for syncing purposes. The waveform looks pretty much identical to the eye and thus for the sync. The difference is clearly audible but irrelevant for figuring out delay.
|