VideoHelp Forum




+ Reply to Thread
Results 1 to 11 of 11
  1. So I have a HDTV avi (1264x720, 59.941fps) which I want to convert to DVD. But the problem I have is the framerate of the source.

    So my question is how do I get the 59.941fps to 29.976fps??

    Any way to do it with VirtualDub? or just TMPGENC? Or do I have to fix up some Avisynth script?
    Quote Quote  
  2. Are you sure the source you have is progressive and not interlaced?
    Quote Quote  
  3. Member
    Join Date
    Sep 2002
    Location
    South Africa
    Search Comp PM
    In virtualDub,
    Video->Frame Rate, select Decimate by 2
    Now your frame rate is 29.97

    Video ->Filters, Add Resize
    Resize to 720x480
    Might need to do some letterboxing to get the right aspect ratio

    Now you have a 720x480 (29.97fps) video,
    either make an avi and convert to MPG2
    or frameserve directly to an MPEG Encoder

    I'm sure one can create an AVISynth script which does exactly the same, really easily.
    Quote Quote  
  4. Hi-

    I'm sure one can create an AVISynth script which does exactly the same, really easily.

    SelectEven()
    Crop(0,5,1264,710)
    LanczosResize(704,480)
    AddBorders(8,0,8,0)

    Crop, Resize, and AddBorders from FitCD with ITU resizing and 16:9 encoding.

    However, this assumes the original frame rate is really 29.97fps, which it may not be. Might have to Decimate further, otherwise if there are more duplicate frames, it'll play jerky.
    Quote Quote  
  5. Try this:

    Code:
    # Converts 1920x1080i to 720x480i anamorphic
    function v720x480i(v)
    {
    	v=bob(v)
    	v=v.BilinearResize(720,480)
    	#v=v.SeparateFields.SelectEvery(4,0,3)#Undo bob (BFF)
    	v=v.SeparateFields.SelectEvery(4,1,2)#Undo bob (TFF)
    	v=converttoyuy2(v)
    	v=weave(v)
    
    	return v 
    }
    I use it to convert 1920x1080i, but it should work the same on 1264x720, 59.941fps. The main difference is whether or not your source is interlaced. The output will definately be interlaced. If your source is progressive, then leave out bob. I use converttoyuy2 to counter some color bleeding between fields in interlaced content. So you can remove that too if your source is progressive.

    If you want your output to be progressive 30p, you can try this one:
    Code:
    # Converts 1920x1080i to 720x480p at 30 fps
    function v720x480p30(v)
    {
    	v=bob(v)
    	v=AssumeFrameBased(v)
    	v=v.BilinearResize(720,480)
    	v=SelectEven(v)
    
    	return v
    }
    Again, if your source progressive, you can leave out bob and assumeframebased.

    Lastly, if your source is 4:3 (ie, it has black bars on the left and right sides), you will need to use the crop command. I am not sure how much to crop though. I think the size before bilinearresize would be 960x720.


    Darryl
    Quote Quote  
  6. Thank you all so much for your replies.

    The source is actually progressive.

    I did a test using VirtualDub for the job. I used the decimate by 2 then cropped and resized to letterbox. Then I frameserved it to TMPGENC. The output seemed to play pretty normally but it looked like the video was playing maybe just a little jerky. So I tried something else with VDub. Instead the decimate by 2 in the frame rate conversion window I tried the "convert to fps:" option and put in 23.976. Then frameserved to TMPGENC and encoded with 3:2pulldown. And I dunno if i'm just paranoid but it was like the video played smoother than when it was decimated by 2.

    So I think it might be like manono said:
    However, this assumes the original frame rate is really 29.97fps, which it may not be. Might have to Decimate further, otherwise if there are more duplicate frames, it'll play jerky.
    Quote Quote  
  7. Ok I was wrong. The convert to fps option where I tried setting 23.97 completely messed up the output. Noticed after I encoded the whole file. Sometimes it plays normally sometimes VERY jerky.

    But the 29.97 seems to play quite nicely now.

    But I was wondering.. if the original frame rate is actually 23.97.. I would like to try and convert it to that to see if it possibly plays any smoother.

    So how would I do that? How to get 59.941fps to 23.976?
    Quote Quote  
  8. Hi-

    I was wondering when you said that Convert to FPS worked if you were sure about that. It "dumbly" drops the frames in a preset and consistent pattern. I figured that if it was really working, that the pattern stayed the same all the way through, and you lucked out. Guess not. So it plays nice and smooth for awhile, and then the pattern changes for a bit, probably at a scene change, and it plays jerky for a bit.

    There are countless ways to get it to 23.976fps. Here are 3:

    SelectEven()
    Decimate()

    and:

    TDecimate(Mode=0,CycleR=36,Cycle=60)

    or:

    SelectEven()
    TDecimate(Mode=0,CycleR=6,Cycle=30)

    Decimate is part of the Decomb IVTC package. You load the Decomb Plugin at the top of the .avs like so:

    LoadPlugin("C:\Path\To\Decomb.dll")

    TDecimate is part of the TIVTC package and the TIVTC.dll is loaded similarly. You get Decomb here:

    http://neuron2.net/decomb/decombnew.html

    and the newest TIVTC here:

    http://forum.doom9.org/showthread.php?p=544121#post544121

    During those pattern changes, you may go more than 5 frames without a duplicate to drop, in which case Decimate may drop a unique frame. In such cases, TDecimate, while slower, may be more accurate. To confirm that 23.976fps is the correct framerate, you might open the 29.97fps MPV or M2V in something where you can advance a frame at a time (VDubMod, Media Player Classic, etc.) and check to confirm that you still have one duplicate in every 5 frame cycle. And there's always the chance that, in order to fit into a time slot, the movie (if that's what it is) was shortened by dropping duplicate frames here and there. If that's true (let's hope not), while you're not screwed, it'll be much more difficult to get it just right.
    Quote Quote  
  9. I did like you said and checked the 29.97 mpg2 output.. And it was just like you said, a duplicate frame in every 5 frame cycle.

    I tried this one:
    SelectEven()
    Decimate()

    ..And it worked just fine. Now the output plays smoothly as possible and no more those duplicate frames. Might still give that TDecimate a try too though, if it really does the job even better.

    Thank you so much for all the help 8)

    -Glebix
    Quote Quote  
  10. I'm glad it finally worked out for you.

    Duplicate frames are much more difficult to spot than are missing frames. It's to your credit that you realized that 29.97fps wasn't the correct framerate by the slight stutter in the playback. The easiest way to spot such things is to find a scene where the camera pans, or moves from right to left, or left to right. As the camera moves, it's much easier to spot the slight stutter in what's supposed to be smooth camera movement. Thanks for reporting back, and good luck.
    Quote Quote  
  11. Member edDV's Avatar
    Join Date
    Mar 2004
    Location
    Northern California, USA
    Search Comp PM
    If it's any help, 23.976 fps film to 720p59.94 follows the same 2:3 frame repeat sequence as a progressive DVD player* to get to 59.94 frames per second. Just reverse it to get back to 23.976 and scale to 720x480.

    720p59.94 camera generated sports video can be decemated by 2 to get to 720p29.97 and then scaled to 720x480.

    *half of the 24 frames are repeated twice and alternatly half are repeated three times to increase 24 fps to 60 fps.

    e.g. The frame sequence would look something like this

    aabbbccdddeefffgghhh

    A decimate by 2 would create a jerky 29.97 sequence like this

    a_b_b_c_d_e_f_f_g_h_

    Applying an IVTC to that will scramble fields even more.
    Recommends: Kiva.org - Loans that change lives.
    http://www.kiva.org/about
    Quote Quote  



Similar Threads

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