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.)


  • Moderators

    @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![/cam](image url)/realmonitor?channel=1&subtype=0&unicast=true"));
    
        vw->setGeometry(100,100,700,500);
        vw->show();
    
        player->play();
        return a.exec();
    }
    
    

    alt text

    Can you please tell me is there anywhere I can improve to get low latency



  • ![alt text](0_1495446537836_Capture.PNG image url)


  • Moderators

    @rshe

    Unfortunately, I have no experience with media/video player in Qt.



  • @koahnig Thanks for the reply.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.