I have the same movie in two versions, one US and one European, both MP4 extension. The European one is superior because it's not cropped like the US one, but sadly it's dubbed in Spanish. I need to take the sound track from US file and mux it with the European video, but that European one runs slightly faster than the US one. The PAL speedup phenomenon I believe.
It's not as simple as calculating the runtime difference between both versions then slowing down the audio by that amount because the credits at the beginning and end are different and have different lengths.
Is there a free software out there that would help me match the slower US sound to the faster European video without going through endless trial and error?
+ Reply to Thread
Results 1 to 7 of 7
Last edited by adrian44; 26th Aug 2023 at 17:19.
Sure. Please do that. Thank you so much
From your message you want to keep the PAL video and combine/change speed/sync the NTSC audio
In order to sync the first part of the movie,
Manipulate either the video (using "trim") or audio (using "DelayAudio") or both
so that the first section of the movie is in sync.
In my case the file with the video had about 20 seconds of junk at the beginning so I used to trim(x) to bypass the first "x" frames.
(20 seconds @ 24 FPS, approx trim(480) )
To load the files and check the delay by hand in vdub use a script like this:
#PAL file-good video vid=lwlibavvideosource("C:\path\file1.mp4") # possible trim() here #NTSC file good audio aud=lwlibavaudiosource("c:\path\file2.mp4").TimeStretch(tempo=100.0*25.0/(24000.0/1001.0)) # possible DelayAudio() here # combine audiodub(vid,aud)
Once it's good at the start, use the cursor to go forward a bit, hit the space bar (play) to confirm it's still in sync.
Eventually you'll find the place where it goes out
(usually a scene change) make a note of the frame number. For example - asssume it goes out at frame 30001,
frame 0-30000 (no adjustment necessary)
then at frame 30001, adjust the delay at audio/interleaving so that it syncs up again. When you find the right value make a note.
Repeat this until the end. You end up with something like:
frame 0-30000 0
30001 - 45000 -140 ms delay
45001-85322 400 ms
85323 - end - 1300 ms
(But you may have more sections that this, my movie need 8 separate frame ranges)
Add this second part to the bottom of the script once you have the details.
Add the frame and delays recorded earlier, if you have more sections, just add them using the same pattern.
v0=trim(0,30000) v1=trim(30001,45000).DelayAudio(-0.140) v2=trim(45001,85322).DelayAudio(0.400) v3=trim(85323,0).DelayAudio(-1.30) #combine them v0++v1++v2++v3
That's up to the OP, the same method can be used, just a few minor changes
This is an alternate method to sync the audio to the video, I'm not sure if this causes a pitch shift or not
#25 FPS PAL video source: vid=lwlibavvideosource("C:\Users\davex\Desktop\file1.mkv").assumefps(23.976) # NTSC audio aud=lwlibavaudiosource("C:\Users\davex\Desktop\file2.mkv") audiodub(vid,aud) AssumeFPS("pal_film", sync_audio=true).ResampleAudio(44100)
Last edited by davexnet; 27th Aug 2023 at 02:10.
Can't thank you enough for this. Truly appreciate the easy to follow instructions.