logo Sign In

The GOUT Sync Thread

Author
Time
 (Edited)

A few people have mentioned that it might be nice to have a thread devoted to synchronizing various projects to the NTSC GOUT.  Currently, most of the the relevant information is available, but it is scattered about a bit.

Background Information

In this context, GOUT refers to the bonus discs that came with the Limited Edition DVD release of the OT.  By convention, audio mixes are synchronized to the NTSC GOUT, not the PAL GOUT; therefore, releases of the original theatrical versions of the OT tend to be synchronized to it as well so people can mux in their favorite audio.

Audio

All of hairy_hen’s mixes are already synchronized to the NTSC GOUT.  Belbucus’ audio tracks need the following delay values.

SW: + 1.017s

ESB: + .948s

ROTJ: + 1.015s

I’ll start with scripts that sync the PAL GOUT to the NTSC GOUT and add others as people make them available.

Useful Links

Reel Lengths

Author
Time
 (Edited)

Star Wars

PAL GOUT

Mpeg2Source()
AssumeFPS(24000,1001)
DeleteFrame(144053)

Star.Wars.1977.Silver.Screen.Edition.35mm.v1

sw=AVCSource(“Star.Wars.1977.Silver.Screen.Edition.35mm.v1_track1_und.dga”).assumefps(“ntsc_film”).trim(1005,0)
blank=sw.blankclip()
swp1=sw.trim(0,42592) ++ blank.trim(0,11)#obi-wan reaches down to grab luke’s arm while he’s unconscious
swp2=sw.trim(42593,45140) ++ blank.trim(0,3)#luke and obi-wan sit on rocks by speeder while luke points at r2
swp3=sw.trim(45141,55729) ++ blank.trim(0,4)#cut from tarkin to r2/3po in front of sandcrawler----first frame of r2 is a duplicate(trimmed out) / end of reel?
swp4=sw.trim(55731,56064) ++ blank.trim(0,-1)#obi-wan / “that is what we are meant to believe”—first frame missing
swp5=sw.trim(56065,56904) ++ blank.trim(0,-1)#no luke, wait! / luke runs to speeder to go see owen and beru
swp6=sw.trim(56905,58453) ++ blank.trim(0,3)#tie fighters approach death star/cut to vader approaching leia’s cell
swp7=sw.trim(58454,60732) ++ blank.trim(0,-1)#standing at edge of cliff above mos eisley/cut to scene of mos eisley
swp8=sw.trim(60733,64836) ++ blank.trim(0,-1)#lined up at the bar/luke tugs on bartender’s sleeve
swp9=sw.trim(64837,70477) ++ blank.trim(0,1)#Han and Chewie stand up / Luke and obi-wan walk away from cantina
swp10=sw.trim(70478,78633) ++ blank.trim(0,-1)#Tarkin dismisses officer / Leia led down corridor by guards
swp11=sw.trim(78634,83416) ++ blank.trim(0,3)# Chewie with hands behind head / 3po looks at r2 and suggests a new strategy
swp12=sw.trim(83417,86622) ++ blank.trim(0,57)#That’s good. You’ve taken your first steps into a larger world. / doors open, officer enters in to deliver message to tarkin / End of reel
swp13=sw.trim(86623,113556) ++ blank.trim(0,5)#Dianoga releases Luke / Leia stares / End of reel
swp14=sw.trim(113557,143951) ++ blank.trim(0,4)#man in hangar waves droid into x-wing / overhead shot of x-wing in hangar / End of reel
swp15=sw.trim(143952,0) ++ blank.trim(0,5)
final=swp1 ++ swp2 ++ swp3 ++ swp4 ++ swp5 ++ swp6 ++ swp7 ++ swp8 ++ swp9 ++ swp10
++ swp11 ++ swp12 ++ swp13 ++ swp14 ++ swp15
return(final)

The Star Wars title card appears on frame 689.

Author
Time
 (Edited)

ESB

PAL GOUT

Mpeg2Source()
AssumeFPS(24000,1001)
DeleteFrame(150204,150205)

Hairy_hen’s 2020 5.1 track is synced to the slowed-down PAL GOUT. The following script will sync it to the NTSC by crossfading the audio at the appropriate point, to account for the two-frame difference.

First, decode the MLP to W64.

eac3to.exe ESB_hh_5.1_v3.mlp ESB_hh_5.1_v3.w64

Make sure that you have AviSynth+ and VirtualDub2 installed. Download BeHappy, look in the plugins32 folder, and copy NicAudio.dll to your working directory. Open a text editor. Copy in the following script, save it as whatever.avs in your working directory, and open it in VirtualDub2.

