Mplayer

From wikinotes
Revision as of 02:25, 19 July 2021 by Will (talk | contribs)

A very versatile media player.

Documentation

homepage http://www.mplayerhq.hu/design7/news.html
documentation http://www.mplayerhq.hu/DOCS/HTML/en/index.html
man mplayer http://www.mplayerhq.hu/DOCS/man/en/mplayer.1.html

Tutorials

mplayer intro https://www.unixmen.com/basic-mplayer-usage-from-command-line/

Neat Tricks

video as wallpaper

Single Monitor

If you can find/make an ultra widescreen panorama, this is probably the way to go.

# works, supports xcompmgr
# see: and https://www.reddit.com/r/unixporn/comments/97uznk/herbstluftwm_animated_wallpaper/
#
pacaur -S xwinwrap-git

xwinwrap -ov -fs -- \
  mplayer -wid WID \
  -quiet -nosound \
  -loop 0 `# loop same video indefinitely` \
  /ocean_waves.mkv

# mplayer ... -loop 0                     # cycle same video indefinitely
# mplayer ... -shuffle fileA fileB fileC  # play provided files in random order
# no cli controls, possibly through a socket though?

Alternatively, this method plays video as wallpaper, but has issues with compositors (xcompmgr, compton, ..)
It also gets confused when sharing a workspace with another window. Not ideal.

# See https://www.reddit.com/r/i3wm/comments/51hjkn/vlcs_videowallpaper_is_just_a_fullscreen_mode/
mplayer  -rootwin -vo xv -ao null -noconsolecontrols -fs /ocean_waves.mkv

Multiple Monitors

If rendering a video on different monitors, you'll need to be explicit about the monitor's geometry.
This is seriously chaotic, good luck getting anything done.

FILES=($(ls *.mkv))

monitor_geoms(){
    xrandr \
        | grep -P '(?<!dis)connected' \
        | grep -o -P '\d+x\d+\+\d+\+\d'
}

for geom in `monitor_geoms`; do
    xwinwrap -ov -g "${geom}" -- mplayer -wid WID -quiet -nosound -loop 0 -shuffle "${FILES[@]}" &
done

The same video on each monitor.

TODO

video in ascii