VideoHelp Forum




+ Reply to Thread
Results 1 to 9 of 9
  1. I have a 29.976 video that contains two types of footage.

    - New footage, the interview, shot by studio, etc. (that contains duplicate frames)
    - Old archive footage, musical performance scenes (that contains no duplicate frames)

    If I run
    Code:
    tdecimate(mode=2, rate=24000.0/1001.0, m2PA=true)
    it removes duplicate frames, but adds skips to archive footage. I tried various variations of tdecimate with various modes and hybrid values.

    I end up either with skip frames on archive footage or no skip frames, but with duplicate frames on new footage.

    45 MB 1 minute long sample file
    Quote Quote  
  2. You can't produce a constant frame rate video from a hybrid source like that without dropping or duplicating frames. You would have to produce a variable frame rate video with the film sections at 23.976 fps and the video sections at 29.97 fps.
    Quote Quote  
  3. Which is film section and which is video section? The whole video is constant 29.97, how some of it can be 23.976 with no duplicate frames on constant framerate?
    Quote Quote  
  4. The film sections are those with a duplicate frame every 5th frame -- that's how 23.976 fps was converted to 29.97 fps.

    And the video sections were badly deinterlaced so you can identify them the aliasing artifacts in addition to the lack of duplicates and low resolution.
    Quote Quote  
  5. So there's no way to tell to remove random order duplicate frames throughout video? Entire video has to be constant every 5th duplicate frame to make it work? Like it can't be first 10 seconds every 5th duplicate frame and the rest of video no duplicate frames and run tdecimate or alternative to detect and remove dupes only where they occur randomly?
    Quote Quote  
  6. You could use motion interpolation techniques to convert the 24 fps sections to 30 fps or the 30 fps sections to 24 fps. An example using Interframe():

    Code:
    LWLibavVideoSource("test20170410.mkv")
    AssumeFPS(30000,1001) 
    p1 = trim(0,556).TDecimate() # decimate to 24 fps
    p2 = Trim(557,1408).Interframe(newnum=24000, newden=1001, cores=4) # motion interpolate to 24 fps
    p3 = Trim(1409,0).TDecimate() # decimate to 24 fps
    p1+p2+p3
    But beware, motion interpolation often generates weird artifacts.
    Image Attached Files
    Quote Quote  
  7. Originally Posted by midts View Post
    So there's no way to tell to remove random order duplicate frames throughout video? Entire video has to be constant every 5th duplicate frame to make it work? Like it can't be first 10 seconds every 5th duplicate frame and the rest of video no duplicate frames and run tdecimate or alternative to detect and remove dupes only where they occur randomly?
    Yes, there are ways to remove the duplicate frames. And then you can make a Variable FrameRate (VFR) encode for the MKV container. Check out Modes 3 and 5 in the TDecimate doc. The AviSynth site has a page on it:

    http://avisynth.nl/index.php/VFR

    But I get the impression that's not what you want. Or, after removing the dupe frames using MultiDecimate or DeDup you can assign a framerate, 23.976fps, or 29.97fps, or something in between. And that'll throw off the audio and make at least certain sections play at an unnatural speed. Or you can do as jagabo suggested - create interpolated frames so the whole thing plays more smoothly at 29.97fps.

    What's your intended final format? DVD, or what?
    Quote Quote  
  8. Source is digital, so digital. Setting custom trim points for each scene seems overwhelming especially if its 2h long video with many hybrid scenes.
    Quote Quote  
  9. Originally Posted by midts View Post
    Source is digital, so digital. Setting custom trim points for each scene seems overwhelming especially if its 2h long video with many hybrid scenes.
    What does that mean, "digital", exactly? DVD is digital, but doesn't support timecode based VFR. (23.976 sections run at 23.976 , 29.97 sections run at 29.97 .) VFR is incompatible with some scenarios so it depends on what this is for, and how it's going to be used

    You don't have to manually set custom trim points. You can do "VFR" automatcially with TIVTC or dedup . The timecodes to keep everything in sync will be automatically generated . Or you can interpolate over duplicates automatically with filldrops or one of it's derivatives (conditional filter based motion interpolation, based on threshold) . But you may be left with artifacts in those interpolated frames (interpolation is sometimes good on some frames, but other times it's horrible), and it might miss some or drop wrong ones (based on accuracy of threshold)

    But manually identifying sections means you can filter the sections preferentially as well. For example you might want to "fix" the aliasing (the jaggies) or at least improve it on the badly deinterlaced sections . Pros/cons to whatever route you choose
    Quote Quote  



Similar Threads

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