LoadPlugin("NicAudio.dll")

blank =
\AudioDub(
\BlankClip(length=179670,
\fps=24000,
\fps_denominator=1001),
\RaWavSource("ESB_hh_5.1_v3.w64",1)
\)

sync=
\Dissolve(
\Trim(blank,   0,       150211),
\Trim(blank,   150203,   0),
\11)

return sync

File->Save Audio…->whatever.w64

Team Negative1’s Renegade Grindhouse Edition v1

# This also works for the BD-compatible release.  Use eac3to demux  
# the video.

Loadplugin("C:\Program Files (x86)\Haali\MatroskaSplitter\avss.dll")
ESB=FFmpegSource2("02ESB_Grindhouse_1080p_BD25.mkv") \
.ConvertToYV12()#.ShowFrameNumber(scroll=true)

ESB2= \
Trim(ESB,    0,3096).Loop(12,0,0) ++ \
ESB.Loop(6,30727,30727).Trim(3096,    35385) ++ \
ESB.Loop(3,35381,35381).Trim(35381,    59546) ++ \
ESB.Loop(7,59544,59544).Trim(59544,    59758) ++ \
ESB.Loop(5,59753,59753).Trim(59753,    75034) ++ \
Trim(ESB,75030,75978) ++ \
Trim(ESB,75978,90851) ++ \
ESB.Loop(7,90852,90852) \
.Trim(90852,104633) \
.DuplicateFrame(13781) ++ \
Trim(ESB,104627,121679) ++ \
ESB.Loop(24,121679,121679).Trim(121679, 150156) ++ \
ESB.Loop(11,150134,150134).Trim(150134, 0)

return ESB2

PSB

# Load VTS_01_1.VOB through VTS_01_5.VOB into DGIndex.
# Set the field operation to "Forced Film".
# When prompted to correct the field-order transition, click "Yes".

PSB=Mpeg2Source("PSB.d2v")

PSB2= \
Trim(PSB, 3455, 63023) ++ \
PSB \
.DuplicateFrame(102542, 102543) \
.Loop(5, 63242, 63242) \
.Trim(63127,    125280) \
.FadeOut0(25) ++ \
PSB \
.DeleteFrame(153858, 153859) \
.Trim(125377, 183321)

return PSB2

The Star Wars title card appears on frame 688.

Author
Time
 (Edited)

RotJ

PAL GOUT

Mpeg2Source()
AssumeFPS(24000,1001)
DuplicateFrame(141781)
DeleteFrame(68664,68665)

4k83

DeleteFrame(68664,68665)

The Star Wars title card appears on frame 689.

Author
Time

Sooo, what does this mean in non-avisynth terms?  Compared to NTSC GOUT, where does PAL GOUT have added/deleted frames?  I'm sure if I understood avisynth better, I'd know you already told me...

AFAIK, PAL SW gets an extra frame in the Yavin hangar scene, ESB gets two extra frames as they're preparing to escape from Cloud City, and ROTJ gets two extra frames just after the last scene on Dagobah, and loses one frame during the battle on Endor.  Any others?  I think I may have missed title card shifts, due to the fact that Harmy fixed those in his PAL GOUT-based video.

Project Threepio (Star Wars OOT subtitles)

Author
Time

Thanks so much for taking the time to set up this information and put it together! As you said it's around but it's a bit hard to find sometimes. I plan on Gout Syncing any further releases so that schorman's laserdisc audio archive should be compatible with my projects.

When you say the title card appears on frame 689, I'm assuming that means starting from frame 0?

It's a shame that NTSC Gout is missing a few frames in spots here and there.  Perhaps we could add those frames in and then start calling it official gout sync or something.  I guess that is no man's land though.

@ Catbus.  If you look at Chewtobacca's SW Pal script in post 2 where it says deleteframe(144053), that just means that you delete the missing Yavin hangar frame to sync up to the NTSC Gout which has only half of a field for that frame if I remember correctly. Assumefps(24000/1001) sets the frame rate from 25 down to 23.976.

Luke threw twice…maybe.

Author
Time
 (Edited)

Star Wars Chapters: Frame-Numbers

