Problem displaying videos with qmediaplayer and qvideowidget
-
Hello,
This is my first post also I hope I did it at the right place. I am encoutering some issues when I try to display videos, also any idea would be welcome considering that I have already spent hours searching a solution on the internet.
So here is the issue:
I use two QVideoWidget and two QMediaplayer to display two videos at the same time. My app was working quite fine on windows but not with 4K videos and I couldn't solve the problem... I guess it might have been a problem with the codecs used.
I decided to try on linux and with Ubuntu 16.04 I have no issues for playing two 4K videos. I set the QVideoWidget size because I want each video to fill one quarter of the screen. The problem is that some times the video isn't displayed at the right size. It occupies only a small part of the QVideoWidget.
Have you any idea about what could cause this ? I don't see why the same code would some times work and some times not...
Thank you for your time reading this -
Hi and welcome to devnet,
What version of Qt are you using ?
What exact platform are you running on ?
What video format are you trying to use ? -
Hello,
Thank you for your answer.
I am using Qt 5.8.0 (but I also tried 5.9.1) on linux 64 bits with Ubuntu 16.04 LTS and for the graphic card I have Gallium 0.4 on NVE7.
For the video formats I have mp4 and mov.
I can read both with a qmediaplayer and a qvideowidget but sometimes they don't fill the qvideowidget completely (it also happens that the qvideowidget remains totally black or white). To be able to play de videos I had to install some gstreamer packages.
If I change the size of the qvideowidget with the mouse the video gets often resized at the right size. Considering this I have tried to resize the qvideowidget in my code but it changed nothing.I had no such problem on windows 7 (64bits) with Qt 5.8.0 MinGW 32 bit. I had just to install codecs (KLite Pack Full 13.3.0) to be able to read videos. Only on windows I couldn't play two 4K videos at the same time and I have never found a solution... (I was using the same computer). I just had this warning: "NVD3DREL: Failed to run Algo 0 of Stream 0" that could appear but not every time and I didn't found any revelant information on what I may do to correct this and I am not sure it was concerning the impossibility to read 4k videos.
Here is the part of the code that I am using for the players, if it can help:
// //first player _videoWidget1 = new QVideoWidget; _videoWidget1->setWindowFlags(Qt::FramelessWindowHint); _mediaPlayer1 = new QMediaPlayer; _mediaPlayer1->setMuted(true); _mediaPlayer1->setMedia(QUrl::fromLocalFile(_pathVideo1)); _mediaPlayer1->setVideoOutput(_videoWidget1); _videoWidget1->setGeometry(0,0,_screenWidth/2,_screenHeight/2); _videoWidget1->show(); _mediaPlayer1->play(); //second player _videoWidget2 = new QVideoWidget; _videoWidget2->setWindowFlags(Qt::FramelessWindowHint); _mediaPlayer2 = new QMediaPlayer; _mediaPlayer2->setMuted(true); _mediaPlayer2->setMedia(QUrl::fromLocalFile(_pathVideo2)); _mediaPlayer2->setVideoOutput(_videoWidget2); _videoWidget2->setGeometry(0,_screenHeight/2,_screenWidth/2,_screenHeight/2); _videoWidget2->show(); _mediaPlayer2->play();
-
Are your test videos available somewhere ?
-
Hello,
They aren't available but I already tried with a very wide range of different videos and the bug did appeared with all of them.
I got an improvment on windows. I deployed the app and when I run it, it can play two 4k videos. It is not alway very smooth and it can happen that a video
doesn't appear but at least it is working. Strange that it isn't working when compiling but only with the exec...
I tried to deploy it on linux too but no improvment this time. -
@Lilie-0 said in Problem displaying videos with qmediaplayer and qvideowidget:
NVD3DREL: Failed to run Algo 0 of Stream 0
That looks like a Nvidia driver error, so there might be something to look at.