Jump to content

MPV Smoothmotion


mark235

Recommended Posts

Is it correct that the Interpolation option in Emby Theaters video settings currently applies 3:2 Pulldown? If yes, would it be possible to add the Smoothmotion option described here: https://github.com/mpv-player/mpv/wiki/Interpolation

 

I realize I can get this option when using madVR in Emby Theatre, but my system unfortunately isn't fast enough for that. 

 

Emby Theater keeps getting better with every release, thanks for all the hard work and extensive support on these forums

Link to comment
Share on other sites

Thanks guys! I gave it a go this morning but unfortunately the option doesn't seem to do anything? I switched back to MPC-HC as external player with MadVR and smoothmotion enabled, and there it clearly was active. (For some reason, MadVR in MPC-HC is fine for my low powered NUC, but MadVR in Emby is a no go.) 

 

Emby Theater has one change in my setup to make HW acceleration work properly: https://emby.media/community/index.php?/topic/50181-stutter-issue-with-software-cause/?p=483016

Not sure if that could be influencing the outcome?

Link to comment
Share on other sites

I undid the Hardware Acceleration change, but since that introduces stutter, I don't know if the oversample option is now working.

Link to comment
Share on other sites

daedalus

Thanks guys! I gave it a go this morning but unfortunately the option doesn't seem to do anything?

 

just to throw this in, interpolation needs enabled "display video syncing" to work

 

a hint on this requirement unfortunately never made its way in the description

Link to comment
Share on other sites

Guest asrequested

just to throw this in, interpolation needs enabled "display video syncing" to work

 

a hint on this requirement unfortunately never made its way in the description

Does it need to have Interpolation and Video sync to be enabled to be able to select which scaler to use as default? So all three settings need to be used, together. I've never tested that. Edited by Doofus
Link to comment
Share on other sites

just to throw this in, interpolation needs enabled "display video syncing" to work

 

a hint on this requirement unfortunately never made its way in the description

 

 

Does it need to have Interpolation and Video sync to be enabled to be able to select which scaler to use as default? So all three settings need to be used, together. I've never tested that.

 

Display video syncing + interpolation + oversample scaling = no smoothmotion

Display video syncing + oversample scaling = no smoothmotion

Link to comment
Share on other sites

I've also tested with the HW Acceleration setting and the "Change refresh rate to match video" setting, but these too have no effect on the presence of smoothmotion.

 

The smoothmotion effect is more subtle than any full frame interpolation algorithm, but any video with a lot of camera pans should show it clearly. I use the first 30 seconds of Guardians of the Galaxy vol. 2 (Marvel intro) to test whether it's active. 

Edited by mark235
Link to comment
Share on other sites

daedalus

if display sync is not set you find something like

[   0.364][w][vo/gpu] Interpolation now requires enabling display-sync mode.
[   0.364][w][vo/gpu] E.g.: --video-sync=display-resample

in your logfile

 

 

Does it need to have Interpolation and Video sync to be enabled to be able to select which scaler to use as default? So all three settings need to be used, together. I've never tested that.

as far as i know scaling filters don't depend on display sync option

except for sure the tscale, which is useless if interpolation gets silently disabled if display sync is not set

Link to comment
Share on other sites

daedalus

I use the first 30 seconds of Guardians of the Galaxy vol. 2 (Marvel intro) to test whether it's active. 

to stay on this i see more difference if its active or not in the first scene after the intro when they are driving the car :)

Link to comment
Share on other sites

to stay on this i see more difference if its active or not in the first scene after the intro when they are driving the car :)

 

Well, you do have a point. There is actually a swirling camera in that part, and not in the marvel intro  ^_^  

Link to comment
Share on other sites

Guest asrequested

Groovy. I'll look at it tonight, and confirm it with my log. My video smooth, regardless.

Edited by Doofus
Link to comment
Share on other sites

Guest asrequested

Well, I've only done a little bit of testing, but I cannot get display sync to be active. Different videos and different configs......nothing! I'll try more things when I'm less tired. My playback is very smooth, anyway. Maybe it just doesn't work when it doesn't need to?

Link to comment
Share on other sites

daedalus

but I cannot get display sync to be active.

 

what are you expecting to happen ?

