VideoHelp Forum
+ Reply to Thread
Results 1 to 19 of 19
Thread
  1. Member
    Join Date
    Feb 2021
    Location
    Los Angeles
    Search Comp PM
    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.

    Best,

    Martin
    Image Attached Files
    Quote Quote  
  2. aBigMeanie aedipuss's Avatar
    Join Date
    Oct 2005
    Location
    666th portal
    Search Comp PM
    so you're looking to convert the uploaded 29.97p to 25p? you guys sucked at the conversion in the first place.

    Image
    [Attachment 57468 - Click to enlarge]



    really might be too late.
    --
    "a lot of people are better dead" - prisoner KSC2-303
    Quote Quote  
  3. Member
    Join Date
    Feb 2021
    Location
    Los Angeles
    Search Comp PM
    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.
    Quote Quote  
  4. Member Cornucopia's Avatar
    Join Date
    Oct 2001
    Location
    Deep in the Heart of Texas
    Search PM
    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.


    Scott
    Quote Quote  
  5. aBigMeanie aedipuss's Avatar
    Join Date
    Oct 2005
    Location
    666th portal
    Search Comp PM
    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.

    Image
    [Attachment 57470 - Click to enlarge]
    --
    "a lot of people are better dead" - prisoner KSC2-303
    Quote Quote  
  6. Member
    Join Date
    Feb 2021
    Location
    Los Angeles
    Search Comp PM
    Originally Posted by Cornucopia View Post
    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.


    Scott
    Yes, that was exactly the reason why the spark got developed in the first place, so that the audio did not have to be retimed. This was a solution from Method studios back in the days for high end Music video clients, that did not wanted to mess with the audio timing, since artists were really sensible to any speed change from their audio source. We tried to do the .5 percent audio pulldown for a bunch of times and the artists didn't wanted to have it, hence they developed this technology at Method and a ton of post places floated that spark around in order to be able to deliver files without audio squeezing.

    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.
    Quote Quote  
  7. Member
    Join Date
    Feb 2021
    Location
    Los Angeles
    Search Comp PM
    Originally Posted by aedipuss View Post
    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.

    Image
    [Attachment 57470 - Click to enlarge]
    well, just by inverting the pattern, basically field merging every 5th frame. It is a pattern, as simple as it used to be put in and when the plug in was around it was of course reversible within seconds, it just applied the reverse order to combine the 2fields within the sequence to a progressive frame. Actually simple, just that there is no simple software around that has the option to not only do an inverse 3:2 pulldown, but also a 4:2 one.

    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.

    Thanks
    Quote Quote  
  8. aBigMeanie aedipuss's Avatar
    Join Date
    Oct 2005
    Location
    666th portal
    Search Comp PM
    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
    Quote Quote  
  9. 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.
    Code:
    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()
    or if the end is swapped like this, it only deinterlaces problematic frame:
    Code:
    clip5new = havsfunc.QTGMC(clip5new, TFF=True)[::2]
    out = core.std.Interleave([clip1,clip2,clip3,clip4,clip5new])
    out.set_output()
    Image Attached Files
    Last edited by _Al_; 21st Feb 2021 at 02:04.
    Quote Quote  
  10. 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
    Code:
    #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

    Code:
    LSmashVideoSource("DruHill_42_Test_1.mov")
    AssumeBFF()
    TDeint(mode=0, order=0, field=0, tryweave=true)
    TDecimate(cycler=1, cycle=6)
    You can use a different deinteracer by specifying edeint , or use override (the field of one blend pair is sometimes cleaner, but it changes, sometimes top, sometimes bottom)

    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

    Code:
    TFM(pp=0)
    TDecimate(cycle=6, cycler=1)
    Quote Quote  
  11. Member Cornucopia's Avatar
    Join Date
    Oct 2001
    Location
    Deep in the Heart of Texas
    Search PM
    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.

    Scott
    Quote Quote  
  12. I ignored the minor amount of blending:

    TFM().TDecimate(Cycle=6,CycleR=1)

    (As pdr suggested a few minutes earlier)
    Image Attached Files
    Quote Quote  
  13. aBigMeanie aedipuss's Avatar
    Join Date
    Oct 2005
    Location
    666th portal
    Search Comp PM
    Originally Posted by manono View Post
    I ignored the minor amount of blending:

    TFM().TDecimate(Cycle=6,CycleR=1)

    (As pdr suggested a few minutes earlier)


    but there's no audio to check sync. and it has problems, as you can't frame forward the vid.
    --
    "a lot of people are better dead" - prisoner KSC2-303
    Quote Quote  
  14. Originally Posted by aedipuss View Post


    but there's no audio to check sync. and it has problems, as you can't frame forward the vid.
    Here "script.mov"

    1.avs
    Code:
    LSmashVideoSource("DruHill_42_Test_1.mov")
    assumebff()
    tdeint(mode=0, order=0, field=0, tryweave=true)
    tdecimate(cycler=1, cycle=6)
    assumefps(25)


    Code:
    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
    Image Attached Files
    Quote Quote  
  15. Member
    Join Date
    Feb 2021
    Location
    Los Angeles
    Search Comp PM
    Oh wow,

    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.

    Best,

    Martin
    Quote Quote  
  16. Originally Posted by aedipuss View Post
    but there's no audio to check sync.
    IVTCs don't change the length so the audio remains in synch.
    ... and it has problems, as you can't frame forward the vid.
    I have no problem at all pausing and advancing a frame at a time. Using MPC-HC. Click the video to pause and then CTRL/-> to advance. I did another one I like better, but as AI mentioned, the opening is screwy. Plus there are a lot of frame jumps. I assume they were intentional.

    Yadifmod(mode=1, edeint=nnedi3(field=-2))
    BlendBob()
    TDecimate(cycle=6,cycler=1)
    Crop(0,2,0,-4)
    Image Attached Files
    Quote Quote  
  17. Member
    Join Date
    Feb 2021
    Location
    Los Angeles
    Search Comp PM
    Hi Manono,

    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.
    Image Attached Thumbnails Click image for larger version

Name:	AviSynth_script_working.JPG
Views:	26
Size:	228.5 KB
ID:	57483  

    Click image for larger version

Name:	AviSynth_script_not_working.JPG
Views:	30
Size:	140.6 KB
ID:	57484  

    Quote Quote  
  18. Hi,

    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:

    LoadPlugin("H:\AVISynth\dlls\BlendBob.dll")

    AVS and AVSI filters can be loaded in the script explicitly with an import line:

    Import("H:\AVISynth\plugins\QTGMC.avsi")

    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.
    Quote Quote  
  19. Member
    Join Date
    Feb 2021
    Location
    Los Angeles
    Search Comp PM
    Hi Manono,

    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.

    Best,

    Martin
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!