Bino

May 31, 2024

Overview

Bino is a video player with a focus on 3D and Virtual Reality:

Invocation

bino [options] URL

Output modes

Most output modes should be self explanatory, but there are some exceptions:

File Name Conventions

Bino currently cannot detect the stereoscopic layout or the surround video mode from metadata because Qt does not provide that information. It therefore has to guess.

Bino recognizes the following hints at the last part of the file name, just before the file name extension (.ext):

Additionally, if the number 180 or 360 is part of the file name and separated by neighboring digits or letters by other characters, then the corresponding surround mode is assumed.

Scripting

Bino can read commands from a script file and execute them via the option --read-commands scriptfile. This works both in GUI mode and in Virtual Reality mode.

The script file can also be a named pipe so that you can have arbitrary remote control interfaces write commands into it as they come in.

Empty lines and comment lines (which begin with #) are ignored. The following commands are supported:

Slideshows

You can play slideshows of images (or videos) simply by making a playlist and switching on its wait status. This is the default whenever one or more of the files you open are images instead of videos; this works from the command line as well as from the GUI.

With wait enabled, the next media in the playlist will only be displayed after you press the N key, or choose Playlist/Next from the menu.

For automatic media switching based on predefined presentation times, use the scripting mode as in the following example:

set-fullscreen on
playlist-load my-slideshow.m3u
playlist-loop on
playlist-wait on
playlist-next
wait 4
playlist-next
wait 7
playlist-next
wait 5
quit

Virtual Reality

Bino supports all sorts of Virtual Reality environments via QVR:

To start Bino in VR mode, use the option --vr. Bino will then display a screen in the virtual world, and the video will be displayed on that screen, unless the input is a surround video (360° or 180°), which will of course be displayed all around the viewer.

The default is a 16:9 screen in a few meters distance from the viewer, but you can use the --vr-screen option to either define arbitrary planar screens via their bottom left, bottom right and top left corners, or to load arbitrary screen geometry from an OBJ file. The latter case is useful e.g. if you want Bino’s virtual screen to coincide with a curved physical screen.

The --vr-screen option also accepts the special values united and intersected. This will unite (or intersect) the 2D geometries of all VR windows at runtime. For example, use --vr-screen=united --qvr-config=two-screen-stereo.qvr for a two-screen stereo setup, where the left view goes on the first screen and the right view goes on the second screen.

Bino uses QVRs default navigation, which may be based on autodetected controllers such as the HTC Vive controllers, or on tracking and interaction hardware configured via QVR for your VR system, or on the mouse and WASDQE keys if nothing else is available.

Additional interaction in VR mode is currently limited to the same keyboard shortcuts that also work in GUI mode. That means you currently must specify the video to play on the command line, and have no way to pause, skip or seek with VR controllers. This will be added in a future version.