Whats the smoothest way to convert a 60fps video to 30fps
Page 2 of 2 Goto page Previous  1, 2
LeoNatan
☢ NFOHump Despot ☢



Posts: 73256
Location: Ramat HaSharon, Israel 🇮🇱
PostPosted: Thu, 18th Jul 2013 20:44    Post subject:
It evens out if you divide by two. If you insert 30 manually, it does not. I work with Avisynth primarily, so I like to input the framerates I want manually.
Back to top
paxsali
Banned



Posts: 18352

PostPosted: Thu, 18th Jul 2013 21:25    Post subject:
⁢⁢


Last edited by paxsali on Thu, 4th Jul 2024 22:06; edited 1 time in total
Back to top
LeoNatan
☢ NFOHump Despot ☢



Posts: 73256
Location: Ramat HaSharon, Israel 🇮🇱
PostPosted: Thu, 18th Jul 2013 21:27    Post subject:
Back to top
LeoNatan
☢ NFOHump Despot ☢



Posts: 73256
Location: Ramat HaSharon, Israel 🇮🇱
PostPosted: Thu, 18th Jul 2013 22:23    Post subject:
Back to top
Shocktrooper




Posts: 4581

PostPosted: Thu, 18th Jul 2013 23:06    Post subject:
They all suck Laughing
TASBlend is the smoothest, I guess. Hard to see any differences.

The pixelmotion of Tekken is not much different than just using motion blur imo.
I made one that is slightly smoother when viewed side-by-side:
Distortion is heavier, the gain in smoothness is minimal
And both are still total stinkers compared to the 60fps original.

http://www58.zippyshare.com/v/9336470/file.html

There is also a super slomo sample included that shows what pixel motion does exactly.

edit: I noticed adding some sharpen also helps in reducing blur a bit while retaining the fluency.
this is a quick (too) sharp re-encode of it, no audio
http://www71.zippyshare.com/v/27839154/file.html
Back to top
paxsali
Banned



Posts: 18352

PostPosted: Fri, 19th Jul 2013 00:10    Post subject:
⁢⁢


Last edited by paxsali on Thu, 4th Jul 2024 22:06; edited 1 time in total
Back to top
paxsali
Banned



Posts: 18352

PostPosted: Fri, 19th Jul 2013 00:14    Post subject:
⁢⁢


Last edited by paxsali on Thu, 4th Jul 2024 22:06; edited 1 time in total
Back to top
LeoNatan
☢ NFOHump Despot ☢



Posts: 73256
Location: Ramat HaSharon, Israel 🇮🇱
PostPosted: Fri, 19th Jul 2013 00:22    Post subject:
I will now run the same script on your video.

I looked actually for a 1080p 60fps free video on the internet but didn't find a good sample. The problem I see with your video is a large lack of detail.
Back to top
LeoNatan
☢ NFOHump Despot ☢



Posts: 73256
Location: Ramat HaSharon, Israel 🇮🇱
PostPosted: Fri, 19th Jul 2013 00:38    Post subject:
BTW, the AviSynth script I concocted:

Code:
function TASBlend(clip c, float "ratio" )  {
        # reduces framerate to 1/2 but leaves flicker effects partly visible
        # blends frame pairs with alternating opacity (default is 2/3+1/3;1/3+2/3)
        # optional "ratio" is the opacity of the first frame out of the four
        ratio   = default( ratio, 2.0/3 )
        opacity = round( ratio * 257 )

   # Blend flicker to half-rate
        c.SelectEvery( 4, 1,0,2,3 )
        blend = Layer( SelectEven(), SelectOdd(), level=opacity )

   # Determine flicker is a simplistic way - compare each pixel with the previous and next two frames
        Similar2   = 1 # How similar current pixel must be to the same pixel 2 frames forwards and backwards
        Different1 = 8 # How different current pixel must be from the same pixel 1 frame forwards and backwards
        maskf2 = Overlay( c, c.SelectEvery(1, 2), mode="difference", pc_range=true ).Greyscale().Levels( 128+Similar2,  1.0,129+Similar2,   0,255, false ).Invert()
        maskf1 = Overlay( c, c.SelectEvery(1, 1), mode="difference", pc_range=true ).Greyscale().Levels( 128+Different1,1.0,129+Different1, 0,255, false )
        maskb1 = Overlay( c, c.SelectEvery(1,-1), mode="difference", pc_range=true ).Greyscale().Levels( 128+Different1,1.0,129+Different1, 0,255, false )
        maskb2 = Overlay( c, c.SelectEvery(1,-2), mode="difference", pc_range=true ).Greyscale().Levels( 128+Similar2,  1.0,129+Similar2,   0,255, false ).Invert()
        maskf = Overlay( maskf1, maskf2, mode="multiply", pc_range=true )
        maskb = Overlay( maskb1, maskb2, mode="multiply", pc_range=true )
        mask  = Overlay( maskf,  maskb,  mode="multiply", pc_range=true ).SelectEven()

   # Only use blend where detected flicker
        Layer( c.SelectEven(), blend.Mask(mask) )
}

c1 = DirectShowSource("TTT2-60fps-original.mp4", audio = false).AssumeFPS(60).ConvertToYUY2()

