View Single Post
Old 2008-10-18, 19:04   Link #216
Nicholi
King of Hosers
 
Join Date: Dec 2005
Age: 41
Quote:
Originally Posted by Emess View Post
I did not use TheFluff's script actually. What I did was write a shell script to take each block of timecodes and create a trim function for them to even out the framerate without it going all jumpy like using DirectShowSource+ConvertFPS would have done. It looks like my shell-fu is a bit fail and went and split it up for every single frame, I should probably have checked that more closely. You're probably right about too many functions though.
Ahh that's basically what his perl script did, resulted in far too many Trim's . So yeah... this is just another krayzie MP4 file, unless all those sections in the video really are 30fps? The one I had was just a perfect example that jpn cappers that had no clue what IVTC is, it only decimated "full motion" sections so it had tons of 24/30 fps zones. The 20fps ones would round off with an equal number of 30fps frames (1/20 = 0.05s and 1/30 = 0.033s. Add them together and get 0.083s (0.041s * 2), two 24fps frames. They can be ignored for the most part.

Since you are at least knowledgeable in the ways of the shell, you could modify your script slightly in order to make this a bit more workable. Instead of trimming out the odd frames you could instead Trim them together (as it would do in a v2->v1 conversion) and run AssumeFPS(theirfps).ConvertFPS(targetfps). The only problem would occur in the 1 frame sections, which I am not sure if ConvertFPS will properly handle them by themselves. However you could just have your script combine it with 1 frame from the nearest group of its complement framerate to make something else, which is either 24fps or will convert to just fine. Like one 20fps frame with one 30fps frame automatically make two 24fps frames, no work needed. Also one 15fps frame and one 30fps frame make three 30fps frames. That way your shell script would spit something out like

Code:
AssumeFPS(23.976)

main = last
main.Trim(0,236).AssumeFPS(29.970).ConvertFPS(23.976) + main.Trim(298,300) + main.Trim(301,306).AssumeFPS(29.970).ConvertFPS(23.976) + main.Trim(307,370) + main.Trim(371,372).AssumeFPS(29.970).ConvertFPS(23.976) + ...
Hopefully it won't result in too many statements for AviSynth then...but it still might . Only other real solutions for getting this to CFR is DSS("blah.mp4",fps=23.976,convertfps=true). Otherwise as I said before, find a better raw .

And for every idiot that keeps mentioning DecombVFR...thats for making VFR content. In other words taking CFR, something like DVD input, and getting out VFR (vfrac and a timecodes file). Not going from VFR to CFR.
Nicholi is offline   Reply With Quote