I have screen shake in my NTSC 29.97 fps interlaced MPEG2 video. I am using the following script to clean it up and fix the screen shake. I need to mention SeparateFields() SelectEvery(4,0,3) Weave() twice otherwise the frame rate will be doubled but that caused the encoding speed to go from 14 fps to under 1 fps!
Is there a 1 line alternative I could use instead of twice using SeparateFields() SelectEvery(4,0,3) Weave()? At the moment if I just mention SeparateFields() SelectEvery(4,0,3) Weave() once then the frame rate is 59.94 fps but I want it to be 29.97.
Is there a 1 line alternative I could use instead of twice using SeparateFields() SelectEvery(4,0,3) Weave()? At the moment if I just mention SeparateFields() SelectEvery(4,0,3) Weave() once then the frame rate is 59.94 fps but I want it to be 29.97.
Code:
If I do this it encodes quickly but takes twice as long as it's encoding at double the normal frame rate. However if I add the commented line then sit encodes at the correct bitrate but only
encodes at 1 fps
setmtmode(5,9)
Mpeg2Source("E:\Video.d2v", CPU=6)
setmtmode(2)
McTemporalDenoise(settings="medium", interlaced=true)
Load_Stdcall_plugin("C:\Program Files (x86)\AviSynth 2.5\plugins\yadif.dll")
AssumeTFF() Yadif(mode=1, order=1) mdata = DePanEstimate(dxmax=0) Vinverse() DePanStabilize(last, data=mdata, initzoom=1.05, dxmax=0, dymax=4)
SeparateFields() SelectEvery(4,0,3) Weave()
AssumeTFF()
QTGMC(Preset="Super Fast") # Removes interlacing artefacts.
Vinverse() RemoveSpots() AddGrainC(var=1.0,uvar=1.0) SeparateFields() SelectEvery(4,0,3) Weave()
Tweak(Hue=0, Sat=0.8, Bright=-0, Cont=1.0, Coring=False)
Crop(0,0,-2,-8) # Bottom 8 pixels crop is required even if you don't have anything to crop to prevent the bottom of the picture moving up and down
AddBorders(8,4,10,4)