[Interest] How do use QMediaPlayer on a QIODevice?

Nikos Chantziaras realnc at gmail.com
Sat Jun 8 12:41:51 CEST 2013

QMediaPlayer is unable to play anything, be it video or audio, from a 
QIODevice.  Even this simple example fails:

   QMediaPlayer* player =
     new QMediaPlayer(0, QMediaPlayer::StreamPlayback);

   QFile* file = new QFile("/tmp/audio.ogg");
   if (not file->open(QFile::ReadOnly)) {
   player->setMedia(QUrl(), file);

It doesn't play, and this is printed on stderr:

   Error: "Could not demultiplex stream."

This, on the other hand, works:

   QMediaPlayer* player = new QMediaPlayer;

If I try the same with a video, the error is:

   Warning: "Could not demultiplex stream."
   Error: "No valid frames found before end of stream"

I also tried omitting QMediaPlayer::StreamPlayback from the ctor, but it 
doesn't change anything.  I also found a bug that looks exactly like the 
problem I'm having, but it was closed as fixed long ago:


I'm using Qt 5.1.0 beta on Gentoo Linux AMD64.  GStreamer version is 
0.10.36 and gst-plugins-base is installed (in particular, it provides 

How do I get this work?

More information about the Interest mailing list