View Single Post
Old 1st December 2015, 21:59   #3  |  Link
hello_hello
Registered User
 
Join Date: Mar 2011
Posts: 4,829
Sometimes MediaInfo gets it wrong though, and MeGUI uses MediaInfo to obtain the frame rate. And MeGUI adds frame rate conversion to the script when indexing with ffms2 or opening a video via DirectShow, in which case the timecodes trick won't work because MeGUI will be converting to a constant frame rate by adding or dropping frames. I'm not 100% sure if MeGUI always offers up that warning no matter how the video is being opened.

If it was me I'd first try to get MeGUI to output the "correct" constant frame rate. I'm not sure how doomleox999 is opening the video but if it's via the Script Creator and after indexing with ffmsindex, MeGUI should open the video with frame rate conversion in the script something like this:

LoadPlugin("C:\Program Files\MeGUI\tools\ffms\ffms2.dll")
FFVideoSource("E:\test.mkv", cachefile="D:\test.mkv.ffindex", fpsnum=24000, fpsden=1001, threads=1)

Manually changing the frame rate added to the script will often fix the problem. If it's 30fps like this:

LoadPlugin("C:\Program Files\MeGUI\tools\ffms\ffms2.dll")
FFVideoSource("E:\test.mkv", cachefile="D:\test.mkv.ffindex", fpsnum=30, fpsden=1, threads=1)

If it's 29.970fps, like this:

LoadPlugin("C:\Program Files\MeGUI\tools\ffms\ffms2.dll")
FFVideoSource("E:\test.mkv", cachefile="D:\test.mkv.ffindex", fpsnum=30000, fpsden=1001, threads=1)

I've come across the occasional video that was no doubt originally constant frame rate, but re-encoded as variable frame rate (probably via a GUI such as Handbrake) so repeated frames are only encoded once.... that sort of thing.... in which case converting back to a constant frame rate using the above method tends to work quite well. If it doesn't, generally because the source really is variable frame rate, then using the timescodes as tebasuna51 would be the better way to do it, but index with L-Smash rather than ffmsindex as currently MeGUI doesn't add frame rate conversion to the script when L-Smash is used.

Or use Handbrake/Vidcoder instead. They handle variable frame rate video quite well and can output variable frame rate without a need to mess with timecodes.

Last edited by hello_hello; 1st December 2015 at 22:21.
hello_hello is offline   Reply With Quote