Pre-pulldown Post-pulldown
0 0
508 635
2748 3435
7033 8791
10761 13451
12832 16040
16344 20430
22144 27680
27808 34760
33405 41756
36256 45320
39444 49305
41533 51916
46364 57955
49692 62115
52596 65745
55749 69686
59480 74350
60668 75835
63289 79111
67628 84535
70632 88290
72452 90565
74340 92925
74528 93160
78420 98025
81608 102010
87313 109141
91764 114705
94773 118466
100776 125970
103181 128976
107524 134405
110296 137870
113652 142065
118708 148385
121629 152036
125804 157255
131365 164206
135484 169355
137565 171956
139732 174665
142305 177881
144053 180066
146918 183647
153637 192046
161694 202117
165253 206566
166249 207811
168781 210976
174246 217807

Original Post

althor1138 said:When you say the title card appears on frame 689, I’m assuming that means starting from frame 0?

Yes; AviSynth and VirtualDub call the first frame zero.  I add ShowFrameNumber(scroll=true) to the script because I find it the clearest way to see the frame numbers, but the frame indicator in VirtualDub does the same job.

To ensure that the title card shows comes up on the right frame, one should demux the video before opening it in DGIndex.  (Loading the VOBs straight into DGIndex leads to a different frame count.)  For the NTSC GOUT, the field operation should be set to Forced Film; for the PAL GOUT, it must be set to Honor Pulldown Flags.

Author
Time
 (Edited)

So does that mean there is an extra frame at the beginning of some of the PAL versions?  If so, where?

EDIT: And for -1's Grindhouse Edition, can anyone convert that into English-ish?  i.e. delete 3 frames starting at NTSC GOUT frame X or timecode Y, etc.

Project Threepio (Star Wars OOT subtitles)

Author
Time

CatBus said:

So does that mean there is an extra frame at the beginning of some of the PAL versions?  If so, where?

No.  While I realize that you haven't used AviSynth, the script is quite self explanatory.  In the example that althor1138 gave you, DeleteFrame(144053) tells AviSynth to delete frame 144053.  Apart from the change in frame-rate, that is all that is in the script, so what it boils down to is that there is only frame that the PAL GOUT has that the NTSC lacks, so deleting it synchronizes the two.

CatBus said:  EDIT: And for -1's Grindhouse Edition, can anyone convert that into English-ish?  i.e. delete 3 frames starting at NTSC GOUT frame X or timecode Y, etc.

Converting the script into time-codes by looking at it is possible, but it would probably be hard for most people (including me) to visualize.  I assume that you are thinking of synchronizing subtitles to Team Negative 1's release.  It might be better if you applied the script to the video, opened it in VirtualDub, looked at the numbers, and scrolled through the video to those points. 

Working out how to use this sort of information is something that we need to consider.  Let's hope someone thinks of something.

Author
Time

Yeah, I already have subs synced (probably good enough) to the Grindhouse release, I was just wanting to know if it could be easily improved.  The next version of Project Threepio will include a Perl script for re-syncing to other frame references, but it requires 1) the timecode relative to the NTSC GOUT where the change happens, and 2) the amount of change, with millisecond precision supported but not required, because, after all, it's just subtitles.  Not sure this method will work for everyone, but it works for me.  I already synced Puggo Grande using this script, and am now working on PSB.

How my off-the-cuff adjustments may relate to actual frame differences...well, your guess is as good as mine, but subtitles are very forgiving.

Project Threepio (Star Wars OOT subtitles)

Author
Time

In that case, I'll have another look at some point to see if I can translate the script into the sort of information that you need.  If I can't find time to look at the Grindhouse release, I'll definitely bear this in mind when the next candidate for GOUT sync comes up.  This sort of thing is probably easier to keep of track if you makes notes as you go.

Author
Time

I suspect the next candidate will be ROTP.  At least for my purposes, I find it better to merge Puggo's reels into a single stream, and de-telecine it back to 23.976 fps before trying to sync.  YMMV.

Project Threepio (Star Wars OOT subtitles)

Author
Time

OK, so this is something I'm very interested in - what exactly do I have to do in order to keep my projects in perfect sync with hairy hen's audio preservations?

Author
Time

You're starting off with PAL GOUT frames, right?  If so, it looks like the applicable Avisynth script snippets are:

SW:

DeleteFrame(144053)

ESB:

DeleteFrame(150204,150205)

ROTJ:

DuplicateFrame(141781)
DeleteFrame(68664,68665)

That gets you back to NTSC GOUT sync.  Please chime in, Chewtobacca if I got something terribly wrong.  AviSynth is new to me.

Project Threepio (Star Wars OOT subtitles)

Author
Time
 (Edited)

Harmy said:

