VideoHelp Forum




+ Reply to Thread
Results 1 to 6 of 6
  1. Member
    Join Date
    Apr 2006
    Location
    United States
    Search Comp PM
    Hi forum, I have a question about Avifrate.

    I have an avi file that is 24.000 fps second. When I try to change the fps value in Avifrate to 23.976 or 29.970, only the numbers in front of the decimal are saved and all numbers behind the decimal are changed to zero. I am fairly new to avifrate and I have seen this on a number of different sources with fps such as 24, 20, 25 etc etc.

    Ex:If I enter 23.976, the fps becomes 23.000.

    Any idea on what I could be doing wrong or are there certain AVI files that will not work?
    Quote Quote  
  2. The frame rate in an AVI file is derived from two integer values, a numerator (rate) and a denominator (scale). To get a rate like 23.976 you need to input two values like 23976 and 1000 (23976/1000 = 23.976), or 24000 and 1001 (24000/1001 ~= 23.976).
    Quote Quote  
  3. Member
    Join Date
    Apr 2006
    Location
    United States
    Search Comp PM
    Nevermind fellas.

    Upon further investigation, I think I figured out what the problem is.

    For the AVI in question and 3 others with similar issues, it seems like I need to use the original AVI file with sound. As opposed to what I normally do, which is open up the AVI file in ViruatlDubMod, remove the audio, save it via direct stream copy and then modify that version in Avifrate.

    Seems, when I do that, I get the trailing zeros but if I modify the original copy with sound via Avifrate, it changes the fps to what I specified.

    If that makes sense.

    - Mike G.
    Quote Quote  
  4. Since the frame rate is calculated from two integers the denominator must be big enough to generate the desired number of digits after the decimal point. If the denomintor (scale) is 1 then you can only set integer frame rates (any integer divided by 1 gives you that integer).

    AVIFrate is a quirky little program. From what I can see it lets you put in whatever value you want as the scale. When you input an fps value it automatically generates a corresponding integer rate value (rate = fps * scale). If you type in a rate value it calculates an fps value (fps = rate / scale) out to three decimal places then recalculates the rate (rate = fps * scale).

    The problem with this is that the floating point to integer conversion he uses simply drops everything to the right of the decimal point. So if you input 1001 as the scale, and 24000 as the rate it will calculate the fps as 23.976, then recalculate the rate as 23.976 * 1001 = 23999.976. It then converts that to an integer and replace the 24000 you typed in with 23999. The difference is small (amounting to about 1/3 second over a 2 hour movie) but should have been avoided.
    Quote Quote  
  5. Member
    Join Date
    Apr 2006
    Location
    United States
    Search Comp PM
    Hey Jagabo, thanks for your help. I actually just ran across an AVI that still wouldn't let me modify the FPS, even if it was the original file with sound.

    I used your method and presto!!, it worked.

    - Mike G.
    Quote Quote  
  6. Note that the fps value isn't saved in the AVI file, only the Rate and Scale values. The player will calculate the fps from the Rate and Scale values when it opens the AVI.
    Quote Quote  



Similar Threads

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