VR-video-player-moon: Update of vr-video-player

I did a fork of vr-video-player a long time ago to add some missing feature. I decided to share them this community, so I cleaned my code, and pushed them on vr-video-player-moon (I updated the name to avoid mixing project).

I added:

  • Add flag --strokers-lib and --funscript-path to use the strokers MPV plugin. Environment variable STROKERS_LIB can be used as a replacement for the flag --strokers-lib
    I had my own funscript player implementation but it was very crappy and this plugin is very clean.
  • Add flag --defisheye-fov <fov|200|190> and a keybinding f to defisheye a VR video.
    The key “f” rotate between 0 (disable), 190 and 200 during play.
  • Add keybinding for color adjustment:
    Shift: apply multiplier factor of 5 for all inputs: seek, zoom, color, volume
    Ctrl: invert the color and volume adjustment:
    UP: zoom in
    Down: zoom out
    Left: seek backward
    Right: seek forward
    keypad 0: reset rotation
    keypad / : reset color and volume from load profile
    keypad 1 : Increase contrast by 1
    keypad 2 : Increase brightness by 1
    keypad 3 : Increase gamma by 1
    keypad 4 : Increase saturation by 1
    keypad 5 : Increase volume by 5
    Example:
    Ctrl+keypad 1 : Decrease contrast by 1
    Shift+Right : Seek forward by 25, instead of 5
    Ctrl+Shift+keypad 4 : Decrease saturation by 5

--defisheye-fov is not the best way because it is mapping the 200° fish-eye to a 180° half-sphere. But I am looking to implement it a real mapping of the fish-eye to a sphere. But I am looking to implement a real mapping of the fish-eye.

For me, it is the best setup to play VR video on Linux with a OSR2 or SR6. I am using Monado to handle my headset with SteamVR.
With the new adding of the funscript layer from the MPV plugin, it reaches a very good stage for Linux users :penguin: with an old headset without support for controllers


Summary of features added:

  • Save and restore window position
  • Add flags:
    • --strokers-lib: Path to the strokers MPV plugin. Environment variable STROKERS_LIB can be used as a replacement for the flag --strokers-lib
    • --funscript-path: Path to a custom funscript (require the Strokers lib)
    • --fisheye-fov <fov>: flag to fully support projection for fish-eye video with 190/200/210/220 FoV
    • --defisheye-fov <fov|200|190>: defisheye to 180° view
    • --mouse-camera: Add mouse drag and drop for camera rotation
  • Add keybinding:
    • f: for fisheye management
      • Shift+F: Switch between fisheye to no-fisheye projection
      • f in fisheye projection will rotate between different FoV: 190,200,210,220
      • f in sphere projection will rotate between different FoV using the defisheye: 0 (disabled),190,200,210,220
    • Shift: apply multiplier factor of 5 for almost all inputs: seek, zoom, color, volume
    • Ctrl: invert the color and volume adjustment:UP: zoom in
    • Down: zoom out
    • Left: seek backward
    • Right: seek forward
    • keypad 0: reset rotation
    • keypad / : reset color and volume from load profile
    • keypad 1 : Increase contrast by 1
    • keypad 2 : Increase brightness by 1
    • keypad 3 : Increase gamma by 1
    • keypad 4 : Increase saturation by 1
    • keypad 5 : Increase volume by 5
      Example:
    • Ctrl+keypad 1 : Decrease contrast by 1
    • Shift+Right : Seek forward by 25, instead of 5
    • Ctrl+Shift+keypad 4 : Decrease saturation by 5
3 Likes

Woa, this looks cool !
You’re going to convince me to set up Monado to try it out :slight_smile:

btw, I did see your PRs, I will review them soon !

I just finished to implement the real fisheye for any FoV :smiley:

You will not have any reason to not try Monado ahah XD

Here the difference between the defisheye and real fisheye for 200°:


Update list:

  • Save and restore window position
  • Add --fisheye-fov <fov> flag to fully support projection of Fish-eye video of 190/200/210/220 video
    Update keybinding f as follow:
    • Shift+F: Switch between fisheye to no-fisheye projection
    • f in fisheye projection will rotate between different FoV: 190,200,210,220
    • f in sphere projection will rotate between different FoV using the defisheye: 0 (disabled),190,200,210,220
  • Add flag --mouse-camera: Add mouse drag and drop for camera rotation
2 Likes