vendredi 2 juillet 2021

QT rtspsrc to qtquick2videosink slow for 1080p video stream

  • QT version - 5.14.1
  • Android NDK verison - 21.3.6528147
  • Android Platform - 29

I am developing QT android application. where video player is implemented using android gstreamer 1.18.1 . code base is taken from https://github.com/CubePilot/qgroundcontrol-herelink/tree/master/src/VideoStreaming. this application working good. code is same from VideoReceiver.cc file.

Problem I am facing with my code is video lagging on device screen. video lag increase as there is too much frame pixel change on camera. when I reduce video quality to 720p it work without lag. but when I set video quality to 1080p video start lagging.

follwing is the code for my qt video plugin

   if ((_data->videoSink = gst_element_factory_make("qtquick2videosink", NULL)) == NULL) {
        qCritical("Failed to create qtquick2videosink. Make sure it is installed correctly");
        return NULL;
    }
    else
    {
        qDebug("Success to create qtquick2videosink.");
    }
    g_object_set(G_OBJECT(_data->videoSink), "sync", gboolean(false), NULL);
    g_signal_connect(_data->videoSink, "update", G_CALLBACK(onUpdateThunk), (void* )this);

following is the pipeline I am using. element property is same from the code where I have taken this.

gst_bin_add_many(GST_BIN(_pipeline), rtspsrc ,queue,_teeStream,queue, rtph264depay_demux, h264parse_parser, avdec_h264_decoder, queue, _videoSink, NULL);

Question
Is this possible to reduce video frame size(cap filter) to 720p which goes to _videoSink?
without changing video before _teeStream.
Or
How to make video lag free?

Aucun commentaire:

Enregistrer un commentaire