OK, so this is something I'm very interested in - what exactly do I have to do in order to keep my projects in perfect sync with hairy hen's audio preservations?

 If you have the PAL GOUT, you might apply the script to it, render a lossless AVI, import it into whatever editing program you are using, and use it as a visual guide.  That's one way.

Author
Time

I'm thinking about spending some time this weekend doing automated analysis of NTSC and PAL GOUT. I want to make sure we've found all of the unintentionally-interlaced frames and that the two are truly in sync after making the changes you suggest, Chewtobacca.

I plan on using FFmpeg's idet filter for checking the former. The latter can be checked by diffing files containing the begin-shot-change numbers from each source.

A picture is worth a thousand words. Post 102 is worth more.

I’m late to the party, but I think this is the best song. Enjoy!

—Teams Jetrell Fo 1, Jetrell Fo 2, and Jetrell Fo 3

Author
Time

I almost feel like if new frames are found that they should be added and then that would become the gold standard until new frames are found again. The yavin hangar frame for example does exist in the ntsc gout it is just as half a field instead of a full frame. Shouldn't we consider that field/frame to be part of the gout? Does adding this frame back in throw off the audio sync or is the audio sync already off because of the missing field? Anyway, I support whatever is decided upon because it allows the community to come together on one page when doing projects.

Luke threw twice…maybe.

Author
Time

IMO, "pick a reasonably good standard and run with it" is more important than "include every frame".  Part of the reason is laziness, sure, but also trying to avoid the confusion of "which frame reference are we on this week?"  In addition, I don't know for sure, but I suspect we already have more frames in NTSC GOUT than people actually saw theatrically, at the reel changes.

Not that these frames can't be catalogued for other purposes, but the crap we just went through with PAL vs NTSC GOUT, let's not do that again, like, ever.

Project Threepio (Star Wars OOT subtitles)

Author
Time

I'm actually fairly certain the GOUT does have more frames than might normally have been seen.  The reason I say this is that if you listen extremely closely, you can actually hear small jump-cuts in the soundtracks where the audio has been looped, in order to extend it in length.  Such a thing would only have been done if the video ended up being slightly longer than the audio, for the sake of maintaining synch.

Without fail, edits of this type occur each time there is a reel change.  Since it happens about every ten to eleven minutes, these would correspond to the shorter reel lengths of a negative or interpositive, rather than the double length of a theatrical print.  These are the same spots where different video transfers go out of synch with each other.

Most of this had to have been done for the Definitive Collection laserdiscs themselves back in 1993, but the GOUT also has a few additional edits of this nature that the laserdisc tracks do not, though for what reason I'm not sure.  Since there can be so much discrepancy in frame counts between versions, even ones derived from the same master, picking one convenient reference and sticking to it—namely, the NTSC version of the GOUT—is the best way to ensure that audio synch issues are eliminated.  I don't especially like the idea of dropping any frames either, but in practice the differences are small enough not to be noticed when watching, and it is still more complete than a typical 35mm print (ie, the -1 version) would have been.

Author
Time

AntcuFaalb said: I'm thinking about spending some time this weekend doing automated analysis of NTSC and PAL GOUT. I want to make sure we've found all of the unintentionally-interlaced frames and that the two are truly in sync after making the changes you suggest, Chewtobacca.

Good!  I appreciate your taking the time to do this and eagerly await your findings.

Author
Time

For what it's worth, as a "just-in-case" exercise, I synchronized each of the different audio mixes in my LD Audio Archive to the hypothetical versions that include every frame.  I still have the project files and would just need to export the tracks and upload.

However, at this point, I think sticking with NTSC GOUT is the way to go.

If I had some gum, I’d chew a hole into the sun…

Author
Time

hairy_hen said:


Most of this had to have been done for the Definitive Collection laserdiscs themselves back in 1993, but the GOUT also has a few additional edits of this nature that the laserdisc tracks do not, though for what reason I'm not sure.  Since there can be so much discrepancy in frame counts between versions, even ones derived from the same master, picking one convenient reference and sticking to it—namely, the NTSC version of the GOUT—is the best way to ensure that audio synch issues are eliminated.  I don't especially like the idea of dropping any frames either, but in practice the differences are small enough not to be noticed when watching, and it is still more complete than a typical 35mm print (ie, the -1 version) would have been.

 I don't understand what you mean by the GOUT being more complete than the negative one version. Can you explain?

Nobody sang The Bunny Song in years…

Author
Time

The GOUT simply has more frames than the Renegade Grindhouse edition.

Author
Time

Or any other average 35mm release, apparently.

Nobody sang The Bunny Song in years…