Sunday, May 17, 2015

Multiple Animated Videos on Raspberry Pi 2 with Fading Audio

Someone asked if PiOmxTextures (library and Qt OpenMAX-based multimedia plugin) could be used on Raspberry Pi 2 and if it could be used to play more than one video contemporarily. I worked on this and a couple of recent patches made the following result possible.

The video shows two videos running contemporarily on Pi 2, with QML animations applied to the videos and with audio fading from one to the other. The videos are 720p h264 main and high profile. UI is written in QML in 1080p with 24 bit color depth. As you can see, load on the CPU is very low. The demo also shows the same QML file running on Mac OS X.

To get this performance you'll need to properly overclock your Pi 2, otherwise the achievable frame rate is lower.

NOTE: Code for this is not yet on github.


  1. Hi Luca,

    I have a banana pro, can you guide me on how to use your achivement on it? The qml example play the video real slow... :(

    1. I'm sorry, this sample is for Raspberry Pi. This has nothing to do with Banana Pi.

  2. I know, but there is a lot of thing RPi related or do you think a port is possible?

  3. I just saw Omxplayer is a video player specifically made for the Raspberry Pi's GPU.

    1. Banana Pi is based on Allwinner. Don't think there is an OpenMAX interface there.

  4. I did follow this tutorial
    and I'm able to cross compile and deploy qml apps to RPi.

    however I can't play video on QML Video example,
    it says "defaultServiceProvider::requestService(): no service found for - "org.qt-project.qt.mediaplayer""
    I go back to the source and gstreamer is not enable
    I add -gstreamer 1.0 to configure
    but it failed
    Konsole output: The GStreamer 1.0 functionality test failed!
    I have installed all the gstream related packages
    can you sugest what I'm doing wrong?
    this is what I get with -v
    thank you

    1. This article is not related in any way to gstreamer.

  5. I know, I was trying to get a it work before try your library. Sorry.