super = c1.MSuper(pel=4)
backward_vec = MAnalyse(super, isb = true, blksize=4, blksizeV=4)
forward_vec = MAnalyse(super, isb = false, blksize=4, blksizeV=4)
c2 = MFlowFps(c1, super, backward_vec, forward_vec, num=30, den=1, ml=900).Subtitle("c2_1: MFlowFps", align=8).ChangeFPS(60)

c3 = c1.selectevery(2,1).Subtitle("c3_1: selectevery(2,1)", align=8).ChangeFPS(60)

c4 = TASBlend(c1.ConvertToRGB32, 0.5).ChangeFPS(60).ConvertToYUY2().Subtitle("c4_1: TASBlend")

c1 = c1.Subtitle("Original", align = 8)

StackVertical(StackHorizontal(c1, c1, c1), StackHorizontal(c2, c3, c4))
ConvertToYV12()


This is for the composite video. For the individuals, I disabled the unnecessary portions of the script and removed the "ChangeFPS(60)" so you can see the videos in their 30fps form.

TASBlend is from the internets.
Back to top
paxsali
Banned



Posts: 18352

PostPosted: Fri, 19th Jul 2013 00:43    Post subject:
⁢⁢


Last edited by paxsali on Thu, 4th Jul 2024 22:06; edited 2 times in total
Back to top
LeoNatan
☢ NFOHump Despot ☢



Posts: 73256
Location: Ramat HaSharon, Israel 🇮🇱
PostPosted: Fri, 19th Jul 2013 00:48    Post subject:
I actually took the sample videos from that page exactly! Laughing

See script above. I don't remember the exact AviSynth version, but it's one of the MT versions from Doom9 from a few months ago. I didn't bother with MT in this script.

I think all that is needed for the above script to compile is MVTools2.
Back to top
paxsali
Banned



Posts: 18352

PostPosted: Fri, 19th Jul 2013 00:55    Post subject:
⁢⁢


Last edited by paxsali on Thu, 4th Jul 2024 22:06; edited 1 time in total
Back to top
Shocktrooper




Posts: 4581

PostPosted: Fri, 19th Jul 2013 01:01    Post subject:
paxsali wrote:
Shocktrooper wrote:
They all suck Laughing


Yes, both of your examples suck.

Your 30fps example doesnt look half as good as the one from me (Ae with Pixel Motion).
In fact, how did you create your 30fps example?

By simply pausing you can clearly see a blend of two different frames, and not only on high-motion areas.


Of course its blended (+twixtor blur), thats part of what creates the illusion for the brain that its smoother.
Can't do anything about the blends when there is medium-motion, AE does not have an intelligent blend algorithm that detects only high-motion areas.

You can see him having multiple legs here:

Frame:

Next Frame:



Yours:

Next Frame:


Mine retains the distorted ghosts of frames that are completely absent in your footage.
Yours is just motion blurred, even though this is a high-motion section of the video.


Last edited by Shocktrooper on Fri, 19th Jul 2013 01:21; edited 1 time in total
Back to top
LeoNatan
☢ NFOHump Despot ☢



Posts: 73256
Location: Ramat HaSharon, Israel 🇮🇱
PostPosted: Fri, 19th Jul 2013 01:04    Post subject:
No sorry, that's just a looped gif I found on the internets. Smile

Back to top
paxsali
Banned



Posts: 18352

PostPosted: Fri, 19th Jul 2013 01:14    Post subject:
⁢⁢


Last edited by paxsali on Thu, 4th Jul 2024 22:06; edited 1 time in total
Back to top
LeoNatan
☢ NFOHump Despot ☢



Posts: 73256
Location: Ramat HaSharon, Israel 🇮🇱
PostPosted: Fri, 19th Jul 2013 01:16    Post subject:
I am uploading now. Should be done soon, it's 160MB archive.

If you'd like that kick specifically in 600fps using MFlowFps, put the frame numbers here (start and end), and I'll encode.
Back to top
paxsali
Banned



Posts: 18352

PostPosted: Fri, 19th Jul 2013 01:17    Post subject:
⁢⁢


Last edited by paxsali on Thu, 4th Jul 2024 22:06; edited 3 times in total
Back to top
LeoNatan
☢ NFOHump Despot ☢



Posts: 73256
Location: Ramat HaSharon, Israel 🇮🇱
PostPosted: Fri, 19th Jul 2013 01:30    Post subject:
Back to top
paxsali
Banned



Posts: 18352

PostPosted: Fri, 19th Jul 2013 01:46    Post subject:
⁢⁢


Last edited by paxsali on Thu, 4th Jul 2024 22:06; edited 1 time in total
Back to top
LeoNatan
☢ NFOHump Despot ☢



Posts: 73256
Location: Ramat HaSharon, Israel 🇮🇱
PostPosted: Fri, 19th Jul 2013 01:55    Post subject:
Hmm, I subtracted c2-c3 and c4-c3 and there is a difference:



I used:

Code:
a = DirectShowSource("c2_1.mkv")
b = DirectShowSource("c3_1.mkv")
c = DirectShowSource("c4_1.mkv")

StackVertical(Overlay(a, b, mode="Subtract", pc_range=true), Overlay(c, b, mode="Subtract", pc_range=true))
Back to top
Page 2 of 2 All times are GMT + 1 Hour
NFOHump.com Forum Index - Applications Goto page Previous  1, 2
Signature/Avatar nuking: none (can be changed in your profile)  


Display posts from previous:   

Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB 2.0.8 © 2001, 2002 phpBB Group