Hello to the community,
I have a couple of old videos which i want to make progressive and upscale in order to update our archive library and am running into a slight problem with the pulldown removal. The good news is that we did the pulldown about 12 years ago ourselves, so we know the pattern and that it is consistent, but the plugin that we used to add this odd pulldown with, is now not working anymore, so we can't reverse it in an easy way. To explain more in detail :
We made some music-videos back in the day and finished them in PAL, since they had a ton of single frame edits and with full progressive frames it was just easier to handle in the editorial back in the days. Once we were all finished with full progressive 25fps master video, we then applied this genius little spark plugin that existed in Flame and was written to bring 25fps material into 29.97, by splitting every 4th and 5th frame into fields, so adding an extra frame every 4 frames. It worked perfect and was able to add this pulldown to the entire spot, as well as removing it perfectly when inverting the effect. But now this little spark is no more and we can't invert any of our old clips and bringing them back to the regular progressive PAL master.
Is there anyone out here who could help us and knows about any software or method to actually remove this 4 frame , two fields pattern??
I have of course sample files if someone has the time and wants to look into this.
Any help or push into the right direction would be much appreciated.
Thanks so much for your time.
+ Reply to Thread
Results 1 to 19 of 19
Haha, not sure why we sucked at the conversion, since it was the only way to bring 25fps footage to 29.97 accurately and was back in the days reversible, so very flexible. All other hardware based conversions, just scrambled fields randomly all over the place, so this used to be the cleanest way of doing it back then, but was only possible if you had a flame system to run the spark.
Now this is obviously all obsolete and there is no more need to have anything field based, but I was hoping that there is a software out there that can simply combine two fields every 4ths frame back into one full frame. Not sure if that exists, but I am hoping to find one should out there to help with this
Thanks for looking at it anyway.
No it wasn't (the only way). Avisynth has been available for about 2 decades now (so was certainly available 12 years ago when you did this), and could easily do the conversion using best practices method (for 25i to 29.97i): framerate speedup with accompanying timesqueeze of the audio. No change to the cadence of the frames at all, and fully reverseable.
lol. it's crap. you have 4 de-interlaced/progressive frames followed by 2 frames of blended fields throughout. someone sold you a bill of goods. unless you still have the source material i don't see it getting fixed.
[Attachment 57470 - Click to enlarge]--
"a lot of people are better dead" - prisoner KSC2-303
I know it sounds crazy, but that was just the demand of the industry back then. I remember there was also the kaleidoscope solution which took your source video into a hardware scrambler and added such a random amount of fields and was absolutely not reversible, but that one was used as well.
Anyway, thanks for looking, we are just getting somewhere here with virtual dub and a mix of decimator and avisynth scripts to get this stupid pattern reversed.
Not sure why you would think that someone sold us a bill of goods, when literally every high end postproduction in Hollywood was running flames with this spark on them.
how about trying to treat the audio and video separately? if you still have the source it shouldn't be too hard with current editing software. an occasional repeated video frame won't be noticed by most viewers. unlike the blended crap that's in there now.--
"a lot of people are better dead" - prisoner KSC2-303
there is a pattern though. I had to cut 5 frames from the beginning to start with first frame that starts the pattern. Looks like orig was 24fps. EDIT, sorry, 25fps.
import vapoursynth as vs from vapoursynth import core import havsfunc source_path="DruHill_42_Test_1.mov" clip = core.lsmas.LWLibavSource(source_path) clip=clip[5:] #cut first 5 frames clip1 = clip[0::6] clip2 = clip[1::6] clip3 = clip[2::6] clip4 = clip[3::6] clip5 = clip[4::6] clip6 = clip[5::6] clip5 = clip5.std.SetFrameProp(prop="_FieldBased", intval=2) clip5f = clip5.std.SeparateFields()[::2] clip6 = clip6.std.SetFrameProp(prop="_FieldBased", intval=1) clip6f = clip6.std.SeparateFields()[::2] clip5new_int= core.std.Interleave([clip5f,clip6f]) clip5new = core.std.DoubleWeave(clip5new_int, tff=True)[::2] out = core.std.Interleave([clip1,clip2,clip3,clip4,clip5new]) out = havsfunc.QTGMC(out, TFF=True)[::2] out.set_output()
clip5new = havsfunc.QTGMC(clip5new, TFF=True)[::2] out = core.std.Interleave([clip1,clip2,clip3,clip4,clip5new]) out.set_output()
Last edited by _Al_; 21st Feb 2021 at 02:04.
But that sample you uploaded wasn't a clean conversion - so it cannot be reversed 100% cleanly because the combed frames have field blending. ie. the original field pairs were not preserved - they were blended or some post effects like motion blur were added after pulldown. You can see this clearly if you examine the individual fields.
That method converting 25p to 29.97i is 100% reversible, keeping the same timing, if it was done properly without the field blending and if you kept the original fields.
In avisynth it would look like this
#25p source ChangeFPS(60000,1001) AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave()
To salvage what you have , I would use a conditional deinterlacer that weaves progressive frames , keeping the quality, but deinterlaces the 2 combed frames, then decimate 1 in 6
LSmashVideoSource("DruHill_42_Test_1.mov") AssumeBFF() TDeint(mode=0, order=0, field=0, tryweave=true) TDecimate(cycler=1, cycle=6)
But if you had a clean transfer, or someone didn't mess it up, you shouldn't need to deinterlace at all, it would have been reversible with full quality progressive frames
TFM(pp=0) TDecimate(cycle=6, cycler=1)
As a sound engineer and musician, I understand their reluctance to do time squeezes on the audio, even those that do pitch correction. It certainly wasn't as advanced as it is now.
But having done animation, it would have driven me crazy using such a motion-juddering cadence in the visual, as yours seems to have done.
Was going to suggest Avisynth would be best at fixing this but looks like _AL_ beat me to it.
I ignored the minor amount of blending:
(As pdr suggested a few minutes earlier)
"a lot of people are better dead" - prisoner KSC2-303
LSmashVideoSource("DruHill_42_Test_1.mov") assumebff() tdeint(mode=0, order=0, field=0, tryweave=true) tdecimate(cycler=1, cycle=6) assumefps(25)
ffmpeg -i 1.avs -i "DruHill_42_Test_1.mov" -map 0:0 -map 1:1 -c:v prores -profile:v 1 -c:a copy script.mov
Here is a demo, that shows the "reversibility" of a proper conversion
The "original" is "25p.mp4", 720x576, 25p, 240frames. It is resized progressively to 720x480 and converted to "29.97i.mp4" using the script in the earlier post
Then "reversed" using the reversal script above to generate "recover.mp4"
All frames are original progressive quality (other than the downscale), ie. nothing is deinterlaced or degraded (it's easy to see because of the graphics and edges), and all 240 original frames there at 25p
The creation step is analgous to placing a 25p native asset (it has to be interpreted as progressive), on a 29.97i timeline in a NLE and exporting that as 720x480i29.97. You don't need shake or anything special. Any old NLE could do that... But a NLE cannot reassemble the fields by field matching and decimation - but avisynth was around back then too...
It's actually not "rare"; a quite a few BBC programs are converted this way . It's less common that the slowdown method, but for music oriented programs it's still used
these look perfect. Thanks so much AI and PDR for your input. You are exactly right, this is exactly the 4:2 pattern that we used to insert into our film based PAL clips. The last sample that PDR showed with the sample clips explains it perfectly.
So now, how did you guys reverse the cadence? I can see your scripts, but not sure where or how to run them. We downloaded already Videodub2 and started playing with the available scripts and plugins for it, but had no luck yet with automated decomb filters, since it isn't as perfect and clean as reversing the original cadence.
So it looks like that AI uses "Vapoursynth" for his script, so I will download and look into that.
And then PDR, it looks like you used AviSynth for your script, yes? I started looking into that one as well, but it looks like a longer and deeper install
Or would we maybe be able to run these scripts in videodub2 is they are saved as .avs files and then loaded into Videodub2?
Im gonna have a play and see if we can figure it out and get back with questions, if we can't figure it out.
But again, thanks so much for the help and figuring this out so quick. Amazing community over here - I am glad we stumbled across the forum.
... and it has problems, as you can't frame forward the vid.
thanks so much for your quick Test. In the meantime I downloaded and installed AviSynth and got the scripts from PDR to work and look really good (pretty much perfect) on our whole 4 min long video. I can't believe that we did not hear about the AviSynth editor earlier, would have saved us a lot of headaches.
Anyway, i just tried to run your script and it gives me errors on the Yadifmod plugin line (See image below). I downloaded the latest Yadifmod version 2.6 and installed it in the avisynth 64+ folder, but it seems to have issues. Any idea what could cause this? Also I couldn't find the Blendbob script. All download links seems to be dead. Is there any other script that could do that?
Thanks again for your help.
The message tells you the problem. Many filters and script portions need other filters to work. In this case, you need NNEDI3. I often use YadifMod as a bobber as it's much faster than QTGMC and nearly as good. BlendBob is another DLL. Lots of popular AviSynth filters aren't actually built into AviSynth as they were developed by third-party developers. So, you have to download them separately to use them. Ordinarily, you put them in the AviSynth Plugins folder and they're loaded automatically. Otherwise you can load them in the script with a LoadPlugin line pointing to where it's found:
AVS and AVSI filters can be loaded in the script explicitly with an import line:
And many filters need other filters to work. If they have an AviSynth page of their own, it should say. It's maddening. AVSI, like DLLs, are supposed to load automatically if in the Plugins folder. The AVS ones can be renamed as AVSI.
If you can't find something, ask. We can either point you to where it can be found, or upload it here for you to get.
Then there's the 32 bit 64 bit issue. You should have all 32 bit or all 64 bit. AviSynth, VDub (VDub2), and filters. I'm still on 32 bit so what I've just said may or may not work for you.
Last edited by manono; 21st Feb 2021 at 02:51.
thanks for the explanation, that all makes sense, but yes, very cumbersome and time consuming to go through all the troubleshooting. I did get your script to works somewhat, but the BlendBob script is indeed 32bit, so it would not work in my x64 avisynth installation. I tried it with the internal bob script and got the script to run, but it shows really strange colored pixels throughout the frame, so something must be off or incompatible. But its all good, the other scripts from PDR worked like a charm and got me same result as the test you provided, by just tweaking one small parameter.
I will use this little helper tool on the rest of our clips and am glad this was such an easy fix and is working perfect now.
Thanks everyone for all their help and time, really great to see that this community can help out so quick and efficient.