VideoHelp Forum




+ Reply to Thread
Results 1 to 15 of 15
  1. Member
    Join Date
    Dec 2008
    Location
    Armenia
    Search Comp PM
    Hi. I have a camcorder which records AVCHD 25i (PAL) videos. Occasionally I want to convert my 25i footages to 24p.

    Is there any method or any tool to help me do this? Regular methods (like applying various deinterlacing algorithms) didnt do the trick for me. Result is always disappointing... Converted videos have broken motion and it seems that they have some dropped frames.

    I want 24p footages with nice and smooth motion. Is it possible?
    Quote Quote  
  2. 25i has 50 different half-picture per second. So converting to 24p will give noticeably less smootn motion. Most converters will deinterlace (poorly) to 25p then throw away one frame every second. About the best conversion to 24p will be to use AviSynth's QTGMC (the best deinterlacer) to bob to 50p, throw away half the frames (25p), then slow the video down to 24p. Then you'll just be left with the inherent jerkiness of 24p. You'll have to adjust the audio (25p to 24p) too.

    WhateverSource()
    QTGMC()
    SelectEven()
    AssumeFPS(23.976)
    Quote Quote  
  3. Member
    Join Date
    Dec 2008
    Location
    Armenia
    Search Comp PM
    I know that I can't have the same smooth motion look as 25i or 50p and I don't expect it. I meant I want nice and smooth motion in my new 24p footage, as a normal 24p footage can have.

    Anyway... I tried QTGMC, but it doesn't support YUV, and besides, it is super slow! My converters somehow freeze at the beginning of converting (1080i AVCHD videos) and during the converting, convert speed is terrible (~1 fps). This is the script:

    Code:
    DirectShowSource(<My 1080i AVCHD .m2ts video>)
    Trim(0, 250)
    ConvertToYV12()
    ConvertAudioTo16bit()
    QTGMC()
    SelectEven()
    AssumeFPS(23.976, true)
    Last edited by maxeemo; 10th Feb 2011 at 07:53.
    Quote Quote  
  4. Originally Posted by maxeemo View Post
    Anyway... I tried QTGMC, but it doesn't support YUV,
    It doesn't support YUY2. It does support YV12. Your conversion to YV12 should include "interlaced=true") so as not to mess up the chroma channels.

    Originally Posted by maxeemo View Post
    and besides, it is super slow!
    Yes. You can try the faster presets. If it's still to slow try Yadif() instead. It's not as good a deinterlacer but it's faster. If you use mode=0 (the default) you don't need to SelectEven() afterward.

    Originally Posted by maxeemo View Post
    My converters somehow freeze at the beginning of convertion (1080i AVCHD videos).
    Probably a DirectShow problem. You could try DSS2() or ffVideoSource(). Also try ignoring the audio:

    DirectShowSource("filename.ext", audio=false)
    Quote Quote  
  5. Originally Posted by jagabo View Post
    Originally Posted by maxeemo View Post
    Anyway... I tried QTGMC, but it doesn't support YUV,
    It doesn't support YUY2.
    Actually, there is a version of QTGMC that does support YUY2 , but it's even slower
    http://forum.doom9.org/showthread.php?p=1472215#post1472215


    It hasn't made it into the official release yet, but -Vit- said he would add it eventually
    Quote Quote  
  6. Member
    Join Date
    Dec 2008
    Location
    Armenia
    Search Comp PM
    Thank guys.

    With FFVideoSource() there is no need to call ConvertToYV12(), and it seems that it is better than DirectShowSource() to handle AVCHD files. The only problem is that FFmpegSource detects wrong fps which can be ignored by sending fpsnum parameter.

    I also tried MCBob and MVBob deinterlacers. All of them (QTGMC, MCBob and MVBob) are awesome in quality, killing in render speed. Good stuffs are always expensive!

    Now about motion smoothness...

    The motion is still broken. Is there any way to blend* all two successive frames together to obtain a smoother motion?
    I mean somehow bob the 25i footage to 50p and then blend (or something like that) each two successive frames together to get the new 25p footage.

    * Something like simulating the twice exposure time! A 25i camcorder has a 20ms exposure time for each field and a 25p camcorder has a 40ms exposure time for each frame.

    Code:
    Script A
    
    25iSource("...")
    BobTo50p()
    SelectEven()
    AssumeFPS(23.976)
    and

    Code:
    Script B
    
    25iSource("...")
    BobTo50p()
    MixFrames(2)
    AssumeFPS(23.976)
    In script A actually we will "lose" the "half of motion flow". Script B would give a smoother and more acceptable result. Is this possible? Simulating a longer exposure time by reference to more frames?!
    Last edited by maxeemo; 14th Feb 2011 at 20:19.
    Quote Quote  
  7. Member edDV's Avatar
    Join Date
    Mar 2004
    Location
    Northern California, USA
    Search Comp PM
    There is no direct math conversion of 25i to 24p or to 29.97i/p. It must be done by new frame interpolation which is slow and lossy. That is unless you run the frames in 96% slow motion.
    Recommends: Kiva.org - Loans that change lives.
    http://www.kiva.org/about
    Quote Quote  
  8. Originally Posted by maxeemo View Post
    Is there any way to blend* all two successive frames together to obtain a smoother motion?
    I mean somehow bob the 25i footage to 50p and then blend (or something like that) each two successive frames together to get the new 25p footage.
    Code:
    Script B
    
    25iSource("...")
    BobTo50p()
    MixFrames(2)
    AssumeFPS(23.976)
    Something like this is what you're asking for:

    25iSource("...")
    Blur(0, 1.0) #blurs the two fields together
    Sharpen(0, 0.7) #restores some of the sharpness
    AssumeFPS(23.976)
    With small motions it will look like motion blur but when motions get large it will look like double exposures. In my opinion 3:2 pulldown judder is is preferable to this type of blurring. Play around with the sharpen() value until you're happy with it. Too little and the video will be obviously blurred vertically. Too much and you'll get over sharpening halos.
    Last edited by jagabo; 14th Feb 2011 at 22:15.
    Quote Quote  
  9. Member Cornucopia's Avatar
    Join Date
    Oct 2001
    Location
    Deep in the Heart of Texas
    Search PM
    Maybe
    Code:
    25iSource("...")
    Weave()
    AssumeFPS(23.976)
    Is more like what you're wanting...

    Scott
    Quote Quote  
  10. Member
    Join Date
    Jul 2009
    Location
    Spain
    Search Comp PM
    Originally Posted by Cornucopia View Post
    Code:
    25iSource("...")
    Weave()
    AssumeFPS(23.976)
    Not at all - that will produce double-height output, shown at almost double speed (12.5fps shown at 23.976).

    jagabo's solution (with its caveats) is the way to go.
    Quote Quote  
  11. Originally Posted by Cornucopia View Post
    Code:
    25iSource("...")
    Weave()
    AssumeFPS(23.976)
    Every decoder I know outputs interlaced video as pairs of fields woven into frames. So that script won't work at all. You'll just get an error message saying Weave() only works with field based material. If you add AssumeFieldBased() before Weave() you'll get double high frames with four fields per frame at half speed (12.5 fps), which will then be assumed as 23.976 fps so it will play nearly twice normal speed, as Gavino points out.
    Quote Quote  
  12. Member Cornucopia's Avatar
    Join Date
    Oct 2001
    Location
    Deep in the Heart of Texas
    Search PM
    Maybe I should have said "50iSource()", because 25i is a misnomer (which I didn't start). But it should work.

    Interlaced PAL (and NTSC) material IS 1/2 height (288 in this case), so doubling the height will restore it to it's EXPECTED (576) height).
    You shouldn't need "AssumeFieldBased()", since it actually IS, but if you want to put that in, OK.
    There won't be 4 fields.

    If you've got 50i (which is what PAL really is), you've got 288 lines for field1 of frame1 and 288 lines for field2 of frame1, and on and on.
    Weave() just takes these 2 separate fields and folds them together into a single co-temporal frame, so it's 25p instead of 50i. The 25p MAY exhibit mice teeth on motion scenes, but otherwise might look real clear. "Assume 23.976" then slows it down from 25p to 24p.

    Scott
    Quote Quote  
  13. Originally Posted by Cornucopia View Post
    Interlaced PAL (and NTSC) material IS 1/2 height (288 in this case)
    Every decoder I know of outputs interlaced fields as woven frames. So your 50 field per second PAL video is delivered to AviSynth as 25 interlaced frames per second.
    Quote Quote  
  14. Member
    Join Date
    Dec 2008
    Location
    Armenia
    Search Comp PM
    Originally Posted by jagabo View Post
    Something like this is what you're asking for:

    25iSource("...")
    Blur(0, 1.0) #blurs the two fields together
    Sharpen(0, 0.7) #restores some of the sharpness
    AssumeFPS(23.976)
    With small motions it will look like motion blur but when motions get large it will look like double exposures. In my opinion 3:2 pulldown judder is is preferable to this type of blurring. Play around with the sharpen() value until you're happy with it. Too little and the video will be obviously blurred vertically. Too much and you'll get over sharpening halos.
    This code produces a result same as what Sony Vegas produces by "Blend Fields" deinterlacing method. As you pointed, it's annoying to watch the rendered videos with large motions.

    Anyway... Thank everybody for help.

    I've studied a little bit about cathode ray tubes and image-producing technologies such as interlacing images, raster scanning and etc, but I still don't understand why deinterlacing becomes so complicated on progressive systems!...
    Last edited by maxeemo; 19th Feb 2011 at 05:51.
    Quote Quote  
  15. Originally Posted by maxeemo View Post
    Originally Posted by jagabo View Post
    Something like this is what you're asking for:

    25iSource("...")
    Blur(0, 1.0) #blurs the two fields together
    Sharpen(0, 0.7) #restores some of the sharpness
    AssumeFPS(23.976)
    With small motions it will look like motion blur but when motions get large it will look like double exposures. In my opinion 3:2 pulldown judder is is preferable to this type of blurring. Play around with the sharpen() value until you're happy with it. Too little and the video will be obviously blurred vertically. Too much and you'll get over sharpening halos.
    This code produces a result same as what Sony Vegas produces by "Blend Fields" deinterlacing method.
    Yes. And the same as VirtualDub's and many other programs' blend deinterlace. The Sharpen() probably makes it a little sharper than Vegas' blend. Compare shots with sharp horizontal lines or edges.
    Last edited by jagabo; 19th Feb 2011 at 06:40.
    Quote Quote  



Similar Threads

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