need help properly getting this back to film speed (for making an avi). Seems to be 29.97 fps progressive, has duplicate frames at different intervals and simple decimating wont get rid of all of them. Srestore (18) doesnt yield correct results either. Thanks for any help.
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 21 of 21
Thread
-
-
Some sources say that silent film rates could be anywhere from as little as 14 fps to as high as 26 fps. Figuring out what value you need to use is beyond my ability, but I've got a feeling that if the actual frame rate is less than 24 fps that you're going to have at least minor issues in everything you do.
-
Build an index file with DgIndex in Honor Pulldown Flags mode. Then:
Code:Mpeg2Source("silent clp.d2v") TDecimate(cycle=10, cycler=3)
-
Anonymous344Guest
As I understand it, what you have to do is count how many duplicates there are every thirty frames. I counted nine, which matches what jagabo's script is doing: deleting three frames (cycler=3) out of every ten frames (cycle=10), which is the same as deleting nine out of every thirty. Twenty-one frames remain, and 21000/1001 is 20.98.
-
It rarely works out that way. Maybe in this case it did (I haven't checked the sample). What you have to do is count until you find a repeating cycle, and those cycles can be up to hundreds of frames long although usually less. You usually apply TFM (although apparently this thing was progressive) and start counting the unique frame/duplicate frame pattern. And sometimes there isn't even a repeating cycle in which case you approximate, leaving a duplicate here and there (better than having missing frames).
-
Anonymous344Guest
Thanks for the explanation. It's very helpful. I did try adding TFM first, but it didn't make a difference because, as you said, the video's progressive.
-
I wondered how jagabo came up with that. Also the 21 fps seems peculiar...at first the pattern was each 6th frame had a dupe, but then it turned into each 7th, then each 8th.
Anyway, there are discrete sections of the film with different patterns, so I'll be back. For example, one segment is 29.97 progressive with blends, no dupes, but since this is silent (a slower fps), I thought just using Srestore("fps") would work. Didnt get good results trying various fps (16-24); maybe it's good as it is. -
A better understanding of the process involved in the making/digitizing of this clip would help in the choosing of the appropriate process for the correction of it...
For example, if we know it was a constant-rate projector fed to a multi-prism device and then to a video camera, we'd know that there shouldn't be an actual progressive lengthening of duplicates.
Scott -
no way to find out the capture details; it's possible some of the segments were digitized by another person. The majority of the film should be by one person, so I'm hoping they were consistent with their technique.
-
here's another clip from different segment, 29.97 progressive, with a blend every 4th frame out of 5 frames.
Last edited by spiritgumm; 3rd Dec 2014 at 19:27.
-
the clip above was originally telecined, with a blend as the 4th frame, and 5th frame is the good duplicate. Using decimate removes the good frame, whereas I'd like to remove the blend.
I tried Srestore(omode=2) to remove the blended frame, but got peculiar pattern of duplicate frames. -
Anonymous344Guest
I think that the blend shifts from the fifth to the fourth frame partway through the sequence. Have you considered writing a script that breaks the video into sections and removes the duplicates manually? Some consider this approach too much work (and with good reason), but I resort to it when I have a problematic video and am not prepared live with any compromises.
-
Yes, the blend pattern changes here and there so a fixed frame removal with SelectEvery(5, 0,1,2,3) breaks after a while. SRestore(frate=25) didn't work very well. I suspect the flicker was confusing it so deflickering first might help. FixBlendIVTC().TDecimate(cycle=10, cycleR=2) gave pretty smooth results but it caused bright spots, even with sbd=true.
-
I tried alot of variations with different filters including FixBlendIVTC. Got similar visual problems when replacing blends by combining fields. The changing pattern of blends happens too frequently to do this manually (for me).
One good thing came out of trying to deblend this. I was IVTCing some dvd recordings made from vhs which had alot of blends, using the usual "TFM.TDecimate," but found "Bob.Srestore(23.976)" works much better.Last edited by spiritgumm; 14th Dec 2014 at 10:58.
-
You could do it semi-manually like this:
Code:Mpeg2Source("2silent clp.d2v") v0 = SelectEvery(5, 1,2,3,4).Subtitle("v0") # frame 0 removed v1 = SelectEvery(5, 0,2,3,4).Subtitle("v1") # frame 1 removed v2 = SelectEvery(5, 0,1,3,4).Subtitle("v2") # frame 2 removed v3 = SelectEvery(5, 0,1,2,4).Subtitle("v3") # frame 3 removed v4 = SelectEvery(5, 0,1,2,3).Subtitle("v4") # frame 4 removed last = v0 ReplaceFramesSimple(v4, Mappings="[0 72]") ReplaceFramesSimple(v1, Mappings="[73 167]") ReplaceFramesSimple(v0, Mappings="[168 191]") #continue with more ReplaceFramesSimple() Stackvertical(StackHorizontal(last, v0, v1), StackHorizontal(v2, v3, v4)) ShowFrameNumber(x=40, y=20)
-
Anonymous344Guest
Ha! I was thinking about writing a script like jagabo's. It's in the spirit of ShowFiveVersions().
-
It's conceptually pretty simple. First it creates 5 different videos, one where frame 4 of every 5 frames is removed, one where frame 3 of every 5 is removed... one where frame 0 of every 5 is remove. For any section of the movie one of those 5 decimated videos will have 4 clean frames (no blended frames).
Next ReplaceFramesSimple() selects which of the 5 videos to use for each section of the movie. Ie, the first ReplaceFramesSimple() says to use v4 for frames 0 to 72. The next one says to use v1 for frames 73 to 167. Then v0 for frames 168 191 (the default is to use v0 so that line isn't really needed).
Finally, the output video (last) and the 5 decimated videos are stacked in a 3x2 array, all labeled (so you know which is which) and the frame number is stamped onto the top left video (as a reference). You open the video in an editor like VirtualDub and figure out which of the 5 decimated videos has no blended frames at each section of the movie and add a new ReplaceFramesSimple() to select those frames for the final output.
Once you have added enough ReplaceFramesSimple() to account for the entire movie you go back and remove the stacking, frame number, and subtitle instructions and encode.
It will still take quite a while to go through the entire movie but this is about the easiest way since the fully automated methods don't work.