there are only minor changes to playback speed etc to keep video, audio, display in sync

 

you see that its active when there is something like this in your logfiles

[  30.526][v][cplayer] Change display sync audio drift: -1
[  37.109][v][cplayer] Change display sync audio drift: 0
[  37.109][v][cplayer] Compensation factor: 1.000014
Edited by daedalus
Link to comment
Share on other sites

Groovy. I'll look at it tonight, and confirm it with my log. My video smooth, regardless.

 

Well, I've only done a little bit of testing, but I cannot get display sync to be active. Different videos and different configs......nothing! I'll try more things when I'm less tired. My playback is very smooth, anyway. Maybe it just doesn't work when it doesn't need to?

 

When Smoothmotion is active in a video, it is active all the time. Which display device are you testing with? Your device might eliminate 3:2 pulldown judder automatically (some TV's do), and then the effect of Smoothmotion is basically already there. If you're using a TV, have you disabled any interpolation or other motion processing in the TV settings? These are all disabled on my Samsung UE60J6200. So when Smoothmotion in MPC-HC & MadVR is off or when using Emby's internal player, 24p movies look like this:

 

 

When Smoothmotion in MPC-HC & MadVR is on, movies look like this:

 

 

I have not been able the produce the result of the second video in Emby's internal player.

 

You'll have to watch these video's on a display device set to 60Hz refresh rate to see the difference I'm trying to illustrate. Any laptop or pc screen will support that refresh rate. Even then, some will find the difference between these video's to be very subtle. For me, the difference is very clear.

 

Why do I not use the interpolation feature on my TV? Because it does a bad job (lot's of artifacts), plus I don't like the soap opera effect. 

Edited by mark235
Link to comment
Share on other sites

Guest asrequested

 

what are you expecting to happen ?

there are only minor changes to playback speed etc to keep video, audio, display in sync

 

you see that its active when there is something like this in your logfiles

[  30.526][v][cplayer] Change display sync audio drift: -1
[  37.109][v][cplayer] Change display sync audio drift: 0
[  37.109][v][cplayer] Compensation factor: 1.000014

It's not in my logs and stats says it's not active. I wasn't expecting to see a difference in the picture. I'll experiment more, tonight.

Link to comment
Share on other sites

puithove

You actually want to set Oversample as the "Temporal Axis" scaling method.  Putting it in Default scaling method is using it as the scaler for changing the size of the video (such as 720 -> 1080).

 

Temporal Axis is your time-based scaling to change framerate (display 24hz video on 60hz display).

 

Yes, you also have to have "interpolation" setting enabled in order to turn on Temporal scaling.

Edited by puithove
Link to comment
Share on other sites

mark235

You actually want to set Oversample as the "Temporal Axis" scaling method.  Putting it in Default scaling method is using it as the scaler for changing the size of the video (such as 720 -> 1080).

 

Temporal Axis is your time-based scaling to change framerate (display 24hz video on 60hz display).

 

Yes, you also have to have "interpolation" setting enabled in order to turn on Temporal scaling.

Thanks. I'm on holiday till next week, will give it a go on Monday evening.

Link to comment
Share on other sites

mark235

You actually want to set Oversample as the "Temporal Axis" scaling method.  Putting it in Default scaling method is using it as the scaler for changing the size of the video (such as 720 -> 1080).

 

Temporal Axis is your time-based scaling to change framerate (display 24hz video on 60hz display).

 

Yes, you also have to have "interpolation" setting enabled in order to turn on Temporal scaling.

 

No joy. I do not see any difference in motion when applying this.

Link to comment
Share on other sites

mark235

just to throw this in, interpolation needs enabled "display video syncing" to work

 

a hint on this requirement unfortunately never made its way in the description

 

Forgot about this post, it indeed does work with the settings below  :)  :)

 

Enable Video Display Syncing

Enable Interpolation

Temporal Axis Scaling method: Oversample

 

But there are a few caveats, at least on my system:

 

It only works when the Audio Passthrough and Change Display Rate To Match Video settings are disabled.

Video's will microstutter for the first 30 seconds or so of the movie, before the picture stabilizes. Fastforwarding and rewinding a few times for 15 seconds seems to help.

 

Is anybody else able to reproduce this?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...