omxplayer on the Raspberry Pi for video playback because it utilizes the Raspberry Pi’s hardware video decoding.
Because the front-end is a separate application, I just need to remote control OMX Player to start and stop the video and figure out how far the video has played back already.
In one of my hobby projects I needed to display additional information on top of a running video. The whole project is based on the Raspberry Pi and Python.
This article describes the approach I’ve taken to display arbitrary content over the video with the help of the very flexible (and admittedly awesome) Kivy framework.