mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
28.35k stars 2.91k forks source link

How to enable smoothmotion? #2885

Closed hobbes78 closed 8 years ago

hobbes78 commented 8 years ago

Hi all,

I’m new to mpv, coming from mplayer, and the main reason that led me to try it out was the smoothmotion feature. But activating it seems harder that I hoped for. I started with this command line:

mpv file.avi

The documentation only mentions once “smoothmotion,” when describing a scale filter called oversample; however it seems it should be used with tscale instead; and for tscale to be specified, an output driver seems to need to be specified, maybe opengl, no?

mpv --vo=opengl:tscale=oversample file.avi

However in the tscale documentation I read it requires also the interpolation option.

mpv --vo=opengl:tscale=oversample:interpolation file.avi

However in the interpolation documentation I read it required also the --video-sync with one of the display- options, maybe display-resample, no?

mpv --vo=opengl:tscale=oversample:interpolation --video-sync=display-resample file.avi

This seems to be it, but after all this recursive option enabling I’m a bit lost :/ Is this command correct? Couldn’t a simple --smoothmotion switch be available instead?

Thanks in advance,

André

lamarpavel commented 8 years ago

The options you set are correct, but you probably want to set them in the config file (~/.config/mpv/config) so you don't have to type the command line all the time.

A flag such as --smoothmotion might abstract too much away as there is a great difference between the various scalers (oversample is just one of many) and mpv generally does not try to hide configuration from those who want to get their feet wet. However, I could imagine mpv shipping with a more fleshed out default config that offers more predefined profiles that are easily switched between and that cover use cases such as yours.

haasn commented 8 years ago

I think an alias system (e.g. “smoothmotion” -> “interpolation+tscale+video-sync”, or “nnedi3” -> “prescale+prescale-passes+prescale-downscaling-threshold”) might do more harm than good when it comes to helping people figure out how mpv options work.

In this specific case, it would probably be easier to cut down on the number of recursive option enabling a new user has to do by explicitly documenting up-front that enabling smoothmotion requires all of these options.

ghost commented 8 years ago

I've considered enabling display-sync mode automatically if interpolation is enabled in vo_opengl, but then considered it'd do more harm then it helps.

You don't need to set tscale, though.

VjzxvffTFhcn24bBNI commented 8 years ago
vo=opengl:interpolation
video-sync=display-resample

Just add in your mpv.conf

bfulop commented 7 years ago

How about these settings for smooth motion?

I was getting this error message with above config

Option vo: this option does not accept sub-options.
Sub-options for --vo and --ao were removed from mpv in release 0.23.0.

After going through the docs I came up with these options, what do you think?

vo=opengl
interpolation
video-sync=display-resample
scale=oversample
tscale=oversample
TheJman494 commented 7 years ago

@bfulop For interpolation you just need to set tscale Scale, dscale and, cscale are used for when you resize the video up/down.

You can also get a list of available filters with --tscale=help if you open mpv.com in a command prompt on Windows

Here's an example for your mpv.conf

profile=opengl-hq
video-sync=display-resample
blend-subtitles=yes
interpolation=yes
tscale=oversample

And if you would like to try out a few different options in real time put this in input.conf

v cycle interpolation
b cycle-values tscale "oversample" "linear" "catmull_rom" "mitchell" 
bfulop commented 7 years ago

Ah thanks, the scale=oversample setting could explain then why I had some performance issues going full screen (on a low end Mac).

Yesterday I was driving myself crazy testing the different settings.

What would you suggest as setting to get a really exaggerated motion blur effect (24FPS movie on a 60Hz projector)? I actually prefer motion blur to crisp movements especially on a large screen.

I tried

tscale-blur=1.2
tscale-wblur=1.2
tscale-radius=16

But still couldn't see any visible difference (testing with the 24FPS bunny clip from the interpolation wiki page )

kevmitch commented 7 years ago

I believe the consensus is that catmull_rom or mitchell are ideal if you don't mind some blur. linear is probably more blurry. oversample is best for crispness.

percheperche commented 5 years ago

Any of these options don't work for me It always gives me Driver 'opengl' has been replaced with 'gpu'! Option vo: this option does not accept sub-options. Sub-options for --vo and --ao were removed from mpv in release 0.23.0. See https://0x0.st/uM for details. Error parsing option vo (option parameter could not be parsed)

CounterPillow commented 5 years ago

@percheperche instead of reading old issues you should be reading the documentation and the error message it gives you.

You'll want

interpolation=yes
video-sync=display-resample
tscale=oversample

or any other tscale. Leave out the vo line. If you want to use the hq profile, use profile=gpu-hq.

percheperche commented 5 years ago

@CounterPillow I don't see any differences with these options...

CounterPillow commented 5 years ago

@percheperche have you tried other tscale options? They vary in how they look.

Also, you obviously will only see differences during playback, not while framestepping or pausing.

Hi-Angel commented 3 years ago

@percheperche yeah, at first I also thought it's not working. But apparently it does, it's just that the difference very small. I can tell that because if I replace the tscale=oversample with tscale=mitchell, I see movement become more blurry.