Rollbots.
RestoreFPS(24.000/1.001, 0.0) works rather well on it, unfortunately someone must have invented a filter that prevents the blending from occurring on frames separated by a scene change...
Should I bother asking or should I just stay silent and forever hold my peace?
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays!
+ Reply to Thread
Results 1 to 8 of 8
Thread
-
-
There's no way to unblend without getting the blending at scene changes. You would have to go through and fix them all manually. I do.
Actually, there is a way that Didee came up with years ago, but it often freezes other frames that aren't at real scene changes. If the setting is low enough not to create duplicates where you don't want them, it doesn't undo all the blending. Too high and you'll get clean scene changes (mostly) but a ton of duplicate frames elsewhere. It creates FreezeFrames on both sides of the scene change at all scene changes, whether blended or not. It needs RemoveDirt.dll and you apply it after the unblending. Experiment with dfactor numbers between 2.0 and 5.0:
A=Last
prev = A.selectevery(1,-1)
next = A.selectevery(1,1)
SCclean = A.SCSelect(next,prev,A,dfactor=2.0) # 2.0 ~ 5.0
return(SCclean) # return(restore) for NO scenechange cleanup
Do you have the same problem to the same degree when using a bobber followed by SRestore to unblend? -
It's true progressive (and flagged/encoded as such), true 24p (ie. NO 12p etc. sections). I don't see how SRestore would help.
Like scene-by-scene cropping, I wouldn't mind doing it manually, it's just it's a painful process and I haven't found a tool that would actually help make the process easier (ie intelligent scenecut seeking, "copy frame number" shortcut), rather than harder. -
Sorry, I forgot RestoreFPS was meant for progressive and blended sources and not interlaced and field-blended sources. How about a sample then?
I still think, though, you'll either need that script (I gave up on using it as it freezeframes both sides of the scene change, blended or not) or fix all the blends manually. -
I tried cropping videos scene by scene but constructing scripts line by line while fighting VirtualDub for framenumbers wore me down.
A nice GUI that would let me apply Avisynth filters on a hierarchical scene by scene basis would be nice. I don't know if one exist, but I'm pretty sure anyone capable of writing one either has better things to do or would want to get paid for it.
Sample: -
You got that unblended except for scene changes? I'm impressed! I never could figure out how to make RestoreFPS work properly.
I don't know if this will be of any help to you or not. I call it FreezeFrameMC. It serves two purposes; the first is to cut down on all the typing when using FreezeFrame, the second to lessen the 'stutter' when using FreezeFrame by interpolating a frame. jagabo and I are responsible for it and it uses Gavino's FixBadFrames as the interpolator.
It needs MVTools2.dll, RemapFrames.dll, and this FreezeFramesMC.avs.
#FreezeFrame(clip clip, int first-frame, int last-frame, int source-frame)
### This function FreezeFrames 2 or 3 frames either before or after a scene change
### Then one appropriate frame will be interpolated to get rid of the slight 'stutter'
### duplicate frames might create. The interpolater is Gavino's 'FixBadFRames' filter,
### included here. Required are MVTools2.dll, RemapFrames.dll, and the FreezeFrameMC.avs.
### Much thanks go out to jagabo at videohelp.com who pointed me in the right direction
### when I immediately got stuck (having never written a function before).
function FixBadFrames(clip c, string frames) {
# Replace each frame from a list of 'bad' frames by using MFlowInter to interpolate
# between the nearest pair of 'good' frames
c
sup = MSuper()
bv = MAnalyse(sup, isb=true, delta=2)
fv = MAnalyse(sup, isb=false, delta=2)
candidates = MFlowInter(sup, bv, fv, time=50.0, ml=100).DuplicateFrame(0)
ReplaceFramesSimple(candidates, mappings=frames)
}
#Usage FixBadFrames("34 64 96")
###Freezes the two frames before a scene change and then interpolates the first of the two
function FFB1(clip Source, int N)
{
FreezeFrame(Source, N-1,N,N-1)
FixBadFrames(String(N-1))
}
###Freezes the two frames after a scene change and then interpolates the second of the two
function FFA1(clip Source, int N)
{
FreezeFrame(Source, N,N+1,N+1)
FixBadFrames(String(N+1))
}
###Freezes the three frames before a scene change and then interpolates the first of the three
function FFB2(clip Source, int N)
{
FreezeFrame(Source, N-2,N,N-2)
FixBadFrames(String(N-2))
}
###Freezes the three frames after a scene change and then interpolates the third of the three
function FFA2(clip Source, int N)
{
FreezeFrame(Source, N,N+2,N+2)
FixBadFrames(String(N+2))
}
###Freezes the four frames before a scene change and then interpolates the fourth of the four
function FFB3(clip Source, int N)
{
FreezeFrame(Source, N-3,N,N-3)
FixBadFrames(String(N-3))
}
###Freezes the four frames after a scene change and then interpolates the fourth of the four
function FFA3(clip Source, int N)
{
FreezeFrame(Source, N,N+3,N+3)
FixBadFrames(String(N+3))
}
You use it like so:
FFB1(364)
This freezeframes frame number 364 which is just Before the scene change
FFA1(364)
This freezeframes frame number 364 which is just After the scene change.
You'll probably use it just once for the blended frame before or after the scene change but you can also use it for up to three frames before and after the scene change (FFB1/FFA1/FFB2/FFA2/FFB3/FFA3).
When doing my 'restoration' work I use template scripts and when planning on using FreezeFrameMC I have a whole bunch of:
#FF()
#FF()
#FF()
#FF()
.
.
.
in the script to make it easier. I uncomment them as I need them and fill in what's needed. After doing a few there's more copy and pasting going on with only the frame numbers needing to be added. -
It helped that it worked at default settings.
http://avisynth.nl/index.php/RestoreFPS
I'm pretty sure the { Trim(0,-1).Loop(0,1000) } part of the help script isn't supposed to be there, but it turned out to be useless anyway. I wrote my own script to find the correct phase, but the best turned out to be the default anyway.
It wasn't perfect, but other than scene changes it was a hell of a lot better than the way it is on the DVD. I have to take the effect of MPEG2 compression artefacts and whatever other filters they applied into consideration so I'm not expecting miracles.
RestoreFPS does screw up several frames to either side of a scene change, it subtracts the interpolated frames from the original frames so if you screw up one interpolation it effects several to either side.
I'll see what I can do. -
There might be some macros in avspmod that might help e.g. import bookmarks from file (run your scenechange detection eg. scxvid) , import trims from bookmarks . At least in avspmod, you can quickly navigate by bookmarks and verify if the auto scenechange detection was correct (and fix if necessary) . There might be a way to do it with rfs ( the newer remapframes), IIRC there are some rfs macros
Similar Threads
-
Frame rate change after conversion
By camaysar in forum Newbie / General discussionsReplies: 2Last Post: 22nd Sep 2014, 01:43 -
how to change frame rate to 29.97?
By muffinman123 in forum Video ConversionReplies: 9Last Post: 1st Dec 2013, 10:48 -
How to change Frame rate?????
By Choey in forum Video ConversionReplies: 9Last Post: 29th Jun 2013, 01:23 -
Change frame rate?
By cincilator in forum EditingReplies: 6Last Post: 15th Oct 2012, 13:45 -
how to change frame rate on staxrip?
By VistaXP in forum Video ConversionReplies: 6Last Post: 6th Apr 2011, 14:13