QMovie SMSQ/E movie player

By | 2016-12-05

This has been superseded by QMovie v2

QMovie is a quick&dirty full colour movie player including sound for QPC. I really didn’t have the time to write this, but sometimes an idea latches itself into my head and I can’t let go until I have done something about it. So the target for this was “be done quickly” and not “be done perfectly”.

You can download it here (135MB). Just start the QPC2.exe and it should run. The movie frames are time synchronised to the audio. No double buffering (neither for the screen nor for the play buffer) nor any other fancy stuff is performed as the performance was already good enough.

Clip: The Iron Maidens recorded at the LKA Stuttgart by me. 10 fps, 20kHz mono

Creation of this video:

ffmpeg -i “IMG_7696.MOV” -r 10 -s 480×270 Frame_%04d.png
ffmpeg -i “IMG_7696.MOV” -f u8 -ar 20k -ac 1 sound.raw

Convert all Frame_%04d.png into _spr files using PNGConv. Settings: “binary”, “.” separator, “solid mask”, “no compression”.

The resulting Frame_xxx.spr and sound.raw files are combined using a quick Perl script called qmovie-concat.pl.

The QMV Format is an interleaved data format with one second of audio, followed by one second (10 frames) of video in Sprite format (fixed size, must not be RLE compressed). No meta data is saved (remember, “quick” was the motto here), all things like resolution and frame rate are hard coded into the qmovie_exe file.

Feel free to improve it, I’m done here 😉

3 thoughts on “QMovie SMSQ/E movie player

  1. Per

    Well, youve certainly proved that this works! 🙂 (I expect to watch Game of Thrones on my “QL” by Christmas!)
    I really hope someone takes this further, because although its possibly pointless, it is nice to have our very own “movie player”. And lots of pointless things have turned out to be useful, even necessary, in the end!

    Reply
  2. Peter Jäger

    First of all: Great. I want more. I can remember playing Marcel a movie (not synchronized) at a QL meeting many years ago. Was I the inspiration? 😉
    Anyway, is there an easy way of implementing playing a common video file format (like MOV) direct in the player? The conversion isn’t really sexy to me.
    I like it a lot.
    Thanks again Marcel.

    Reply
    1. Marcel Post author

      Hi Peta!

      First of all, thanks! I hope you checked out v2, it’s much better. I’m afraid your example was too long ago 😉
      I don’t think there is any way to bring common video formats to the QL, way too complicated for the limited CPU power there is. One can probably automate the whole conversion process, but movies will still take a ludicrous amount of space using full frames. And differential frame encoding like MPEG sounds easy in theory, but in reality two frames are almost never alike at all, so you will quickly realize why movie codecs are as complicated and power hungry as they are.

      Cheers, Marcel

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *