Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 3rd July 2016, 16:04   #1  |  Link
Reignendt
Registered User
 
Join Date: Jun 2016
Posts: 1
Help needed with avs to make smooth video!

Hello!

I am trying to encode a smooth looking video with only 24 or 25 frames per second, using a 60 frames per second source. I saw this video (https://youtu.be/jfwInyBIgQY) and thought it looked really smooth for only 30 fps, and all it took was some motion blur. In the video description the creator mentioned that the same avs script as a guy named Ross Scott was used, wich you could get from his DVD. This DVD however is no longer available for purchase, nor could I find the script anywhere else. When I tried to replicate the youtube video creators result, with a similar recording I made myself, I used the example code from the mvtools2 documentation.
Code:
superblur = MSuper(pel=2)
bv_blur = MAnalyse(superblur, isb = true, truemotion=true)
fv_blur = MAnalyse(superblur, isb = false, truemotion=true)
MFlowBlur(superblur, bv_blur, fv_blur, blur=15, prec=1)
It worked very well for camera panning, but I am not sure if first person movement worked as well as with the youtube video. If anyone has suggestions for code lines that works better with first person videos such as this, please share.

I then moved on to try it with 25 frames per second, instead of 30 frames per second that I used in my earlier experiment, wich of course did not give me the smooth looking video I was looking for, but better then it does without motion blur. I then thought of interpolation, so I once again tried an example code from mvtools2 documentation.
Code:
super = MSuper()
backward_vectors = MAnalyse(super, isb = true, delta=2)
forward_vectors = MAnalyse(super, isb = false, delta=2)
inter = MFlowInter(super, backward_vectors, forward_vectors, time=50, ml=70)
# Assume bad frames are 50 and 60
trim(0,49) ++ inter.trim(49,-1) \
 ++ trim(51,59) ++ inter.trim(59,-1) ++ trim(61,0)
I am not sure how much it helped. I am also pretty sure I am not using this correctly. It has a comment that says "Assume bad frames are 50 and 60", and I am not sure I know what that means.
I later noticed that a function called MBlockFps, wich is used for changing the fps, also do motion compensation, and also do interpolated pictures. So I thought this might work better than ChangeFPS, wich I had been using earlier, but I can not get it to work.

I am going to post my avs script here, and hope that I can get some help getting the best possible result. Thank you, in advance!

Code:
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\mvtools2.dll") 

clip = AviSource("D:\Media\Inspelningar\inmatning2.avi").ConvertToYV12

# ChangeFPS(clip, 25)
superfps = MSuper(pel=2)
bv_fps = MAnalyse(super, isb = true, truemotion=true)
fv_fps = MAnalyse(super, isb = false, truemotion=true)
MBlockFps (clip, superfps, bv_fps, fv_fps, 25, 1, 0, 0, blend=false) # I have no Idea how to get this working
Spline64Resize(1280, 720)

# super = MSuper()
# backward_vectors = MAnalyse(super, isb = true, delta=2)
# forward_vectors = MAnalyse(super, isb = false, delta=2)
# inter = MFlowInter(super, backward_vectors, forward_vectors, time=50, ml=70)
 # Assume bad frames are 50 and 60 # what does this mean?
# trim(0,49) ++ inter.trim(49,-1) \
#  ++ trim(51,59) ++ inter.trim(59,-1) ++ trim(61,0)

superblur = MSuper(pel=2)
bv_blur = MAnalyse(superblur, isb = true, truemotion=true)
fv_blur = MAnalyse(superblur, isb = false, truemotion=true)
MFlowBlur(superblur, bv_blur, fv_blur, blur=15, prec=1)

FadeIn(13)
FadeOut(13)
(Update 28/11/2016)

A while ago I found Ross Scott's method for motion blur:
Code:
LoadPlugin("C:\Program Files (x86)\AviSynth\plugins\mvtools2.dll") 
avisource("D:\Media\Inspelningar\inmatning.avi").assumeFPS(180).ConvertToYV12(matrix="Rec709", chromaresample="spline16")
super=MSuper()
backward_vectors = MAnalyse(super, isb = true)
forward_vectors = MAnalyse(super, isb = false)
MFlowBlur(super, backward_vectors, forward_vectors, blur=100).TemporalSoften(1,255,255,50,2).selectevery(6,1)
I tried it, and it actually works great. Only problem is that I need source material with 180+ fps to get good results. Otherwise motion blur ghosting will apppear. But this is easier said than done. The capture software I have come across only support 120 fps recording. Ross Scott however does not record his videos in real time. He makes his videos in the source enginge, wich he uses to save a replay, and then play it back in engine with low speed. So fraps records at 60 fps, but he actually gets 180 fps when sped up.

I however want to record at least 180 fps in realtime, wich would not have been a problem for me would it not be for fraps capture limit.
I see SVP tests all the time when people convert 24p material into 60p material. Would it be a crazy idea to interpolate frames to then use them for the purpose of motion blur? I have mentioned interpolation before, but I never had any success with it. If someone could help me to get it working I would be most grateful.

Last edited by Reignendt; 28th November 2016 at 23:12. Reason: Update
Reignendt is offline   Reply With Quote
Reply

Tags
avs, blur, interpolation, motion, mvtools

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 18:48.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.