qt5multimedia播放rtsp延迟高

fgmm / 2024-11-13 / 原文

  Qt5Multimedia在Liunux平台已实现对Gstreamer的支持,近期在RK3588平台,使用Qt5Multimedia播放RTSP流时,遇到延迟高问题(3s左右),查看API,Qt5Multimedia无法向Gstreamer传递参数。

解决办法:

重新编译qt5multimedia;
修改qt5multimedia/src/gsttools/qgstreamerplayersession.cpp

GstElement *videoSink = 0;
   if (m_renderer && m_renderer->isReady())
       videoSink = m_renderer->videoSink();

   if (!videoSink)
       videoSink = m_nullVideoSink;

#ifdef DEBUG_PLAYBIN
   qDebug() << "Set video output:" << videoOutput;
   qDebug() << "Current sink:" << (m_videoSink ? GST_ELEMENT_NAME(m_videoSink) : "") <<  m_videoSink
            << "pending:" << (m_pendingVideoSink ? GST_ELEMENT_NAME(m_pendingVideoSink) : "") << m_pendingVideoSink
            << "new sink:" << (videoSink ? GST_ELEMENT_NAME(videoSink) : "") << videoSink;
#endif

+	g_object_set(G_OBJECT(videoSink), "sync", false, nullptr); 	

   if (m_pendingVideoSink == videoSink ||
       (m_pendingVideoSink == 0 && m_videoSink == videoSink)) {
#ifdef DEBUG_PLAYBIN
       qDebug() << "Video sink has not changed, skip video output reconfiguration";
#endif
       return;
   }