QT rtspsrc 到 qtquick2videosink 对于 1080p 视频流很慢

问题描述

  • QT 版本 - 5.14.1
  • Android NDK 版本 - 21.3.6528147
  • Android 平台 - 29

我正在开发 QT android 应用程序。其中视频播放器是使用 android gstreamer 1.18.1 实现的。代码库取自 https://github.com/CubePilot/qgroundcontrol-herelink/tree/master/src/VideoStreaming。此应用程序运行良好代码VideoReceiver.cc 文件相同。

我的代码面临的问题是设备屏幕上的视频滞后。视频延迟增加,因为相机上的帧像素变化过多。当我将视频质量降低到 720p 时,它可以毫无延迟地工作。但是当我将视频质量设置为 1080p 时,视频开始滞后。

以下是我的qt视频插件代码

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

以下是我正在使用的管道。 element 属性与我采用的代码相同。

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

问题
这是否可以将视频帧大小(上限过滤器)减少到 720p,然后转到 _videosink?
在 _teeStream 之前不更改视频。

如何让视频无延迟?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)