Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct
QMediaPlayer Synchronization Problem
I everyone, I have more than one mediaplayer and each mediaplayer has its own video in different videowidgets.
I am using player2->setPosition(player1->position())
However, there is a synchronziation problem. the second video is like coming 1 or 2 frame late.
Is there any solution?
@DzCode You could try to pause player1 first and also player2 and after setting position start both.
@jsulm YEs, I tried it too. But some of the videos can be created in run time later. If I create all videos at the start of the program, no problem about synchronization. However, if a video is created later than others, at the first play it takes time to render it; so that it comes late
Also, when I do connect(player1, &QMediaPlayer::positionChanged, player2, &QMediaPlayer::setPosition); the end user can see a little flickering
when I do connect(player1, &QMediaPlayer::positionChanged, player2, &QMediaPlayer::setPosition); the end user can see a little flickering
Yes, because you do the positioning over signals/slots for every frame I guess :-)
Maybe you could start the new video and somewhat later position it? To avoid the delays caused by loading the video.
Bonnie last edited by
Are these players playing the same media?
In that case maybe you can try the function added in 5.15
void QMediaPlayer::setVideoOutput(const QVector<QAbstractVideoSurface *> &surfaces)
It should be able to make one single player having multiple video outputs.
DzCode last edited by DzCode
@Bonnie for just trial, I am using the same video, but they will have different video. Also I have to use Qt 5.12.x versions. I have different mediaplayers and different qvideowidgets for each video. However, the time should be synchronized
@jsulm Currently I am trying to do it. I I am able to do, i will write here
I forgot the write down the solution.
When I add a new video dynamically when other videos are running, I am not stopping videos. I set up a dynamic QTimer which works 2 times for synchroniation, and updates the posiitons just for 2 seconds, and then timer stops
kk17baba last edited by
Hi @DzCode, I am facing the same problem at the moment - could you share a code snippet of your solution ? :)