Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is there a way to make MPV have terminal-only OSD? #3387

Closed
TiGR opened this issue Aug 2, 2016 · 8 comments
Closed

Is there a way to make MPV have terminal-only OSD? #3387

TiGR opened this issue Aug 2, 2016 · 8 comments

Comments

@TiGR
Copy link

TiGR commented Aug 2, 2016

I have one special use for mpv: I play videos on big external LED/Projector screen for large auditory. Thus, I don't need any OSD go on video screen (no messages, no OSC, no progressbar), but I need full OSD in terminal. Thus, in my config profile I have this:

no-osc
use-text-osd=no
osd-level=1
term-osd=force

This used to work last year (whatever version of MPV was used then). That is, I could still see all messages (such as changing brightness or panscan) in terminal, but absolutely nothing over the video. I've tried looking through man but the only way I could disable over video OSD was by setting osd-level to 0. But it silences terminal messages also.

I suppose the problem is in this commit: d1a46c2 (use-text-osd removed).

So, the question is: what is the proper way to achieve this in newer versions of MPV? And if there isn't maybe you could revert that commit or make it work somehow?

Using mpv 0.18.1 (and 0.16.0) on Kubuntu 14.04.4 64bit.

@garoto
Copy link
Contributor

garoto commented Aug 4, 2016

Try emulating the old behavior via a custom crafted term-status-msg with the help of the various Property Expansions avaiable.

Something like:
term-status-msg="${playback-time} / ${duration} / (${percent-pos}%)\nVolume: ${volume}%\nPlaylist Pos: ${playlist-pos}/${playlist-count}\nSaturation:\t${saturation}\nBrightness:\t${brightness}\nGamma:\t${gamma}\nZoom:\t${video-zoom}"

Seems to work nicely together with no-osc and osd-level=0 in my brief testing.

@TiGR
Copy link
Author

TiGR commented Aug 8, 2016

This is quite quirky-hacky way to do what I need. I ended up with this config:

no-osc
osd-level=2
term-osd=force
no-osd-bar
osd-border-size=0
osd-color=0/0/0/0

Thus, I just made texts 100% transparent, but this is kinda really dirty and hacky way to just simply disable onscreen display. use-text-osd was quite straightforward and clean way to do this.

@danielsauce
Copy link

Hi, I use mpv to play movies on large screen in summer cinema and large auditory. I compiled the version 0.19 and revert the commit to have use-text-osd again and seems to work well on Kubuntu 14.04.4 64bit, if you want to try, I pass a link to install it.

@ghost
Copy link

ghost commented Aug 25, 2016

Would it help if term-osd=force would disable OSD rendering, or if there were a separate term-osd=always or something similar with the same effect?

@ghost ghost added the meta:feature-request label Aug 25, 2016
@haasn
Copy link
Member

haasn commented Aug 25, 2016

Random thought: What about having a separate osd level for terminal and OSD?

You could also include the setting “auto“ (for terminal: pick the OSD message level if there's no GUI, and vice versa for GUI) to mimic the current behavior (i.e. the new default would have term-osd-level=auto and gui-osd-level=1)

Probaly too messy to implement but it might be a good idea for UX

Edit: Probably too redundant with --term-osd. I think it would be better to just have a --term-osd=only option or so.

@danielsauce
Copy link

Disable OSD rendering with term-osd=only sounds great.

@TiGR
Copy link
Author

TiGR commented Aug 27, 2016

Yes, that would be nice. The only thing is that I don't think that only is the proper word here. Maybe exclusive would be better? However, it is not that important, only is also fine.

@ghost ghost closed this as completed in 5086b2d Aug 28, 2016
@ghost
Copy link

ghost commented Aug 28, 2016

Implemented a bit differently.

Random thought: What about having a separate osd level for terminal and OSD?

I think this would be ideal, but would require quite some refactoring. At least you'd need to keep OSD state per component (VO/terminal), rather than having a single state.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants