iantri
3rd February 2006, 18:08
Hello all,
I'm doing my best with what I have left of my family's old 8mm films to convert to DVD -- the originals are lost, and all I have left to work off is some crappy, badly telecined VHS copy.
They appear to have been telecined at approximately 15fps (to 30fps, NTSC) on a spinning prism machine (i.e. it has the appearance of being PeculiarBlended).
Fortunately, out of every 4 fields, 1 field contains a full film frame, with various amounts of blending (presumably as the prism spins) across the next three.
Film Frame 1 2 3
Video Field 1 2 3 4 5 6 7 8 9
blend blend blend blend blend blend
(apologies for the dreadful diagram)
The pattern resets at every new piece of film. The pattern is easy enough to find by doing a SelectEvery for each of the possible patterns and on each of those comparing the difference to the last corresponding field in the previous set of four, for example:
MPEG2Source("C:\temp\homevid.d2v") # working off an earlier version archived to DVD until I can recap the VHS
KernelBob(order=1)
a = SelectEvery(4,0).ScriptClip("Subtitle(String(YDifferenceFromPrevious))")
b = SelectEvery(4,1).ScriptClip("Subtitle(String(YDifferenceFromPrevious))")
c = SelectEvery(4,2).ScriptClip("Subtitle(String(YDifferenceFromPrevious))")
d = SelectEvery(4,3).ScriptClip("Subtitle(String(YDifferenceFromPrevious))")
ab = StackHorizontal(a,b)
cd = StackHorizontal(c,d)
return StackVertical(ab,cd)
the blurred fields have more similarity in each set to the last one in the previous set -- therefore, the most different field is reliably the field with a complete film frame.
I'm pretty sure it's programatically possible to take advantage of this to return the best field out of 4 automatically, giving me a 15fps clip, but i can't for the life of me figure out how ScriptClip works or how to do it.
Can anyone help?
Thanks
I'm doing my best with what I have left of my family's old 8mm films to convert to DVD -- the originals are lost, and all I have left to work off is some crappy, badly telecined VHS copy.
They appear to have been telecined at approximately 15fps (to 30fps, NTSC) on a spinning prism machine (i.e. it has the appearance of being PeculiarBlended).
Fortunately, out of every 4 fields, 1 field contains a full film frame, with various amounts of blending (presumably as the prism spins) across the next three.
Film Frame 1 2 3
Video Field 1 2 3 4 5 6 7 8 9
blend blend blend blend blend blend
(apologies for the dreadful diagram)
The pattern resets at every new piece of film. The pattern is easy enough to find by doing a SelectEvery for each of the possible patterns and on each of those comparing the difference to the last corresponding field in the previous set of four, for example:
MPEG2Source("C:\temp\homevid.d2v") # working off an earlier version archived to DVD until I can recap the VHS
KernelBob(order=1)
a = SelectEvery(4,0).ScriptClip("Subtitle(String(YDifferenceFromPrevious))")
b = SelectEvery(4,1).ScriptClip("Subtitle(String(YDifferenceFromPrevious))")
c = SelectEvery(4,2).ScriptClip("Subtitle(String(YDifferenceFromPrevious))")
d = SelectEvery(4,3).ScriptClip("Subtitle(String(YDifferenceFromPrevious))")
ab = StackHorizontal(a,b)
cd = StackHorizontal(c,d)
return StackVertical(ab,cd)
the blurred fields have more similarity in each set to the last one in the previous set -- therefore, the most different field is reliably the field with a complete film frame.
I'm pretty sure it's programatically possible to take advantage of this to return the best field out of 4 automatically, giving me a 15fps clip, but i can't for the life of me figure out how ScriptClip works or how to do it.
Can anyone help?
Thanks