Is Qt capable of small-buffer low-latency video applications (e.g. live streaming)?
-
I am trying to create my own URL based live streaming application. I have hit an issue that the video streaming if having a delay of about 1000ms and there is no change in latency even after using LowLatency command. I want to achieve about 200ms latency video streaming.
( I want to genuinely know if Qt is the right tool for the job here, from people who know Qt and understand non-blocking, high priority, low latency programming. I already love Qt for its QML + JavaScript GUI building side.)
-
@rshe said in Is Qt capable of small-buffer low-latency video applications (e.g. live streaming)?:
I am trying to create my own URL based live streaming application. I have hit an issue that the video streaming if having a delay of about 1000ms and there is no change in latency even after using LowLatency command. I want to achieve about 200ms latency video streaming.
Is this observation of 1 sec latency with Qt-based communication?
@rshe said in Is Qt capable of small-buffer low-latency video applications (e.g. live streaming)?:
( I want to genuinely know if Qt is the right tool for the job here, from people who know Qt and understand non-blocking, high priority, low latency programming. I already love Qt for its QML + JavaScript GUI building side.)
I am using TCP or UDP based data streaming and I cannot confirm your observation of long latencies. I expect to see more a latency of about 200ms. However, my streams are lower throughput in the kB/sec range, but they are larger number of streams in general.
This is merely a view from a user point, but I did not see reasons to doubts of Qt performances in that respect, yet. Latency is a critical factor in my applications.
-
@koahnig thanks for the reply. I am also using TCP or UDP based data streaming.
I have set the bit rate type to (VBR) varying bitrate type and it varies from say 800 – 8192 kb/S
below is my code. and I have also attached my camera settings.#include "dialog.h" #include <QApplication> #include<QMediaPlayer> #include<QVideoWidget> int main(int argc, char *argv[]) { QApplication a(argc, argv); //Dialog w; //w.show(); //QMediaPlayer::LowLatency = 0x01 QMediaPlayer* player = new QMediaPlayer; QVideoWidget* vw = new QVideoWidget; player->setVideoOutput(vw); player->LowLatency; player->setMedia(QUrl("rtsp://admin:admin@192.168.253.99/realmonitor?channel=1&subtype=0&unicast=true")); vw->setGeometry(100,100,700,500); vw->show(); player->play(); return a.exec(); }
Can you please tell me is there anywhere I can improve to get low latency