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?
+ Reply to Thread
Results 1 to 6 of 6
-
-
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).
-
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. -
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. -
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. -
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.
Similar Threads
-
How to change 30 fps to 29.97 fps ?
By pchan in forum Video ConversionReplies: 5Last Post: 9th Feb 2012, 18:57 -
How to change MKV from 50 fps to 25 fps skipping every second frame?
By andreyyshore in forum EditingReplies: 11Last Post: 5th Feb 2011, 14:09 -
how to change fps in mp4 without reencode (maybe ps3 cannot handle 24 fps)?
By redout66 in forum Newbie / General discussionsReplies: 1Last Post: 14th Sep 2010, 04:53 -
Change FPS of subtitle
By anirban in forum Newbie / General discussionsReplies: 3Last Post: 7th Jun 2010, 14:33 -
Change FPS
By maza1967 in forum Video Streaming DownloadingReplies: 8Last Post: 9th Mar 2010, 18:52