Computer scientist and maker Ben Henshaw has released a tool for turning a Raspberry Pi single-board computer into an interactive video player for art installations and more — avoiding the delays present in rival solutions.
"Last year, I started on my first RPi project, which was an art installation for an interactive short film. The medium was pixel art on a CRT display, in which users would be able to press buttons and turn keys to prompt the next sequence in the film," Henshaw explains. "The installation was a post-apocalyptic retrospective on nuclear war as displayed on a simulacrum of an air-gapped nuclear missile command terminal using pixel art and rendering techniques idiosyncratic to early graphical interfaces."
Quite soon into development of the video art installation, though, Henshaw ran into a problem. "One of the things that blew my mind about this project," he explains, "is that there didn't seem to be any current interactive video player that met my specifications (i.e., one that responds to and tolerates concurrent IO) that wasn't slow, prone to failure, or totally outdated."
The solution: a Python-based wrapper for the
mpv video player which supports the ability to load a single master clip, loop sections, and jump around at-will based on physical button presses — and which avoids delays when switching sections, obvious buffering, juddering, or the sudden appearance of an incongruous graphical user interface overlay, all of which were issues plaguing Henshaw's attempts to use existing solutions.
More information is available on Henshaw's Reddit post, while the source code for the project has been released on GitHub under the reciprocal GNU General Public License 3. "I hope," Henshaw says, "that the interactive video engine can be of use to other people in [the Raspberry Pi] community."